Custom TODO App

todors on my github

screenshot of todors

I recently built a small custom TODO app written in Rust to 1.) learn and use Rust, 2.) satisfy my needs for a simple TODO app for work. I searched around for a simple TODO app which would show a small GUI window with my TODOs, allow me to checkmark them, and not do any fancy internet garbage. Most TODO apps I found, while cool, were way too complicated (todoist, Microsoft To Do) or only have TUI/cli interface which is not what I want to use on my (windows) work laptop. I also see people do dumb nerd things where they keep a todo text file somewhere and rsync or sycnth it to different machines or some such stuff. Not really what I am looking for to keep track of tasks at work.

todors (pronouced like tudors?) lets users enter new TODOs using the input box and it adds them to the TODO list. When a TODO item is checkmarked, it is sent down to the DONEs list which is collapsable. You can uncheckmark a DONE and it will go back to the TODOs. Both TODOs and DONEs are stored in separate markdown files in the directory $HOME/.todors as todos.md and done_todos.md. As TODOs and DONEs are made, these files are updated. Upon opening todors, these Markdown files are loaded. This allows for the flexibility of editing the Markdown files directly which will then show up in the GUI display. A TODO for this project is for the files to be loaded dynamically on any change so the changes show up in real-time. I'll get to that eventually. The DONEs saved in the done_todos.md file include a date-stamp for when the task was completed. Handy for looking back and seeing what you've done and when!

Code stuff

todors is dead simple, baby's first Rust code. It's just a single file. It uses the egui library for the GUI elements. There's really nothing fancy going on.

A great aspect for Rust is the ease of cross-compiling. It really is just a "cargo build --release" to build it on Linux or Windows. I wrote it on my linux puter but compile and use it on my work windows laptop. I haven't tried it yet but I think it's really simple to build the executables for different target architectures from a single dev environment. Another TODO for todors is to put some releases out on the github.

Other TODOs for todors is to allow for user-settable locations for saving the TODOs and DONEs and for user-settable color configuration. That way you can customize the look and match your colorschemes. Currently it just does the default egui dark/light them depending on your computer's current theme (or at least them at startup of todors, idk I haven't tested it).

Leave a comment or whatever on github if you have feedback! It's open source so you can fork it and upgrade things as you'd like and put in a pull request!