// we are

Making GNOME Planner More Keyboard-Friendly

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.

List of changes made to Planner
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.


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.