One of the nicest things in LaunchBar is InstantSend, undeniably. It’s the function I use most in it. But I don’t want to ramble about that kind of stuff. One of the nicer Actions are those built to transform. The names speak for themselves. There are Actions to make text dromedaryCase, CamelCase, snake-case, and Train-Case. Really handy for naming variables in a script quickly, but how?
I personally am not that great at writing variable names so easily. Writing
thisVariableValue just doesn’t flow as well as
this variable value. With InstantSent you can type a variable, send to LaunchBar, type
dromed and press ↩, and ⇧⌘C to paste in frontmost app. Result:
Enrico just had a nice idea for a Keyboard Maestro macro. Essentially the idea is to be able to minimize the front window for a specific amount of time, before it comes back; so as to “peek behind” it.
I thought this is such a neat idea that I made this:
Moom, my favorite window arranger, has a built-in AppleScript dictionary (which I didn’t know of). We can trigger snapshots with it. This means we can do all sorts of things when Keyboard Maestro is also involved.
- Depending on how many displays are connected, trigger a certain
snapshot named "Dual Layout".
- Depending on network location trigger a certain snapshot.
- Check out some of the other AppleScript
system attributesand Keyboard Maestro Calculation options for inspiration.
Here are the two basic AppleScripts you want to know:
tell application "Moom" to list of snapshots -- Startup Layout, Dual Monitor, Final Cut tell application "Moom" arrange windows according to snapshot named "Startup Layout" end tell
As an editor I often have two work in multiple environments. Sometimes I’m at home, most of the time I’m in the office, but sometimes I’m at a clients’ site. Depending on this “environment”, I may or may not have an external monitor attached when working in Final Cut Pro X. Normally I choose to “Show Viewers on Second Display”. This saves screen estate on the main window, and shows the things a client wants to see on the external display.
Normally when I’m done with my work, I just detach the external monitor and leave. This usually puts the Viewer window somewhere on the main monitor on top of the other stuff inside FCPX. I would have to manually select “Revert to Original Layout” in that case.
I was annoyed manually doing this and thought I could do better with Keyboard Maestro.
This macro does the following:
- It waits for app Final Cut Pro to activate.
- It runs a simple comparison on whether the
SCREENCOUNThas changed since its last run.
- If not, then the macro ends itself
- If yes, the macro checks how many displays are connected and chooses the according menu option automatically.
- There’s a pause at the beginning of this macro so when attaching or detaching a display, the computer has time to catch up and activate the monitor before this runs.
I’ve shared my menubar recently, which lead to some interesting discussion. Not because my menubar would be tremendously interesting, but because other geeks like to know what’s in my menubar. Fair enough.
As you may know. I’m very much a minimalist. I don’t like things to be packed full under the brim. I like it small and neat, well in this case anyway.
For me personally there’s no need to have all apps running that I could potentially be needing all day. Some examples:
These are nice apps. I use CloudApp to share pictures regularly, but I don’t find it necessary to have it on all the time. Instead I use Spotlight or LaunchBar to open the app, drag an image onto it, share it, close it. That’s my workflow. I don’t feel like the 2 or 3 seconds, I have to wait for the app to be ready, to be a waste of my time, because, honestly, what am I supposed to do with that time? I agree that if I’d share one picture an hour, it would make sense to have the app running all the time, but as much as I use it, it just makes no sense. OmniPresence is an even better example, because when I work with OmniPlan (iOS) or OmniGraffle (iOS) I work exclusively on one platform. When I want to have the changes on my Mac, I open the app, wait for it to sync, close it.
That’s how I get rid of most menubar apps. Other examples for apps where it’s unnecessary to have a menubar icon are pretty much every Twitter client. These days almost every app wants to put a menubar icon up. One of the first things that I deactivate. I don’t need to have Twitter punching into my face all the time.2 TextExpander doesn’t need a menubar icon either. It’s running constantly, so why have a menubar icon? Hazel? No menubar icon.
I got more screen real estate by using iStat Menus’ customizable Battery icon, which allows for different states depending on whether the Mac is connected to a wall or not. If it’s connected to a wall, I just show a battery icon, if not I show how much time is left on the battery.
My best tip I can share is have apps only running when actually needed. Best distinguishing factor is “work” and “free time”. Some examples for work apps:
Some examples for free time apps:
All of these apps put up a menubar icon, but since F.lux, for example, is only actually active at night, I can’t see a reason why to have it running between 10am and 10pm.
It is probably no surprise that for these reasons, I have a Keyboard Maestro macro that starts apps when generally needed, and closes apps that are not. The macro does a couple more things. Like it closes Twitter, Facebook, Google+ and other distractions (Hello Feed The Beast!) automatically, so that I don’t get a chance to use them during the day.
A word of warning: This is my personal workflow. This might be too crass for many folks, but it works for me. I’m using my computer this way for over two years and it benefits my productivity greatly. If this is not for you, don’t blame me, don’t even blame yourself. This is radical.
I used to have five different macros for this, but recently decided to consolidate everything into one macro using date calculations. I know this macro is really really long and complicated3, but essentially the main parts are:
HOUR()≥7 & HOUR()≤11: If current hour of the day is bigger or equal than 7 and the hour is smaller or equal than 11, then do something.
DOW()≥2 & DOW()≤6: If day of the week is bigger or equal than 2 and day of week is smaller or equal than 6, then do something. (
2 = Mondayand
6 = Friday)