# cl-todo 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](https://lisp-journey.gitlab.io/blog/gui-programming-in-common-lisp-part-3-of-5-gtk3/)). ## Usage 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`). ## Compiling Requires a Common Lisp (tested on SBCL), [Quicklisp](https://www.quicklisp.org/beta/#installation), 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) (cl-todo:launch) ``` 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*