Skip to content

macOS Apps

Articles about OS X applications.

The macOS’ version of the cp Unix command won’t create links

I ran into this while working on a Keyboard Maestro macro that creates hard links: The macOS version of cp won't create links, at least not in Sonoma. In Ventura, it works even though it throws the same error as it does in Sonoma.

Copying as hard links is part of the cp feature set, fully covered in its man pages. But it doesn't work in macOS. To confirm, try this:

When I ran into this, I searched and discovered that someone else had run into the same issue,1Apple Developer login required but that's the only mention I could find.

I have filed this bug as FB13255408 with Apple, and I'm hopeful they fix it soon. There is a workaround, obviously: Use ln instead. This works fine for individual hard links, but using cp to quickly copy an entire folder as hard links is a nicer implementation.



More helpful help for Terminal commands

I use Terminal a fair bit, for any number of things. But I don't use it all the time, and that means I sometimes struggle to remember syntax of commands. "Was it rsync source destination or the other way around? Or was it ln that was backwards of what I thought it should be?"

You can open the man page for a command, of course, but sometimes there's so much there that finding the simple thing you want is tough. Enter tldr, installable via Homebrew or MacPorts. tldr skips most of the detail of the man pages, providing user-curated examples of how to use a given command.

As an example, here's the aforementioned rysnc command's man page:

[continue reading…]



Replace the mini music player that Apple took away

Back in the early Mac OS X iTunes era, there was a wonderful small window available that had control buttons, volume control, a visual progress bar, and a text display showing the artist, song, and album—it could even display a graphic equalizer in lieu of the artist-album-song info:

It was perfect. Sadly, it was last seen in iTunes 10 in Mac OS X 10.7. And today's version, while offering a mini mode, isn't nearly as mini or as functional as it used to be; read on for some details…

tldr summary: Mario Guzman's Music MiniPlayer is a full-retro near-perfect replacement for the original mini player. It's free, and I love it. If you're not into retro UI, Silicio on the App Store is also free and quite good, though you can't freely resize the window.

[continue reading…]





Why hidden UI is bad UI—example number 4,516,672,523

If only there were some way to add to the Favorites (or Smart Mailboxes or etc.) section in Mail's sidebar…

…oh wait, there is. As long as you magically hover in exactly the right general area to see the previously-invisible UI for adding favorites.

Thankfully, you can also right-click on a mailbox and select Add to Favorites. I consider the contextual menu items to be semi-hidden UI, as you still have to go looking for them. There is no way to do this using Mail's menus, however.

The best solution would be to have the down-arrow and plus sign always visible next to each item where it's applicable. A user setting could be included for those who prefer the clean look.

I really hate hidden UI.



The most popular letters in Wordle and its relatives

Each morning, I spend a few minutes doing a set of word puzzles—I find they help clear the sleep and get me ready for the day. My daily set includes (in the order I do them):

My focus today is on the first three games in the list. Everyone is probably familiar with Wordle, where you have to guess a five-letter word in six tries.

Canuckle uses the exact same rule set, but all the words are related to Canadian history and culture.

Quordle also uses the same rule set as Wordle, but you solve four five-letter words at the same time. (If you like that kind of thing, Octordle (8 at once), Sedecordle (16), Sectordle (32), and Sexaginta (64) take it to extremes.)

When I started playing Quordle, I had troubles as I'd focus on one word and use up too many moves, preventing myself from solving the others. So I thought I'd "do the math" and see if I could find better opening words for the three Wordle-like games.

To do that, I looked at all the words that had been played so far, figured out which letters were most likely to appear, then created a set of four starting words, based on letter popularity, for each puzzle.

Note: The remainder of this post includes an analysis of all the words used in each game, and ranks the letters by occurrence counts. It also includes graphs showing the distribution of the letters. The images are hopefully unreadably small before clicking, and the top letters are ROT13'd to prevent accidental reading. Still, if you don't want to know, stop reading now.

[continue reading…]



Search sites from anywhere via shortcuts, version 3.0

Yes, it's the return of the return of Web Search via Shortcuts, now at version 3.0 and much better than either of the previous versions. This is my Keyboard Maestro macro that lets you easily search web sites via a pop-up menu and an abbreviation:

The above would search DuckDuckGo for the theory of everything, and open the results in your default browser. Here are the highlights of the 3.0 release:

  • The input dialog appears much more quickly—over 4x faster than in the 2.x series.
  • All customization is done within the macro itself; there's no need to muck about in the Keyboard Maestro editor.
  • You can modify (shortcut, description, URL) any search site, including the default sites.
  • A list of 80+ search sites is included, and you can activate any of them with a few clicks and the creation of a shortcut word for each site.
  • All updates are tracked in two small text files on your drive, which means future updates will be completely automatic.

Read on for the details, or if you'd like to get started with Web Search via Shortcuts version 3, download the macro now. (Current users can use the check for updates macro to download the new version directly from version 2.x.)
[continue reading…]



Convert epoch time to human-readable time in Terminal

This is a stupid-simple Unix tip, posting more as a reminder to myself than anything truly insightful—I keep forgetting these details, so by doing the work to create a post about it, I'll never forget them again…

I've been using unix time from the unix side of macOS quite a bit lately, as it's an easy way to get timestamps for things. Getting the epoch time is easy:

$ date +%s
1641735529

The thing I always forget is how to convert an epoch time back into a human-readable format of my choosing, despite it being shown in the man page. It's simple; use the -r option, like this:

$ date -r 1641735529
Sun Jan  9 05:38:49 PST 2022

And, of course, you can format it how you like using a strftime formatted format string, i.e.

$ date -r 1641735529 "+Today is %A, %B %e, and it's %I:%M:%S %p"
Today is Sunday, January  9, and it's 05:38:49 AM

Related: Yes, I wake up early; it started with macosxhints.com and needing to update the site before I left for my real job each day, and it persists 20 odd years later.



Search sites from anywhere via shortcuts, version two

Jan 14 2022: Version 2.5 is out, with a bug fix and a new check for updates button on the help panel. Download the macro, or get the update by manually running the Update check macro within the 2.4 release.

Jan 14 2022: Version 2.4 is out, with an optional "no text" input dialog, a default mode to search a favorite site without a shortcut, and faster processing of search terms.

Jan 9 2022: Version 2.3 is out, with a new download verification feature (which will be useful starting with the next update), a much simpler update checker, and some minor bug fixes.

Jan 4 2022: Version 2.2 is out, with a fix for an annoying bug I introduced in the update checking code that could cause the macro to quit after being invoked. Sorry!

Jan 2 2022: Version 2.1 is out. The most-obvious new feature is shown at right—a live-filter option for the list of shortcuts in help.

But there's lots more—check out the release notes to see the full list, including the newly-added shortcuts.

A week or so ago, I published the first version of Web Search via Shortcuts, my Keyboard Maestro macro that lets you, well, search the web from anywhere via shortcuts—you can type rob macros, for instance, to search this site for entries related to macros.

I was very happy with how the macro worked, but behind the scenes, it wasn't all that good. What started as a small project (make it easier for others to customize the list) turned into a near-total rewrite. So…introducing Web Search via Shortcuts, version 2.0:

If you need more general information on how the macro works, please refer to the original post; there's a lot there I'm not repeating here.
[continue reading…]



Search sites from anywhere via abbreviations

Note: This post is no longer updated. Please see the version 2.0 post for current details and download links. This post remains because it has a fair bit of information about the macro in general.

Nearly five years ago, I wrote about my simple Keyboard Maestro web search macro that let me search many web sites from anywhere within macOS. While it worked well, it felt a bit cumbersome—I had to scan a pop-up palette of sites, and then press the proper key to select the site I wanted to search (so I had to keep the list relatively short). Then I'd wait for a new prompt to appear, type the search terms, and press Return.

Because of my macro's convoluted interface, I found myself using our own Butler most of the time, as it offers an interface similar to SafariKeywordSearch (which works in Safari as an extension; I was reminded of it due to a recent post by @danmoren on Six Colors). Both it and Butler do keyword searches, so you can type d best home vacuums to search DuckDuckGo for best home vacuums, or gm Tokyo to search Google Maps for Tokyo.

I decided to rewrite my macro to work like those apps do, but with an added feature: I use a number of browsers, and there are times I want my search to run in something other than the default browser. Using my rewritten macro, I can now optionally specify a browser in which to run the search. So when I activate the macro, I can use one of two different formats for the search command:

Both of those searches will search the Apple Movie Store for movies with the keyword disaster; the one on the left will use my default browser (currently Safari); the one on the right will use Edge.
[continue reading…]