Welcome to the lab.

The Top 20 Apps not in my Dock

[Tweet : nvALT]

I usually save up my Top Apps posts for the end of the year, but I have such a soft spot in my heart for macOS utilities that I actually mentally create these lists frequently. The half-year point seems reasonable to let one out.

Every time I realize how much an app affects my workflow I want to hug it, so this is my big thank you to 20 apps on my system right now that make my life better every day. None of them run in my Dock — most of them are in the menu bar, some are completely background tasks on my machine where it’s easy to forget that they’re an integral part of my workflow. I see you, apps.

In no particular order:

  1. BetterTouchTool

    I have custom trackpad gestures for everything. You know that thing where you sit down at someone else’s machine and instinctively use a gesture or a keyboard shortcut only to have it not work? You should see other people trying to use my machine.

  2. LaunchBar

    I’ve been falling in love with LaunchBar all over again lately. When Alfred came out with their action editor they were a step ahead, but I always come back to LaunchBar, especially now that it has an Action Editor of its own. I appreciated Dr. Drang’s comparison.

  3. Hazel

    This is probably the easiest one to forget about, yet one of the most useful. My two most-used Hazel tricks are my TagFiler system and a trick I use where I can save an image file to my Desktop with an filename like ImageName@2x%%r1600ho.png and it will resize it to 1600px, create a 1x version at 800, and optimize the results. Then I drag it to…

  4. Dropzone

    For everything from moving files to my most common folders to uploading directly to my S3 buckets and getting a URL in my clipboard, I use Dropzone so often I take it for granted. I’ve written my fair share of custom Destinations for it, but also use the heck out of its built in ones. Related props go to Yoink, which I’ve been using more often than Dropzone’s Drop Bar for collecting files to act on.

  5. Default Folder X

    I see DFX every time I open or save a file in any app, so I do tend to forget it’s there, elegantly making folder navigation a breeze.

  6. TextExpander

    I’ve used TextExpander seven time since starting to write this post. Still, my favorite trick is a snippet I wrote that generates and sends Marked crossgrade licenses to customers.

  7. PopClip

    At first I thought PopClip was weird. I didn’t think I’d use it because I’m very keyboard-centric on my Mac. But using it made me realize I touch my trackpad more than I think, and PopClip immediately fit into my everyday workflow. I miss it any time I make a selection and it doesn’t appear. I’ve shared most of the extensions I’ve created.

  8. Fantastical

    I can’t remember the last time I opened the native Calendar app. My entire schedule in my menu bar, with a hotkey, and natural language event entry.

  9. Cardhop

    Cardhop immediately won a spot in my heart right next to Fantastical, both by Flexibits. I can search for a contact and take an action on them (call, email, text…) with just a few keystrokes. New version out today, too…

  10. HoudahSpot

    Since discovering it, I’ve always resorted to HoudahSpot when Spotlight failed me, but in more recent history I’ve been turning to it first. With all of my saved templates and menubar access, it’s as convenient as Spotlight and more powerful. Granted, it does run in my Dock when I make a search, but most of the time it’s sitting quietly in my menu bar, ready to leap into action.

  11. 1Password

    I shudder to think what my day would be like without 1Password. I would probably spend a lot of time feeling the way I feel when I watch other people working without 1Password.

  12. Timing

    Timing is automatically tracking me right now as I write this, categorizing my time and reminding me exactly what I was working on. At the end of the week I’ll be checking my reports to see what projects I put time into, and where I need to shift my focus to be more productive. And it all takes very little interaction on my part.

  13. Droplr

    Image and file sharing apps have come and gone, but I chose Droplr early on and have never been disappointed.

  14. SoundSource

    If you have multiple audio devices on your machine and haven’t checked out SoundSource from Rogue Amoeba, well, you should. Individual input and output source control (system and per-app) instantly from your menu bar.

  15. Choosy

    I run multiple browsers. I want different things to open in different browsers. I know that’s not the case for everybody, but if it is for you, Choosy is still kicking and it works better for me than the alternatives I’ve tried.

  16. Moom

    Moom has long been my top choice for window management. There are multiple good options, but I find Moom’s flexibility and customizability make it my consistent favorite.

  17. Karabiner Elements

    Seriously, I don’t know what I would do without my Hyper key. Actually, I do, it’s disappeared before and I’ve torn my system apart to get it back.

  18. Keyboard Maestro

    Keyboard Maestro can automate many things, but some of my favorites are automations that are triggered when I type strings that match certain regular expressions. And if you’re looking to harness all that power, don’t forget about David Sparks’ field guide on the topic.

  19. Arq

    Toiling away at all hours in the background, I have Arq backing my system up to B2 (Backblaze). Along with my SuperDuper! clones that run every night, it’s a wonderful sense of security.

  20. Bartender

    I would go nuts running all of these apps without Bartender keeping my menu bar sane. I mention it last only because by the time you get through this list your menu bar might be getting a bit crowded, so you’ll understand why you need it.

I regret only that I have 20 spots to give. I mean, it’s an arbitrary number, but you have to draw a line somewhere. To the entire Mac developer community that makes all of this brilliance possible, I salute you. You’re my favorite part of being a Mac user.

Web Excursions for June 18, 2019

[Tweet : nvALT]

Web Excursions header, Brett holding map

Web excursions brought to you in partnership with MightyDeals.com, featuring great deals on software, training, and design resources.

The Dark Side of Dark Mode
Adam Engst says what I’ve been feeling:

It may be hip and trendy, but put bluntly, Dark Mode likely makes those who turn it on slower and less productive. Here’s why, if you adopted Dark Mode purely because Apple promoted it as the new hotness, you should think hard about switching back to the Light Mode that your eyes and brain prefer.

A simple but handy little tool for randomly exploring Google fonts. You can specify categories (serif, sans, mono, display) and then just shuffle through the fonts. When you don’t have specific requirements and are just looking for a good font, it’s a lot nicer to see a few at a time than pages of results…
Deprecating scripting
I’m tempted to write my own piece on Apple deprecating the scripting runtimes, but I find myself overly emotionally attached to the topic. I’m sure my thoughts will come out over time, but Dr. Drang’s post covers most of my points very well.
MyHumans - Regain control of incoming iPhone calls
This is what it’s come to, a call blocking app that only allows calls from your contacts (without modifying the rest of your notifications). Even with 3 call blockers running I still get multiple robocalls every day, so I don’t see any other option.
Micro Album
An app that lets you easily create limited sets of pictures so you can hand your phone to a friend without concern that they’ll swipe… too far.

The fickle macOS Accessibility Permissions

[Tweet : nvALT]

I’ve had this happen with several apps — some apps more than once — and maybe you’ve seen it: the app has been manually granted permissions under System Preferences->Security & Privacy->Accessibility, but still fails to access features, especially the clipboard. This kills functionality in apps like LaunchBar and PopClip. Checking the permissions always shows they’re enabled, and the apps don’t seem to detect any issue; most of them notify you if they don’t have permissions, linking you to the System Preferences pane, so it seems as though, for all intents and purposes, the system registers that permissions are set. Yet somehow, they’re not.

The solution that works every time is to remove the app from the list in System Preferences by hitting the minus symbol at the bottom, then re-add the app either by dragging it in from Finder or using the plus symbol and manually selecting it. So if you’re seeing functions of macOS utilities inexplicably stop working, especially after an OS update, do that.

It’s an icky and impermanent solution. I find the shortcomings of the new security measures irritating. I’m all for security. I also know what I’m doing — and what apps I install and run — and having to give every app permission to open a folder in Finder with Apple Events is annoying. I’d like an override that just states “I get it, I take full responsibility.” If nothing else, Apple, please at least fix the bugs that require users to provide permission more than once. Please and thank you1.

  1. No, I’m not delusional enough to think that writing that on my blog would be more effective than filing a radar. And yes, I’ll be filing a radar.

Bunches LaunchBar Action quick fix

[Tweet : nvALT]

I found a bug in Bunches, the LaunchBar Action for Bunch that I posted on Monday, and have uploaded a fix for it. The cache time is reduced to one day, and it uses LaunchBar preferences to locate your preference file rather than depending on the script environment. It should work now, but let me know if you have any problems!

Oh, by the way, the latest version of Bunch can now run scripts when quitting a Bunch, too. I mean, since I’m posting about Bunch news anyway…

Bunches LaunchBar Action v2.0.1

A LaunchBar action for Bunch

Published 05/22/19.

Updated 06/08/19. Changelog

DonateMore info…

NiftyMenu, Mac menu madness

[Tweet : nvALT]

Ok, this one is a little embarrassing. You know how I often refer to myself as a mad scientist? This is what I’m talking about.

I made a crazy thing last weekend that has such limited practical value that even if I found anyone else who could truly benefit from it, our combined total of time savings would struggle to come close to the Saturday morning hours that went into it. That said, it’s too neat a trick and I put too much loving care into it to hide it.

It started while I was working on documentation for nvUltra and wanted some quick screenshots of various menus. I generally have reservations doing this because over time menus always change so it’s hard to automate, and you know you’re going to have to do this all over again next time you move a menu item or the OS updates with some fancy new look that makes all your current screenshots look outdated. Plus the process of taking menu screenshots itself has some annoyances for me (I detailed them in the docs). If only there was a way to create a playground that I could automate…

My solution is called NiftyMenu. With one script it automatically builds an HTML playground that exactly duplicates the menus of any Mac app. Click menus to lock them in place, double-click and option-click to add different callouts. Toggle background images and Dark Mode with keystrokes. Then use a JavaScript API to automate fuzzy search for clicking items, adding callouts, desktop images, and Dark Mode. See the demo to understand what I’m talking about. If you dare, visit the GitHub repository to see the full depth of the madness.

Yes, I’ll ask my doctor about a med change.

Bunch for the menu bar

[Tweet : nvALT]

Ok, Bunch news two days in a row, despite having said I wouldn’t keep doing this. But this one is special. I’ll keep it short.

One of the most frequent requests has been for Bunch to run as a menu bar utility. I get it. While I like having it in my Dock and it makes sense with my workflow, it’s never made sense to have it show up in the Application Switcher (⌘-Tab). And it frequently requires clicking once to wake it up before the right click menu will work. So a menu bar app made sense. So I did that.

The Bunch project page is updated with new info and downloads. If you’re already running Bunch, the update should show up automatically. To get the menu bar goodness after you update, just use Preferences->Run In Menu Bar. You can get back to Dock Mode at any time with Preferences->Run In Dock.

Better Bunch for LaunchBar

[Tweet : nvALT]

This post is specifically for people who use Bunch with LaunchBar. If you happen to be an Alfred user, Jay Miller is cool guy who also develops an Alfred action for Bunch. Thanks Jay!

I made such a huge improvement to the “Bunches” LaunchBar action that I had to bump it straight up to version 2.0. Bunch has been improving, so this little one has to keep up. It’s the way of the world.

The action previously just read your Bunches folder and launched them with the URL handler. The URL handler has expanded, though, and there was a bunch1 of stuff I wanted to be able to do from LaunchBar. I actually use Bunch as much from my launcher as my Dock now, so it was worthwhile to put some time into it. Here’s what’s new:

  • Caching preferences retrieved from defaults read to speed things up

    Using defaults to determine the Bunches folder and the Toggle Bunches preference every time the action was selected was adding 2-4 seconds of delay. I changed it to read the preference plist directly, which cut down the domain search time, but it was still consistently slow. Those preferences aren’t likely to change all that often, so now it just caches them in the actions’ own preferences and only has a short delay once every few days when it refreshes.

    The cache is set to last for 3 days at a time, and you can force a refresh from the settings submenu.

  • Allow setting a default action (Toggle, Open) that overrides your Bunch preferences

    When Toggle Bunches is enabled in Bunch, the Dock shows checkmarks next to open Bunches and it makes sense to have the preference there. From LaunchBar, though, I don’t have access to the list of what’s currently launched, so it makes more sense to set the Action to default to “Open”. If you open the settings menu (the last item when you arrow into the Bunches action), you’ll see the item that overrides that preference.

    Bonus: once you’ve set that, you’ll never suffer from that particular defaults read delay again.

  • Every Bunch listed now has a child menu that offers whichever actions aren’t default If the default action is Open or Close, hitting the right arrow (or Ctrl-L) will offer you the opposite option. If it’s on Toggle, the options will include both Open and Close.
  • Holding modifier keys when opening the action changes the default methods for that run
    • Ctrl: close bunches
    • Command: toggle bunches
    • Shift: open bunches

    After you type bunch to select the Bunches action, hold down the Ctrl key as you arrow into it. Everything will default to Close. It’s handy once you memorize the keys. Or maybe I’m just too keyboard-nerdy.

  • Bunches can now accept strings

    If you press Spacebar when the action is selected, Bunches will accept a string and execute it using the raw?txt= method of the URL handler.

    You could just run (dnd off) to toggle Do Not Disturb. You can pass a longer string with more commands, but note that you need newlines between each command, so typing them in LaunchBar is not feasible. But…

  • Bunches can now accept files, too

    You can select a Bunch file (with or without .bunch extension) from anywhere on your system and hit tab to execute it in Bunch. Using this method will always run them with the raw?file= method, which means they’re always going to open, even if you hand it a Bunch that’s in your main Bunch folder and already running. It treats all received files as “outsiders,” which is what the method was intended for.

  • I made some new icons. I’ll hate them by tomorrow, I always do

If you’re wondering about the CLI, the only thing I’d really like to fix there is the same defaults read delay. I updated the gist with the read-directly-from-plist modification, but it could still stand some caching. I’d also like it to accept text from STDIN for raw?txt= handling, and files as arguments for raw?file= handling. I rewrote the LaunchBar action in JavaScript, so it’s completely diverged from the Ruby script and will be a separate project.

In the meantime, the LaunchBar action is packed, codesigned, and ready to go. Download below!

Bunches LaunchBar Action v2.0.1

A LaunchBar action for Bunch

Published 05/22/19.

Updated 06/08/19. Changelog

DonateMore info…

  1. Sorry.

nvUltra is nvUltra

[Tweet : nvALT]

I just wanted to post a quick progress report on the upcoming nvALT successor, nvUltra. It’s been a big week of bug fixes and planning!

First, we decided on an official name of “nvUltra.” We’re sticking with the working title. Here’s the story: when Fletcher first started working on this, before we even teamed up, he started calling it nvUltra as a play on nvALT. When he mentioned it during our first Skype chat, I thought “whoa, that’s perfect.” And it was… as a name for an nvALT successor. I’d like to think that there are potential customers outside of current nvALT users, though, and I think that “nvUltra” is just a weirdly spelled non-word to the uninitiated. So we started trying to find something we liked better.

We went through months of brainstorming, with an extensive mind map, detailed Slack discussions, input from friends (and some of you), and conversations with other outsiders. We found a bunch of “could be cool” names, but none that we both agreed had any “eureka!” to them. So we finally admitted that the only name we both loved was nvUltra. So we’re making it official. Now I just have to figure out the icon and branding for it.

Our first round of beta testing is going well, and we’ve slowly been adding one-off testers to the list. I would estimate another week before we officially expand the pool. Our current testers are really putting it through its paces and by the time the next invite goes out, it’s going to be a significantly better app. Things are moving quickly!

That’s the news for now. The mailing list is getting huge, so anyone joining now will likely only get a beta invite after it’s already public. If you want to get updates on beta and release progress, though, please do sign up!