Fixing Things with Keyboard Maestro
I can’t help playing with Things sometimes. Even though there are plenty of reasons not to use Things, it’s pretty. It’s my attractive nuisance. However, I can’t stand its inability to complete repeating items before they’re scheduled, so I fixed it.
You know I like Keyboard Maestro and Shortcuts. I combined them to work around Things’s glaring shortcoming. So can you!
First, install my Shortcut, Things: Get ID of current selection. Look inside it. It only copies the internal ID of the currently selected item to the clipboard.
Then, install my Things: Repeat action early Keyboard Maestro macro and set it to trigger with a hotkey you like. Since cmd-K is the using Things shortcut for completing an item, I set mine to trigger when I press shift-cmd-K. Then it takes these steps:
- Calls the Shortcut to get the ID of the current Things item.
- Goes to the latest completed copy of that item.
- Duplicates the completed copy and navigates to the new copy.
- Calls the Shortcut to get the ID of the new copy.
- Marks that copy as “open”, that is, not completed.
- That causes Things to move the copy from the “logged items” section back up to the list of open items, so the macro calls a Things URL to jump back to the re-opened, copied item via its ID that we saved a couple steps ago.
- Marks the new copy as deleted. That causes Things to update the repeating task so that its When and/or Deadline dates are relative to today.
- Calls the Things URL to jump all the way back to the repeating item, via its ID that we saved in the first step.
Whew. That’s a handful, huh? But it mostly works!
Caveats:
- There’s no error handling. Keyboard Maestro just blindly sends keyboard presses and menu selections to Things and assumes that everything’s going well.
- I’m not really sure what would happen if you run the shortcut with no items selected, or more than 1 item.
- If it’s been ages since the last time the item was completed and there’s no longer a “latest” item to go to, I don’t know what happens next.
In short, use this at your own risk. There are a dozen things it could be doing better or more safely and I haven’t (yet) done any of them. Still, it works! If I squint hard enough and get lucky, the new macro makes Things repeating actions work like every other to-do app in existence. I’m calling that a win.