Linux Todo List

broken image


If you have a file called todo.txt on your computer right now, you're in the right place.

  1. Cached
  2. Linux Task Manager Command Line
  3. BackSlash Linux

Todolist is a free desktop application allowing you to organise your tasks in a fast & simple way. To-do list application available on windows, mac and linux without any sign-up. There are a couple of to-do list applications out there in the market. Here, we're going to share about another to-do list app, and that is 'Wanna.' Wanna is an electron-based, modern, open-source, and cross-platform To-Do list application. It's an execution of a 21st-century to-do list application. Linux offers a robust set of terminal commands to set and manipulate the I/O streams and file or directory ownership. The Linux commands listed below will outline some of the most basic Linux terminal commands for such purposes. The clear command is handy to clear out your existing terminal screen. Package Todo Lists. Todo lists are used by the developers when a rebuild of a set of packages is needed. This is common when a library has a version bump, during a toolchain rebuild, or a general cleanup of packages in the repositories. The progress can be tracked here, and completed todo lists can be browsed as well.

So many power users try dozens of complicated todo list software applications, only to go right back to their trusty todo.txt file.

But it's not easy to open todo.txt, make a change, and save it—especially on your touchscreen device and at the command line. Todo.txt apps solve that problem.

Simplicity is todo.txt's core value.

You're not going to find many checkboxes, drop-downs, reminders, or date pickers here.

Todo.txt apps are minimal, todo.txt-focused editors which help you manage your tasks with as few keystrokes and taps possible.

At the Command Line

With a simple but powerful shell script called todo.sh, you can interact with todo.txt at the command line for quick and easy, Unix-y access.

The Todo.txt CLI supports archiving completed tasks to done.txt and priority/context tab autocompletion.


Find out more:

  • Documentation—everything you need to know about how to use Todo.txt CLI
  • Gitter—ask the Todo.txt community

In Any Text Editor

Countless productivity apps and sites store your tasks in their own proprietary database and file format. But you can work with your todo.txt file in every text editor ever made, regardless of operating system or vendor.

The todo.txt format is a simple set of rules that make todo.txt both human and machine-readable. The format supports priorities, creation and completion dates, projects and contexts. That's all you need to be productive. See an example Todo.txt file.


What Users Are Saying

The easiest to-do list I ever used. -Dennis

Brilliant.. Onyx 3 2 8 download free. the 'cool' factor is off the charts. -John

So simple, yet also very versatile and flexible. I love it! -mschooler93

Extremely useful and well executed. -nemof Arturia prophet v 3 0 1.

No frills, highly effective and convenient. -Will


Developers

Todo.txt CLI and Todo.txt Touch are proudly open source. Browse the source code for the CLI, iOS, and Android.

Community Apps: Todo.txt on your favorite device or platform.

In addition to the official Todo.txt apps, community members have built more apps and add-ons that work with Todo.txt.

Desktop

Todotxt.net

A minimalist, keyboard-driven Windows GUI for your todo.txt file, by Ben Hughes.

TodoTxtMac

TodoTxtMac is a minimalist, keyboard-driven to-do manager for Mac OS X (10.8 Mountain Lion and higher), by mjdescy.

Todour

Todour is an application for handling todo.txt files on the Mac and Windows, by Sverrir Valgeirsson.

DoStuff

'A todo.txt client for humans' on Ubuntu, by ximilian.

DayTasks

A fast, simple, and efficient todo.txt-compatible task list for Ubuntu, by Zach Burnham.

QTodoTxt

A fast, cross-platform todo.txt GUI written in Python, by Matthieu Nantern.

jdotxt

An open-source, Java-based client for Windows, Mac OS X and Linux, by Christian M. Schmid.

otodo

Simple but powerfull TUI for todo.txt by Ondrej Novy.

Effitask

Inspired by OmniFocus, cross-platform and open-source.

Terminal ToDo List

A CLI tool to manage todo lists in todo.txt format for Windows and Debian-based-Linux

Web

todoTxtWebUi

A web UI to use with a todo.txt file (demo), by Jason Holt.

Todo.txt for Chrome

Chrome extension with Dropbox integration, and features such as pending task count, saved filters, and more, by Aditya Bhaskar.

Plugins and Add-ons

Vim plugin for todo.txt

by Leandro Freitas.

Todo.sh Add-on Directory

A collection of add-ons, custom actions, and filters that enhance the Todo.txt CLI script, authored by community members.

Sublime Text todo.txt syntax highlighting

by Cthulhux

Todo.txt Thunderbird Extension

by Roy Kokkelkoren

Atom plugin for todo.txt

A plugin to make editing your todo.txt in Atom a breeze.

VSCode plugin for todo.txt

Todo.txt syntax highlighter and helper extension for visual studio code.

gedit highlighter for todo.txt

Todo.txt syntax highlighter for gedit.

GNOME Shell Extension

A Gnome shell interface for todo.txt. Source: https://gitlab.com/bartl/todo-txt-gnome-shell-extension

Mobile

Simpletask

Powerful todo.txt app for Android, by Mark Janssen. Also available in a cloudless version.

Todo.txt for Android

Fast, powerful, modern UI; syncs with Dropbox, Google Drive and local files (cloudless). Supports 6.0 Marshmallow or higher. Offered by Aditya Bhaskar.

Markor

Lightweight Android app - Notes, ToDo & Bookmarks. Supports Markdown & todo.txt, by Gregor Santner.

Mindstream

Simple mobile todo.txt app. Also available as self-hosted web app.

Clockwork Tomato

Clockwork Tomato a pomodoro tool for Android supporting todo.txt integration (with sync via dropbox)

Developer Tools

Todo.txt Gem

A RubyGem for parsing todo.txt files, by Sam Rose.

Text::Todo

Perl interface to todotxt files by Andrew Fresh.

todo-txt-js

This is a todo.txt parser written in pure JavaScript.

This section contains a list of smaller janitorial tasks in the kernel DRMgraphics subsystem useful as newbie projects. Or for slow rainy days.

Subsystem-wide refactorings¶

De-midlayer drivers¶

With the recent drm_bus cleanup patches for 3.17 it is no longer requiredto have a drm_bus structure set up. Drivers can directly set up thedrm_device structure instead of relying on bus methods in drm_usb.cand drm_pci.c. The goal is to get rid of the driver's ->load /->unload callbacks and open-code the load/unload sequence properly, usingthe new two-stage drm_device setup/teardown.

Once all existing drivers are converted we can also remove those bus supportfiles for USB and platform devices.

All you need is a GPU for a non-converted driver (currently almost all ofthem, but also all the virtual ones used by KVM, so everyone qualifies).

Contact: Daniel Vetter, Thierry Reding, respective driver maintainers

Switch from reference/unreference to get/put¶

For some reason DRM core uses reference/unreference suffixes forrefcounting functions, but kernel uses get/put (e.g.kref_get/put()). It would be good to switch over for consistency, andit's shorter. Needs to be done in 3 steps for each pair of functions:

  • Create new get/put functions, define the old names as compatibilitywrappers
  • Switch over each file/driver using a cocci-generated spatch.
  • Once all users of the old names are gone, remove them.

This way drivers/patches in the progress of getting merged won't break.

Contact: Daniel Vetter

Convert existing KMS drivers to atomic modesetting¶

3.19 has the atomic modeset interfaces and helpers, so drivers can now beconverted over. Modern compositors like Wayland or Surfaceflinger on Androidreally want an atomic modeset interface, so this is all about the brightfuture.

There is a conversion guide for atomic and all you need is a GPU for anon-converted driver (again virtual HW drivers for KVM are still allsuitable).

As part of this drivers also need to convert to universal plane (which meansexposing primary & cursor as proper plane objects). But that's much easier todo by directly using the new atomic helper driver callbacks.

Contact: Daniel Vetter, respective driver maintainers

Clean up the clipped coordination confusion around planes¶

We have a helper to get this right with drm_plane_helper_check_update(), butit's not consistently used. This should be fixed, preferrably in the atomichelpers (and drivers then moved over to clipped coordinates). Probably thehelper should also be moved from drm_plane_helper.c to the atomic helpers, toavoid confusion - the other helpers in that file are all deprecated legacyhelpers.

Contact: Ville Syrjälä, Daniel Vetter, driver maintainers

Implement deferred fbdev setup in the helper¶

Many (especially embedded drivers) want to delay fbdev setup until there's areal screen plugged in. This is to avoid the dreaded fallback to the low-resfbdev default. Many drivers have a hacked-up (and often broken) version of this,better to do it once in the shared helpers. Thierry has a patch series, but thatone needs to be rebased and final polish applied.

Contact: Thierry Reding, Daniel Vetter, driver maintainers

Convert early atomic drivers to async commit helpers¶

For the first year the atomic modeset helpers didn't support asynchronous /nonblocking commits, and every driver had to hand-roll them. This is fixednow, but there's still a pile of existing drivers that easily could beconverted over to the new infrastructure.

One issue with the helpers is that they require that drivers handle completionevents for atomic commits correctly. But fixing these bugs is good anyway.

Contact: Daniel Vetter, respective driver maintainers

Better manual-upload support for atomic¶

This would be especially useful for tinydrm:

  • Add a struct drm_rect dirty_clip to drm_crtc_state. When duplicating thecrtc state, clear that to the max values, x/y = 0 and w/h = MAX_INT, in__drm_atomic_helper_crtc_duplicate_state().
  • Move tinydrm_merge_clips into drm_framebuffer.c, dropping the tinydrmprefix ofc and using drm_fb_. drm_framebuffer.c makes sense since thisis a function useful to implement the fb->dirty function.
  • Create a new drm_fb_dirty function which does essentially what e.g.mipi_dbi_fb_dirty does. You can use e.g. drm_atomic_helper_update_plane as thetemplate. But instead of doing a simple full-screen plane update, this newhelper also sets crtc_state->dirty_clip to the right coordinates. And ofcourse it needs to check whether the fb is actually active (and maybe where),so there's some book-keeping involved. There's also some good fun involved inscaling things appropriately. For that case we might simply give up anddeclare the entire area covered by the plane as dirty.

Contact: Noralf Trønnes, Daniel Vetter

Fallout from atomic KMS¶

drm_atomic_helper.c provides a batch of functions which implement legacyIOCTLs on top of the new atomic driver interface. Which is really nice forgradual conversion of drivers, but unfortunately the semantic mismatches area bit too severe. So there's some follow-up work to adjust the functioninterfaces to fix these issues:

  • atomic needs the lock acquire context. At the moment that's passed aroundimplicitly with some horrible hacks, and it's also allocate withGFP_NOFAIL behind the scenes. All legacy paths need to start allocatingthe acquire context explicitly on stack and then also pass it down intodrivers explicitly so that the legacy-on-atomic functions can use them.
  • A bunch of the vtable hooks are now in the wrong place: DRM has a splitbetween core vfunc tables (named drm_foo_funcs), which are used toimplement the userspace ABI. And then there's the optional hooks for thehelper libraries (name drm_foo_helper_funcs), which are purely forinternal use. Some of these hooks should be move from _funcs to_helper_funcs since they are not part of the core ABI. There's aFIXME comment in the kerneldoc for each such case in drm_crtc.h.
  • There's a new helper drm_atomic_helper_best_encoder() which could beused by all atomic drivers which don't select the encoder for a givenconnector at runtime. That's almost all of them, and would allow us to getrid of a lot of best_encoder boilerplate in drivers.

Contact: Daniel Vetter

Get rid of dev->struct_mutex from GEM drivers¶

dev->struct_mutex is the Big DRM Lock from legacy days and infestedeverything. Nowadays in modern drivers the only bit where it's mandatory isserializing GEM buffer object destruction. Which unfortunately means drivershave to keep track of that lock and either call unreference orunreference_locked depending upon context.

Core GEM doesn't have a need for struct_mutex any more since kernel 4.8,and there's a gem_free_object_unlocked callback for any drivers which areentirely struct_mutex free. Download turbocad mac pro 10 0 3 crack full version.

For drivers that need struct_mutex it should be replaced with a driver-private lock. The tricky part is the BO free functions, since those can'treliably take that lock any more. Instead state needs to be protected withsuitable subordinate locks or some cleanup work pushed to a worker thread. Forperformance-critical drivers it might also be better to go with a morefine-grained per-buffer object and per-context lockings scheme. Currently thefollowing drivers still use struct_mutex: msm, omapdrm andudl.

Contact: Daniel Vetter, respective driver maintainers

Switch to drm_connector_list_iter for any connector_list walking¶

Connectors can be hotplugged, and we now have a special list of helpers to walkthe connector_list in a race-free fashion, without incurring deadlocks onmutexes and other fun stuff.

Unfortunately most drivers are not converted yet. At least all those supportingDP MST hotplug should be converted, since for those drivers the differencematters. See drm_for_each_connector_iter() vs. drm_for_each_connector().

Cached

Contact: Daniel Vetter

Core refactorings¶

Use new IDR deletion interface to clean up drm_gem_handle_delete()¶

See the 'This is gross' comment – apparently the IDR system now can return anerror code instead of oopsing.

Clean up the DRM header mess¶

Currently the DRM subsystem has only one global header, drmP.h. This isused both for functions exported to helper libraries and drivers and functionsonly used internally in the drm.ko module. The goal would be to move allheader declarations not needed outside of drm.ko intodrivers/gpu/drm/drm_*_internal.h header files. EXPORT_SYMBOL alsoneeds to be dropped for these functions.

This would nicely tie in with the below task to create kerneldoc after the APIis cleaned up. Or with the 'hide legacy cruft better' task.

Note that this is well in progress, but drmP.h is still huge. The updatedplan is to switch to per-file driver API headers, which will also structurethe kerneldoc better. This should also allow more fine-grained #includedirectives.

In the end no .c file should need to include drmP.h anymore.

Contact: Daniel Vetter

Add missing kerneldoc for exported functions¶

The DRM reference documentation is still lacking kerneldoc in a few areas. Thetask would be to clean up interfaces like moving functions around betweenfiles to better group them and improving the interfaces like dropping returnvalues for functions that never fail. Then write kerneldoc for all exportedfunctions and an overview section and integrate it all into the drm DocBook.

See https://dri.freedesktop.org/docs/drm/ for what's there already.

Contact: Daniel Vetter

Hide legacy cruft better¶

Way back DRM supported only drivers which shadow-attached to PCI devices withuserspace or fbdev drivers setting up outputs. Modern DRM drivers take chargeof the entire device, you can spot them with the DRIVER_MODESET flag.

Unfortunately there's still large piles of legacy code around which needs tobe hidden so that driver writers don't accidentally end up using it. And toprevent security issues in those legacy IOCTLs from being exploited on moderndrivers. This has multiple possible subtasks:

  • Extract support code for legacy features into a drm-legacy.ko kernelmodule and compile it only when one of the legacy drivers is enabled.

This is mostly done, the only thing left is to split up drm_irq.c intolegacy cruft and the parts needed by modern KMS drivers.

Contact: Daniel Vetter

Make panic handling work¶

This is a really varied tasks with lots of little bits and pieces:

  • The panic path can't be tested currently, leading to constant breaking. Themain issue here is that panics can be triggered from hardirq contexts andhence all panic related callback can run in hardirq context. It would beawesome if we could test at least the fbdev helper code and driver code bye.g. trigger calls through drm debugfs files. hardirq context could beachieved by using an IPI to the local processor.
  • There's a massive confusion of different panic handlers. DRM fbdev emulationhelpers have one, but on top of that the fbcon code itself also has one. Weneed to make sure that they stop fighting over each another.
  • drm_can_sleep() is a mess. It hides real bugs in normal operations andisn't a full solution for panic paths. We need to make sure that it onlyreturns true if there's a panic going on for real, and fix up all thefallout.
  • The panic handler must never sleep, which also means it can't evermutex_lock(). Also it can't grab any other lock unconditionally, noteven spinlocks (because NMI and hardirq can panic too). We need to eithermake sure to not call such paths, or trylock everything. Really tricky.
  • For the above locking troubles reasons it's pretty much impossible toattempt a synchronous modeset from panic handlers. The only thing we couldtry to achive is an atomic set_base of the primary plane, and hope thatit shows up. Everything else probably needs to be delayed to some worker orsomething else which happens later on. Otherwise it just kills the boxharder, prevent the panic from going out on e.g. netconsole.
  • There's also proposal for a simplied DRM console instead of the full-blownfbcon and DRM fbdev emulation. Any kind of panic handling tricks shouldobviously work for both console, in case we ever get kmslog merged.

Contact: Daniel Vetter

Clean up the debugfs support¶

There's a bunch of issues with it:

  • The drm_info_list ->show() function doesn't even bother to cast to the drmstructure for you. This is lazy.
  • We probably want to have some support for debugfs files on crtc/connectors andmaybe other kms objects directly in core. There's even drm_print support inthe funcs for these objects to dump kms state, so it's all there. And then the->show() functions should obviously give you a pointer to the right object.
  • The drm_info_list stuff is centered on drm_minor instead of drm_device. Foranything we want to print drm_device (or maybe drm_file) is the right thing.
  • The drm_driver->debugfs_init hooks we have is just an artifact of the oldmidlayered load sequence. DRM debugfs should work more like sysfs, where youcan create properties/files for an object anytime you want, and the coretakes care of publishing/unpuplishing all the files at register/unregistertime. Drivers shouldn't need to worry about these technicalities, and fixingthis (together with the drm_minor->drm_device move) would allow us to removedebugfs_init.

Linux Task Manager Command Line

Contact: Daniel Vetter

Better Testing¶

Enable trinity for DRM¶

And fix up the fallout. Should be really interesting ..

Make KMS tests in i-g-t generic¶

BackSlash Linux

The i915 driver team maintains an extensive testsuite for the i915 DRM driver,including tons of testcases for corner-cases in the modesetting API. It wouldbe awesome if those tests (at least the ones not relying on Intel-specific GEMfeatures) could be made to run on any KMS driver.

Basic work to run i-g-t tests on non-i915 is done, what's now missing is mass-converting things over. For modeset tests we also first need a bit ofinfrastructure to use dumb buffers for untiled buffers, to be able to run allthe non-i915 specific modeset tests.

Contact: Daniel Vetter

Create a virtual KMS driver for testing (vkms)¶

Linux to do list

With all the latest helpers it should be fairly simple to create a virtual KMSdriver useful for testing, or for running X or similar on headless machines(to be able to still use the GPU). This would be similar to vgem, but aimed atthe modeset side.

Once the basics are there there's tons of possibilities to extend it.

Contact: Daniel Vetter

Driver Specific¶

tinydrm¶

Tinydrm is the helper driver for really simple fb drivers. The goal is to makethose drivers as simple as possible, so lots of room for refactoring:

  • backlight helpers, probably best to put them into a new drm_backlight.c.This is because drivers/video is de-facto unmaintained. We could alsomove drivers/video/backlight to drivers/gpu/backlight and take it allover within drm-misc, but that's more work.
  • spi helpers, probably best put into spi core/helper code. Thierry saidthe spi maintainer is fast&reactive, so shouldn't be a big issue.
  • extract the mipi-dbi helper (well, the non-tinydrm specific parts atleast) into a separate helper, like we have for mipi-dsi already. Or followone of the ideas for having a shared dsi/dbi helper, abstracting away thetransport details more.
  • tinydrm_lastclose could be drm_fb_helper_lastclose. Only thing we needfor that is to store the drm_fb_helper pointer somewhere indrm_device->mode_config. And then we could roll that out to all thedrivers.
  • tinydrm_gem_cma_prime_import_sg_table should probably go into the cmahelpers, as a _vmapped variant (since not every driver needs the vmap).And tinydrm_gem_cma_free_object could the be merged intodrm_gem_cma_free_object().
  • tinydrm_fb_create we could move into drm_simple_pipe, only need to addthe fb_create hook to drm_simple_pipe_funcs, which would again simplify abunch of things (since it gives you a one-stop vfunc for simple drivers).
  • Quick aside: The unregister devm stuff is kinda getting the lifetimes ofa drm_device wrong. Doesn't matter, since everyone else gets it wrongtoo :-)
  • With the fbdev pointer in dev->mode_config we could also makesuspend/resume helpers entirely generic, at least if we add adev->mode_config.suspend_state. We could even provide a generic pm_opsstructure with those.
  • also rework the drm_framebuffer_funcs->dirty hook wire-up, see above.

Contact: Noralf Trønnes, Daniel Vetter





broken image