A simple TODO app for the GNOME desktop.

LICENSE Initial commit with README and license 4 years ago
README.md Updated README and binary 3 years ago
cl-todo Updated README and binary 3 years ago
cl-todo.asd Wrote task list code 4 years ago
cl-todo.lisp Note panel text is now autosaved 3 years ago
gtk-example.lisp Added tutorial example file 4 years ago
gtk-ui.lisp Note panel text is now autosaved 3 years ago
package.lisp Fixed threading issue to make the stand-alone executable. 4 years ago


A simple TODO list widget for the GNOME desktop.

Honestly, this was mostly written to give me a chance to try out Gtk+3 on Common Lisp (see this tutorial).


Simply click on cl-todo. The app is designed to be used via keyboard shortcuts:

  • UP/DOWN: switch between active widgets

  • ENTER: Complete and remove the active task, or (if the input field is active) add a new task

  • RIGHT/LEFT Switch between the task view and the notes view

  • ESCAPE: Close the window (everything is autosaved)

Your TODO list is saved under ~/.todo.

Tip: Add a custom keyboard shortcut to quickly call up your TODO list. To do so, copy the executable cl-todo to /usr/local/bin or similar. Then (if you're in the GNOME shell) go to "Settings" -> "Keyboard shortcuts" and scroll to the + sign at the bottom. Enter cl-todo as the command to be executed and a key combination of your choice (I use Super+Return).


Requires a Common Lisp (tested on SBCL), Quicklisp, and the cl-cffi-gtk library.

To install, simply symlink this directory into your Quicklisp local-projects folder:

ln -s /path/to/cl-todo ~/.quicklisp/local-projects/cl-todo

Then, you can open up a REPL to run:

(ql:quickload :cl-todo)

To produce a stand-alone executable, run (asdf:make :cl-todo).

Project TODO

  • code cleanup

  • fix tab switching from note tab

  • add tabs with multiple todo lists

  • add task priorities

  • implement directory-specific todo files (with Nautilus plugin)

© Daniel Vedder 2020