Skip to content
/ yata Public

Yet another todo application! this one is implemented in Racket and aimed towards cli-usage. I'm using `dialog` and `whiptail` for the user interface which allows for a cool GUI experience without the need of a desktop environment :)

License

Notifications You must be signed in to change notification settings

philj0st/yata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YATΛ ☑️

Yet another todo application! Λ uppercase lambda because it's implemented in Racket. Leveraging Dialog/Whiptail to print a GUI to a terminal.

Yata is a tool that lets you create, remove, update, delete and toggle todos from your shell. It spawns Dialog/Whiptail dialogs as child processes, sends all the standard input to the child process and redirects the child processes standard output back to the parent shell process where it was invoked.

cli-callable todo

Roadmap

  • spawn dialog/whiptail and let the childprocess capture stdin and stdout of the parent process (thanks @cky !).
  • parse Racket list to dialog/whiptail arguments (called it argify 😸)
  • read/write todo list in data mode
  • parse dialog/whiptail's return value to actual changes
  • stack/chain dialogs for adding a new todo
  • Create
  • Read
  • Update
  • Delete
  • decouple dialog module so that unsorted-todo-list -> unsorted-todo-list with changes. Sorting and indexing gets abstracted within dialog module.
  • menu for CRUD on todos
  • connect with google todo api

FAQ

where are my todos saved?

Yata uses (build-path (find-system-path 'home-dir) ".racket" "yata" "todos.rkt")) which will eventually end up saving them somewhere like /home/phil/.racket/yata/todos.rkt if you're on linux

Installation

I'm afraid at the moment there's no other way than to build from source 👷. This can be achieved by cloning this directory and then use some IDE like DrRacket which has the option to Racket->Create Executable.

Known issues

dialog/whiptail's --checklist returns an empty string if the dialog gets cancelled but also if no todos are checked. If all Todos are unchecked but one and this only checked one gets unchecked the new state won't be saved because it's more likely to be a cancelled dialog.

About

Yet another todo application! this one is implemented in Racket and aimed towards cli-usage. I'm using `dialog` and `whiptail` for the user interface which allows for a cool GUI experience without the need of a desktop environment :)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published