OmniFocus, Basecamp, and Keyboard Maestro

  • Hook and Basecamp work perfectly together—if I use BC in a browser. I prefer to have it in a separate application.
  • Basecamp has an api, so it seems possible that Hook might support it directly one day.
  • Basecamp provides a dedicated app (basically an electron wrapper), but opportunities for user scripting seem limited. There’s a menubar command to copy the URL of any page, but no affordance to input a URL.
  • I can also use Basecamp in a dedicated webpage-wrapper app like Fluid or Unite. I’ve written to the Unite developer to suggest Hook integration, so maybe one day.
  • But in the meantime, Fluid does allow both copying and pasting URLs within the app wrapper. This implies to me that user scripting could work, but I have little knowledge of AppleScript. (I’d love to learn, but wouldn’t dedicate the necessary time at this point.)
  • But I’ve worked out a kludgy solution with Keyboard Maestro.

The basic model is:
A. In the Basecamp Fluid app, I simply want to do Cmd-L, Cmd-C to copy the URL. That’s trivial in KM, but I did a clever-ish trick to save myself learning a new hotkey:

Across all applications, I use Kourosh Dini’s trick of a KM macro to combine the Opt-Shft-Space + Cmd-C Hook commands (plus corresponding paste). Those macros used to be in the Global Macro Group, but I moved them to a new global group named Hook, where they work everywhere except the Basecamp Fluid app. Then for the Basecamp Fluid group, I mapped the same copy hotkey (Ctrl-Opt-Cmd-C) to do the Cmd-L, Cmd-C I need. That way I can use the same Hook copy shortcut wherever I am, regardless of the fact that Hook would normally report no linkable item in the Basecamp Fluid app.

B. To get Basecamp URLs into Basecamp Fluid, I made a KM macro to invoke after invoking Hook with Opt-Shft-Space. When I see that the Hooked item is a Basecamp URL, I could of course just hit Return to open it in Safari. But if I hit Cmd-Return instead, it copies the URL from the hooked item, activates the Basecamp Fluid app, and pastes it into the location bar.

(Others have probably suggested this already, but that last bit is actually a generic way to use KM to open any Hooked URL in a browser of choice.)

Anyway, not ideal, but quite serviceable. The major gap is that I cannot at present Hook-copy an item somewhere else and then Hook-paste it onto a page in Basecamp Fluid. I can think of several ways this could probably be done with KM, but it’s not a priority for me. I always just want to Hook-copy a Basecamp page, Hook-paste it onto an OmniFocus action or project, and then be able to follow the Hook back.

Hi, just stumbling over this post. You can use Choosy and have a rule that opens all URLs beginning with https://3.basecamp.com to open in the app:

1 Like

Huh! Thank you. I’d not heard of Choosy and immediately have multiple uses for it. Opening hooked Basecamp URLs into my Basecamp Fluid app works great.

But I’m curious: does your rule to open https://3.basecamp.com URLs in the Basecamp 3 app actually work? I’ve replicated that rule, but when I trigger a qualifying URL via Hook or Alfred, Choosy activates the Basecamp 3 app, but it doesn’t go to the correct page. It just stays on whichever page was open.