Skip to content

Mac OS X Hints

A possible fix broken search in macOS Mail

Over the weekend, I wrote about my totally useless search in Mail. I got so frustrated by my inability to search in Mail that I decided it was time to for a complete rebuild. I exported all my locally-saved mail, deleted my accounts, quit Mail, trashed its prefs and data files, rebooted, then rebuild it mailbox by mailbox, account by account.

I started with my iCloud account, which I barely use for anything—it has a total of seven messages in the inbox (four of which are iTunes Store receipts), and only 121 sent messages. As a test, I searched for Linea, an excellent drawing app that I had recently purchased. No matches.

At that point, I decided to quit Mail and force Spotlight to rebuild its index overnight. In Terminal, sudo mdutil -i on / will do just that (and take many hours). Today, opened Mail, and search was still dead. Argh! (I had also tried this suggested fix, but it made no difference.)

But doing some random testing today, I discovered a fix! It's a weird fix, but it seems to work:

If I move all the messages from an inbox or local storage folder into a different local storage folder, they'll be indexed and findable. I can then move them back into the inbox or source folder, and they remain findable.
Even more important, newly-added messages seem to be properly indexed, in both the inboxes and the local storage folders.

This doesn't make any sense to me, as any one of my recent actions—rebuilding mailbox indexes, reimporting, and redoing the entire Spotlight index—should have been enough to force a rebuild. But for whatever reason, only manually moving the messages seems to force a rebuild.

Now pardon me while I go back to manually dragging a quarter-million email messages around…



Transport the cursor to the center of frontmost window

My home workspace is a 27" Retina 5K iMac (2560x1440) paired with a vertical 4K display (scaled to view 1440x2560). While I love this setup in general, there's one time it's annoying: When I need to move the cursor between displays, and it's located far away from its destination.

There are many ways to solve this problem, including our own Keymo, which I still use when I want to teleport a drag across displays. But what I really wanted was a fast way to move the cursor to the other display when I switched to a window on the other display—because generally, if I've activated the window, I'm probably going to use the mouse in that window at some point.

Using Keyboard Maestro, it's possible to create a macro to make this happen automatically:

This macro will activate every time you switch applications, and then move the mouse to the center of that newly-frontmost window and highlight its location with a quick circle. Having tested this, however, I can say it's a non-ideal solution: Most of the time when I switch an app, I do not want the cursor to move. I found it more annoying—much more annoying—than useful.

As useless as the above macro is, with one minor change it quickly became one of my most-used macros…

[continue reading…]



macOS app: Use HoudahSpot for enhanced searches

As I lamented in a recent entry here, macOS Mail search is totally broken for me. I pointed out that I can use Spotlight, but also alluded to a third-party app. That app is HoudahSpot, and it's what I use to not only search Mail, but any time I need a more-powerful search than I can get through Spotlight's interface.

Houdah's UI is a large multi-paned window, with search criteria on the left, results in the middle, and one of file info, Quick Look preview, or text preview in the right-hand pane. Here's how it looked for the same search that failed in Mail:

Using HoudahSpot for a search like this, though, is really overkill—I'd see similar results in Spotlight, because it's a very specific search term that's not going to find a lot of matches. Where HoudahSpot shines is in its ability to build more complex search queries.

[continue reading…]



Transforming text via Keyboard Maestro

Recently, Melissa Holt wrote about transforming text via the Transformations menu. After seeing this article, a reader named Hunter wrote to me with this comment:

Today in The Mac Observer Melissa Holt wrote about using the TextEdit/ Edit/ Transformations command to change the case of a sentence or paragraph. However, there is no option to perform, "Sentence Case", i.e., capitalize the first letter of the first word, and keep all other words in lower case.

Is there a way in Terminal, or maybe Keyboard Maestro to add this option to Transformations? It seems to me that the given choices have rather limited uses.

In addition to not offering sentence case, the Transformations menu has a few other drawbacks:

  • Not all apps have a Transformations menu.
  • Only three very basic transformations (upper, lower, capitalize) are supported.
  • The transformations are buried in a sub-menu, requiring lots of mouse navigation to reach.

While I don't believe it's possible to modify the Transformations menu, it's pretty easy to use Keyboard Maestro to build a "Sentence Case" transformation…or more usefully, as seen at right, a palette with many more transformations. Unlike the Transformations menu, the Keyboard Maestro solution will work in any app where you can copy and paste text.

[continue reading…]



Useful site: Find and use fonts at Font Squirrel

I recently tweaked the look here a bit, greatly simplifying the fonts and lightening the visual weight of the site quite a bit.

As part of that process, I wanted to find a larger lighter yet highly legible font. So I went back to Font Squirrel, the same site I used in my 2014 redesign.

They offer a huge assortment of fonts, all licensed for free commercial use, with a nice set of categories and search engine. And free…though the tradeoff is a fairly heavy advertising load. After much looking and testing, I've got the site running on three font families: Open Sans for most of the content and sidebar, Open Sans Condensed for headlines, and Ubuntu Mono for code snippets.

As part of the cleanup, I was able to remove 40+ font-family and font-size statements from the CSS, and the site should scale a bit better on small-screen devices. (I'm still not completely happy with things, so expect minor changes going forward.)

Font Squirrel not only has a great collection of fonts, but they offer a free web font generator. Using the generator, you can create fonts that are embedded in your page, so that they're available even when users don't have those fonts installed locally. Just upload a font you're licensed to use, and Font Squirrel will create a web font, complete with CSS. Upload the converted web fonts to your server, copy and paste the CSS bit into your CSS master file, and you can use the fonts on your site.

There are 20 web fonts on the site now (two forms of 10 font faces across the three font families), and in total, they're 200KB in size—or less than the typical "larger" image I often post here.

There are lots of sites that offer free-to-use fonts; I really like the assortment at Font Squirrel, and the web generator is an added bonus.



Create a workload for your CPUs

Over the weekend, I was testing how some of our apps work when the CPUs are busy. One way to load the CPUs is to rip a Blu-ray disc, but I was looking for a more controllable CPU load.

A quick search through the Mac OS X Hints archive (use this tip to search the site) found the answer from 15 years ago: Just say yes in Terminal to generate sizable CPU loads…

More specifically, use this command in Terminal:

yes > /dev/null &

If there's an award for strangest Unix utility, yes might just be the winner. All it does is output y (or whatever you list after the y; the man page suggests an expletive) until you kill the task.

The above command sends the output (via the > redirect) to the null device, which discards it. The ampersand sends the job to the background, so you get your Terminal prompt back.

You can run this command multiple times, each loading the CPU even more heavily (the screenshot shows three yes tasks running). Keep an eye on Activity Monitor to see just how much CPU it takes—as shown above, it does a great job at loading the CPU.

You can kill the tasks by issuing the command killall yes in Terminal, or by quitting Terminal—you'll be told that quitting will terminate the tasks.



Install and configure Apache, PHP, and MySQL on macOS Sierra

Fair warning: Today's tip is over-the-top geeky.

After many years of not doing anything with web serving on my local Mac, I recently had a need to look at some mySQL/PHP-based web packages. While I could install these on robservatory as tests, I generally like to install things locally first, because I'll install a handful of packages until I find the one I like. But it'd been so long, I didn't have anything configured. (Remember when enabling Apache—i.e. web sharing—was a feature of the System Preferences' Sharing panel? Ah, good times!)

I could have opted to use the built-in Apache, but I wanted something that I could more easily keep up to date, and that, if I chose, would be easy to remove. The good news is that Homebrew has packages available for Apache, PHP, and MySQL. Homebrew installs everything in its own directory tree, and adding and removing packages is simple—exactly the setup I wanted.

So in theory, installation was as easy as three brew tap commands. The reality, though, is that the installation is a bit more complex. OK, it's a lot more complex. The good news is that, this being the age of the internet, help is but a search away. Or the advice of a friend away, which is what I used in this case.

A friend pointed me to this excellent installion guide that walks through the entire process, including installing two versions of PHP with the ability to switch between them on the fly.

It was this on-the-fly switching, though, that gave me troubles: I couldn't get a site to load unless I specified "index.php" or "index.html" as part of the URL. (Apache is configured to grab those files automatically.) Solving that one took a bit of time…

[continue reading…]



How to make Sims 3 work in macOS Sierra

When we upgraded all our Macs to macOS Sierra, my daughter was upset because Sims 3 broke. After much scouring of the internet, I found the solution and tweeted about it:

It dawned on me, though, that if that forum post ever vanishes, I'll be in trouble with future new Macs and/or reinstalls, so I thought I'd document it here, too. Read no further unless you (or a family member) play Sims 3 and want to get it working in macOS Sierra. And really, try the linked forum post first; this is just a backup plan.

[continue reading…]



macOS App: OmniDiskSweeper

There are tons of "where's my disk space going?" apps out there—search the Mac App Store for "disk space," and you'll get pages of results. Many are of the newer graphical style, where you see a pie chart or square or some other graphical representation of your files.

I've tried a bunch of these tools over the years, both graphical and text-based, but I still keep coming back to an oldie-but-goodie—and it's free: Omni's OmniDiskSweeper has everything I want in a disk space usage tool. It's got an intuitive interface, and a way to either delete what I find or open the containing folder to take a closer look.

Perhaps it's because I'm a column-view Finder kind of person, but I love the columnar drill-down layout that OmniDiskSweeper uses. Select the drive you want to examine, then start drilling down into folders to see what's taking up all your space:

Oh look, five gigabytes of cached Twitter content. Just what I didn't need. This is where the bottom left button comes into play: Select an item, click that, and (after a warning), it's gone. This is not a "move to trash" operation, this is a destroy operation. Be very careful with it! This is why you'll see a warning before the delete proceeds, because there's no going back.

The folder icon on the bottom right is the one I usually use, though—it opens the chosen folder in Finder, where I can then manually remove the cruft.

If you're a more visual person, you probably won't like OmniDiskSweeper, because the layout is completely text-based and columnar. But for me, it's the perfect tool to manage the limited space on my iMac's boot SSD.



Create a pop-up web search tool using Keyboard Maestro

My original Keyboard Maestro special character palette (which has been replaced by a much better version), used the Conflict Palette to display a window from which you could pick the special characters.

While this turned out to not be ideal for the special character palette (no way to pick more than one at a time), the Conflict Palette is ideal for many other tasks.

I use the one at right to search a number of web sites—activate the palette with ⌃⌥L then press a, for instance, type a query, press Return, and my browser loads with search results from my old macosxhints.com site.

Feel free to download my macro if you'd like to use/modify it.

I use a couple additional palettes—one for retrieving iTunes' artwork and searching the store, and the other for inserting commonly-used bits of code while writing help files in Coda for the Many Tricks' apps.

Here's how the web search palette looks in use; I love being able to search a specific site from anywhere without first switching to my browser. And because I have Keyboard Maestro syncing its macros, I can do this from any Mac I own.

The advantage of using the Conflict Palette for these web searches is that I need only remember one shortcut, not 11 different ones, and the palette is a nice visual reminder of which service I wanted to search.

[continue reading…]