I’ve needed a tool to draw timelines and dependencies between tasks lately, to help me schedule the studies I’m running and writing activities (been told I should publish more, heh!). I ended up using the desktop app ’GNOME Planner’, and changed it a tiny bit to boost my productivity. I haven’t bothered with talking to upstream since it’s been unmaintained for years, but you can find patches attached to this post if you too need a quick planning tool.
After a day of trying multiple online tools, I’ve resorted to GNOME Planner which contains none of the fuss I don’t need and allows me to be somewhat productive with data entry. After an hour, I decided to poke in the code and optimise the keyboard shortcuts a bit. Mainly, I couldn’t deal with the fact that I had to use my mouse to type in a new task (no direct editing when inserting a task). Besides this, there were some inconsistencies in how shortcuts were assigned (mainly, many do-undo relationships that used completely different keys instead of the key
- shift+key
pair), and some useful shortcuts were assigned to rarely used operations such as selecting all tasks or creating a brand new projects, making the shortcuts unavailable for routine operations such as selecting the text of a task or inserting a task.
Feature name | Before | After | Reason |
---|---|---|---|
Insert Task | <Ctrl> I | <Ctrl> N | Confusion / cognitive dissonance with Indent Task, and nobody creates a new project every other minute |
Delete Task | <Ctrl> D | Delete | Old shortcut in keyboard hotspot, easier to make mistakes |
Indent Task | <Ctrl><Shift> I | <Ctrl> I | Shift feels too much like undo, hence doesn’t fit “undoing” an “insert task” |
Unindent Task | <Ctrl> U | <Ctrl><Shift> I | Now aligned with indent… |
Move Upwards | ø | <Ctrl> Up | Was missing |
Move Downwards | ø | <Ctrl> Down | Was missing |
Edit Task | <Ctrl><Shift> E | <Ctrl> E | KISS |
Select All | <Ctrl> A | ø | Prevented me from selecting text whilst editing a task |
Link Task | ø | <Ctrl> L | Was missing |
Unlink Task | ø | <Ctrl><Shift> L | Was missing |
New Project | <Ctrl> N | ø | Making room for Insert Task |
Open Project | F3 | <Ctrl> O | As much as I can violate conventions myself (e.g. Insert Task), the original shortcut didn’t make sense |
Close Project | <Ctrl> W | <Ctrl> Q | I triggered it several times trying to erase lines (thanks terminal…) or delete a task |
Quit (close all projects) | <Ctrl> Q | <Ctrl><Shift> Q | To avoid conflicts with previous edit |
Redo | <Ctrl> R | <Ctrl><Shift> Z | Conventions + making it consistent with Undo |
And also, I’ve made task cells directly editable/focused when inserting a new task. |
The patches are available as a series of 3 files. The first one applies most shortcut changes, apart from Insert Task, Unlink Task (uses <Ctrl> U
), Indent Task, Unindent Task and New Project. The second one changes the editability of tasks when inserted. The third one applies the last shortcut changes.
Edit
I’ve put the code on Github for now, and fixed a handful of Planner’s many memory leaks… I’m primarily hunting leaks because Planner currently uses well over 1GB for a simple project with about 50 tasks.