Archive for January, 2022

App Tamer experimentation: Running apps on M1 efficiency cores

Friday, January 21st, 2022

So I was reading Howard Oakley’s Eclectic Light Company blog, as I often do (and you should too), and he mentioned the taskpolicy command line app, which I wasn’t aware of before. taskpolicy allows you to demote a process to “background priority,” making it run more slowly by giving it a lower priority for its disk and network access and – key point here – on M1-powered Macs, also runs the process on the M1’s efficiency cores instead of on the performance cores.

That got me thinking… if there’s a command line tool to do this, there must be a system API to make this happen, too. And lo and behold, the setpriority( ) system call will actually perform this neat trick, even though the man page lies and says it won’t.

I made some changes to App Tamer yesterday to add this, and App Tamer now has a new checkbox:

Turn the checkbox on, and whenever an app isn’t frontmost, App Tamer will give that app background priority, reducing its disk and network priority and switching it over to run on an M1 efficiency core. Running a few apps that consume quite a bit of CPU looks like this in Activity Monitor:

In my initial testing, the feature seems to work quite nicely. App Tamer automatically moves apps between the performance and efficiency cores as you switch between apps. So far, I haven’t found any downsides to this – but then again, I just added the feature yesterday and have only done limited testing. It’d be great to actually quantify whether this delivers additional battery life.

If you’d like to give it a try, you can download App Tamer 2.7d1 here. Just unzip it and run it, then click on a cpu-hungry app in App Tamer’s process list and turn on “Run this app on an M1 efficiency core” – that’s it. App Tamer will automatically lower the app’s priority when it isn’t frontmost.

Update: There’s now a beta version of App Tamer 2.7 that includes an almost-finished version of this feature.

Note for users of Intel-based Macs: On your machine, the checkbox is named “Run this app as a low-priority process” because your Mac doesn’t have separate efficiency and performance cores 😢. The app will be demoted to background priority so it uses fewer CPU and I/O resources, but I’m afraid there’s no fancy cpu-juggling involved.

App Tamer 2.6.5: Refinements and Fixes, plus “hide everything”

Thursday, January 20th, 2022

Version 2.6.5 of App Tamer is available, sporting fixes for a few things that have come to my attention since the last release. Specifically, App Tamer’s Force Quit command, which you can get to by Control-clicking on any app in the process list, now ensures that the app is terminated even if it’s being very uncooperative.

Some UI inconsistencies have also been fixed, including small changes to the text color and font size used in App Tamer’s icon in your menu bar. And there’s a fix to App Tamer’s high-cpu-usage-detection warnings so that if some helper process (like one of Safari’s web content renderers) uses lots of CPU, App Tamer tells you to limit Safari’s CPU usage to fix the problem, rather than complaining about the helper process itself.

This release also includes the “inverting” of an existing feature to fill the niche left by the demise of the app Hocus Focus. App Tamer already offered an option to hide particular apps after they’d been idle for a certain amount of time, but if you wanted that to apply to all applications, you had to turn the feature on for every app individually. Now you can set up all apps to be hidden after 5 minutes (or whatever) in one fell swoop by using these commands in Terminal:

  defaults write com.stclairsoft.AppTamer hideWhenIdle 1

  defaults write com.stclairsoft.AppTamer minutesUntilHide 5

The first command turns on the “hideWhenIdle” feature, while the second sets the “minutesUntilHide” time to 5. You can obviously use any delay you want for minutesUntilHide. To turn the feature off again, just set hideWhenIdle to zero:

  defaults write com.stclairsoft.AppTamer hideWhenIdle 0

Also, if you want a few apps to wait longer to hide, you can override the time using App Tamer’s normal hide-when-idle feature, accessible in the settings popover that you get by clicking on an app in the process list. Or to prevent the app from being hidden regardless of how long it’s been idle, enter zero into the edit box next to the slider.

As usual, concise release notes and download links are available on the App Tamer Release page, or if you’re already running App Tamer, by choosing “Check for Update” from utility menu at the bottom of App Tamer’s window.

Version 5.6.3 of Default Folder X improves recent file tracking, fixes bugs

Friday, January 14th, 2022

There’s a free update to Default Folder X available, bringing it to version 5.6.3. This release adds a few notable exceptions to DFX’s general rule of “if something is hidden, I won’t show it in your recent files or folders”.

Background

Default Folder X has always followed the principle that it should respect your privacy choices. To that end, if you open a file or folder that’s stored within a folder that’s been hidden, it assumes that there’s a reason that folder is hidden and it shouldn’t show the world the thing that you just opened. Generally, that’s what you want. If you hid that huge folder full of photos you took on an ill-considered party weekend in Vegas, your Recent Files menu won’t suddenly be filled with them after you’ve opened a bunch while trying to figure out what the heck your buddy Jason was wearing on his head that Saturday night.

The Problem

The hiccup in this system arises because Apple has chosen to hide some folders on your system by default. Most notably, the Library folder within your home folder is hidden. That’s generally a good idea, since you don’t want to know about its zillions of mystery files storing cached information, preferences, miscellaneous application data and the like. Unfortunately, there are a few things stored in the Library folder that you do care about – namely the attachments included in Mail messages and Messages conversations.

The Solution

In version 5.6.3, Default Folder X now makes special exceptions for attachments that you open from Mail and Messages. Even though they’re in a hidden location, they’ll show up in your Recent Files menu because there’s a reasonable chance that you’ll want to get back to them later.

Similarly, the cloud sync service Box Drive recently changed the default location of its synced Box Drive folder so that it’s stored within your Library folder. That, too, will now be treated as an exception by Default Folder X when it’s tracking cloud-synced files and folders. Anything that arrives in your Box Drive folder will be shown in your Recent Files and Recent Folders menus as it should be.

Other Changes in 5.6.3

In addition to the changes to recent-item-tracking, this release includes a number of bug fixes. One particularly vexing one for some folks was this situation:

where the Save, Cancel and Delete buttons are below the bottom of the screen. While you can move the dialog by dragging the parent window’s titlebar – or use the Return, Esc or Command-Delete keys to activate the button you want – this situation is confusing. It’s caused by Default Folder X trying to “help” by maximizing the dialog that first appears, which originally looks like this:

To fix the problem, Default Folder X now detects this situation and leaves the “do you want to keep this” dialog at its smaller size if there’s not room for it to fit on-screen.

Finally, version 5.6.3 corrects several other less egregious user interface issues. Full details are in the release notes on the Default Folder X Release Page. You’ll also find download links there, or if you’re already running Default Folder X, just choose “Check for Update” from its menu in your menu bar.