aboutsummaryrefslogtreecommitdiff

kassandra

Kassandra from Greek mythology tells the Trojan warriors in the Illiad not to take in the horse offer by the Greek. They don‘t listen to her.

This is a taskwarrior frontend build with Haskell and reflex-frp.

WARNING: This will eat all of your tasks! This app is underdocumented and not intended for use by anyone else, yet.

State

  • This project is primarily for my personal use. I share it in the spirit of free software but it is not primarily intendend to be usable for anyone else, at least at the moment.
  • This app provides a GUI to view and edit tasks.
  • You can compile the standalone:kassandra2 target with ghc to get a webkit-gtk-app or you can compile with obelisk to get a webserver. (Which needs some authorization right now.)
  • Right now there are only a few custom lists to see tasks. The most useful one under the button "List" are lists based on any tag.
  • It is supposed to be completely reactive, so everything it shows should be up-to-date. It relies right now on two netcat hooks to get updated from taskwarrior:
❯ cat ~/.task/hooks/on-add.kassandra-notification
#!/bin/bash
tee > (nc 127.0.0.1 6545)
❯ cat ~/.task/hooks/on-modify.kassandra-notification
#!/bin/bash
tail -n 1 | tee >(nc 127.0.0.1 6545)

(In the future these hooks might be generated by the program.)

  • Right now the app shows tasks in a tree. Tasks tagged with +root are roots. Tasks with partof: are children. If you dont use this feature you can still see a plain list of tasks and edit them.
  • You can sort tasks by dragging and dropping them either in a taglist or as children of a common parent. The sortposition is saved in custom uda attributes.

Plans

  • The default UI should use some reasonable search dialog which should more or less fit normal taskwarrior use.
  • Some calendar integration to sort tasks by time.
  • UI improvements und documentation. The current UI is not self explanatory and has some ugly quirks.
  • Custom UDA based features should be deconfigurable.
  • There is supposed to be a solid auth system so you can use any client: Android/webkit/web to connect to any server.