things

    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:

    1. Calls the Shortcut to get the ID of the current Things item.
    2. Goes to the latest completed copy of that item.
    3. Duplicates the completed copy and navigates to the new copy.
    4. Calls the Shortcut to get the ID of the new copy.
    5. Marks that copy as “open”, that is, not completed.
    6. 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.
    7. 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.
    8. 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:

    1. There’s no error handling. Keyboard Maestro just blindly sends keyboard presses and menu selections to Things and assumes that everything’s going well.
    2. I’m not really sure what would happen if you run the shortcut with no items selected, or more than 1 item.
    3. 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.

    Back to OmniFocus. Again.

    I know I said I’m using Things to manage all the things I need to do, but I’ve switched back to the OmniFocus 4 beta.

    I like Things. It’s pretty and ergonomic. That matters in something you’ll spend so much time with. For the most part, I like using Things more than I do OmniFocus, which isn’t exactly beautiful to look at. OmniFocus does everything right where it matters, though.

    First, Things lacks end-to-end encryption. That by itself should be a deal-breaker for me. I tried to overlook it because I wanted Things to be my ideal to-do app, but I just can’t. I think the Cultured Code gang are great people. They have a long track record of treating their users well. I have no reason to think that will change. I strongly doubt they’re going through my boring to-do items, but it’s at least technically possible, and I hate that I have to trust any company’s good intentions. Even if I think they’re good people, my employer may not appreciate me storing sensitive information in an unencrypted vendor database. Even more, my wife’s a doctor, so HIPAA implies she can’t use Things at all for her work unless she keeps all her actions so vague as to be useless. If she put an item in there like “Call Joe Smith back”, she could be sued and/or fined for storing personal healthcare information in an insecure location. In contrast, OmniFocus lets you set an encryption password on your data. Then The Omni Group can’t access your information even if they want to. If you don’t trust Omni’s sync server, you can sync it with your own WebDAV server.

    Second, Things’s search field requires you to type exactly what you’re looking for. If I have an item named “Do foo and bar”, searching Things for “foo bar” won’t find it. OmniFocus will. That’s bitten me more times than I’d like, usually when I can almost (but not quite) remember how I phrased a task. Sure, I could just type “foo” into Things and then scroll through the results into I see “bar”. I bought a to-do app to offload that mental grunt work.

    Finally, it shouldn’t bother me so much that I can’t check off a repeated task in Things before its start date. It does. It bothers me a lot. I put everything in my to-do app, including tasks like “text my distant friend, Joe, every month”. If he and I talk today, and I’m going through my weekly review tomorrow, it’d be nice to mark that as done even though I’m not “scheduled” to chat with him for another 3 weeks. Things won’t let me unless I’m willing to dig into the task’s repeat settings. OmniFocus doesn’t care. It’s like “Oh, you’re done early? Cool. I’ll remind you in a month!” Things users have been requesting this ability for years.

    I’m back to OmniFocus. It’s not as pretty to look at, but it does everything I ask of it. I wish it had Things’s gorgeous interface, and I miss being able to add sections and notes to projects, but I won’t trade encryption, better search, and smartly repeating tasks for those features.

    I have a note to myself: stop looking for a better task manager than OmniFocus. While it won’t win a beauty pageant, it’s the best app for helping me get things done.

    I use Things without encryption

    Update 2023-11-03: No, I don’t.


    I tell people not to use Readdle’s Spark email app. Then I turn around and use the Things task manager, which lacks end-to-end encryption (E2EE). That concerns me. I have a PKM note called “Task managers”, and under “Things” my first bullet point is:

    • Lacks end-to-end encryption

    I realize I’m being hypocritical here, but perhaps only a little bit. There’s a difference in exposure between Things and, say, my PKM notes, archive of scanned documents, email, etc.:

    I don’t put highly sensitive information in Things. No, I don’t want my actions in there to be public, but they’re generally no more detailed than “make an allergist appointment” or “ask boss about a raise”. I know some people use Things as a general note-taking app but I don’t. There are other apps more tailored to that and I use them instead.

    I control what information goes into Things. If my doctor were to email me sensitive medical test results, the Spark team could hypothetically read them. Cultured Code can only view what I personally choose to put into Things. (That glosses over the “Mail to Things” feature, but I never give that address to anyone else and I don’t worry about it being misused.)

    Things can’t impersonate me. Readdle could use my email credentials to contact my boss and pretend to be me. Now, I’m confident that they won’t. They’re a good, reputable company. But they could, and that’s enough to keep me away from Spark.

    Finally, Cultured Code is a German company covered by the GDPR. They have strong governmental reasons not to do shady stuff with my data.

    While I don’t like that Things lacks E2EE, and I wish that it had it, the lack isn’t important enough for how I want to use it to keep me away from it. There are more secure alternatives like OmniFocus and Reminders, but the benefits that I get from Things over those options makes it worthwhile for me to hold my nose and use it.

    Everyone has to make that decision based on their own usage. If you have actions like “send government documents to reporter” or “call patient Amy Jones to tell her about her cancer”, then you shouldn’t use Things or anything else without E2EE. I’d be peeved if my Things actions were leaked, but it wouldn’t ruin my life or get me fired.

    But I know I should still look for something more secure.

    Integrate Things with Focus

    I use the Things task manager to keep track of what I need to do. I use the Focus pomodoro timer to help myself focus on a task that I’m actively working on.

    Focus integrates well with another task manager, OmniFocus: you can drag an action from OmniFocus into Focus to create a task to work on, and that task will have a button that links back to the original OmniFocus action. Super convenient! It doesn’t play well with Things, though. If you try the same process, you’ll end up with multiple separate actions for each of the Things to-do’s various properties.

    For example, this to-do has the title, note, checklist, tags, when, and deadline options filled in:

    A Things to-do with lots of options set

    Dragging it to Focus creates a whole mess of random tasks:

    Focus with 8 unrelated tasks

    That’s not helpful. We can do better.

    First, I wrote a shortcut using Things’s shiny new Shortcuts actions. For each to-do currently selected in Things, it uses Focus’s URL scheme to create a Focus task with the item’s title, notes, and due date, and a link back to the item in Things.

    Second, I made a Keyboard Maestro hot key macro, available only in Things, that executes my shortcut. When I select the to-do item above and press “option-F”, I get one single task with all the details set:

    Focus with 1 well-configured task

    If I click the link icon next to the task’s title, Things opens with that to-do selected.

    Ta-da! The workflow is slightly different than with OmniFocus, but only a little bit, and the result is just as useful.