Does anyone have a tip to keep macOS from phoning home when you run unsigned binaries?
I almost locked up my entire computer this week, presumably because of this... here's the story for that:
I had setup unbound listening on 127.0.0.1:53 as the only DNS resolver for all network interfaces, so that I hijack several responses that I might want to (e.g. adnet sinkholes) and forward the rest to Google/Cloudflare over TLS.
When I rebooted the Mac, the entire computer was so fucked that I panicked cause I thought my SSD was failing. Turns out unbound failed to start so all DNS was down. I suspect it to be the "phoning home" because when I opened the Terminal, running `ps aux | grep unbound` took like 5 seconds to return anything (as did everything else that tried to run), and that behavior has been reported by other users as Gatekeeper's Phone Home checks being at fault.
So that's why I was wondering if anyone has found out how to keep macOS from doing this (preferably without disabling all of SIP), cause that'd be one hell of a tip...
First: binaries that ship with the system are not included in this because they're platform binaries. Tools like ps or grep won't be included.
Second: once the binary has been checked for malware it won't be checked again.
Third: if the connection fails immediately the malware check is skipped immediately. So if you are offline or otherwise force the relevant server DNS names to be rejected immediately it shouldn't wait for any timeout.
Fourth: anything you build with the Xcode UI is automatically excluded since you are using the user interface and explicitly asking to run "unknown" code.
Fifth: Anything listed as a Developer Tool in Privacy will have its child processes excluded from GateKeeper scanning. This command will make the category show up and put Terminal in it:
"sudo spctl developer-mode enable-terminal"
Once it shows up there go to Privacy and check the box to enable Terminal.
If you run CI or automation you can do the same by putting your Jenkins or other binary in the list, causing all subprocesses to be excluded.
I was partly aware of many of these, and like I said I'm not 100% sure if this really is the culprit. Your comment is a solid reference on this topic though (better than most of what's on SO), but here's a few comments regarding my specific incident...
On your first point: Was aware of this, and this is the part that is most puzzling about the whole incident to me. I just checked my $PATH and I am indeed running the system binaries, so not sure how to explain this one.
On your second point: Was aware of this too, but I assume a lot of the slowness comes from JITted programs, for which there will be phoning-home for any new executable memory page (AFAIK), and the policy decision caching semantics for things that are not on disk are not as clear to me.
On your third point: While this is true for the connection that gets established to Apple's servers, I think this might have had to do with DNS being UDP based by default (AFAIK), so there is no explicit refusal, and it hangs on a timeout because of that, even though DNS can be done over TCP as well. Haven't investigated this though, just a hunch...
On your fourth and fifth points: I don't use XCode, but my terminal (Kitty) was already on the Developer Tool list when this happened, which makes the situation with ps and grep even more mysterious to me...
#3: Sorry I meant use hosts to skip DNS resolution and just map them to 127.0.0.1 directly (assuming you aren't running an https server locally). The names are ocsp.apple.com and api.apple-cloudkit.com.
Clearly something was trying to resolve hostnames but it may not be related to GateKeeper malware scanning. TBH a tarpit DNS server is not a case I have personally thought about before but is interesting to consider!
On your last point, would that include the jenkins-agent.jar file? If so, is there a way to dynamically add it? We download our agent jars on boot which I'm pretty sure would replace the preview permission, so it'd be great to add it after download.
The Developer Tool permission excludes a process's child processes from scanning, not the process itself, so you'd have to add whatever launches the Jenkins agent, not the agent JAR itself. That's probably either ssh or launchd; adding a blanket exception to either of those is probably undesirable (if macOS will let you do it at all).
Usually you have something configured as a LaunchDaemon or LaunchAgent. Put that process in the list so once it goes out and downloads the jar then executes it you're good.
I don't recommend putting java in the list. That would grant that power to all Java apps (or at least all that start through that copy of Java).
I guess the questions I'd have regarding this that I'd need to validate would be:
- Does this setting persist across reboots?
- Does it stop phoning-home altogether, or will it still phone-home, but always authorize regardless of answer?
- Is there a more granular way to disable just phoning-home, rather than nuking all of Gatekeeper? (Some of its things like disallowing access to personal files by default are still nice to have)
Adhoc code signatures just ensure the code pages are the same as they were when the binary was written without the system needing to jump through other hoops to fake up a different identity because the binary doesn't have one.
Spotify flashes non-stop (the left sidebar and the bottom control strip, but interestingly not the main app window).
> Quartz Debug: There are some apps that reduce your battery life in an insidious way where it doesn’t show as CPU usage for their process but as increased WindowServer CPU usage. If your WindowServer process CPU usage is above maybe 6-10% when you’re not doing anything, some app in the background is probably spamming 60fps animation updates. As far as I know you can only figure out which app is at fault by getting the Quartz Debug app from Apple’s additional developer tools, enabling flash screen updates (and no delay after flash), then going to the overview mode (four finger swipe up) and looking for flashing. This same problem can also occur on Linux and Windows but I don’t know how much power it saps there.
The first one lets the window list work, which Apple in its infinite wisdom has decided you as a non-Apple engineer don't need. The middle two are things you can set from inside the app but show useful things in the dock icon. And the last lets you identify which app a window belongs to (press ⌃⌥ while hovering over it), which is very useful when you have a random thing pop up and you don't know how to get rid of them.
An app that was going to make it on my list was Anesidora, which is a native macOS Pandora player which of all the many music streaming apps I've tested including Apple Music, is the only one which uses less than 10% CPU total including on WindowServer and coreaudiod. Unfortunately since I got it the author seems to have removed it from the app store. There's some other native Pandora apps that might have low resource usage but I haven't tested them. I switched to Pandora for my music streaming mainly because of Anesidora, and luckily I still have it downloaded. Anesidora still redraws when it's hidden, but only once every second, and it uses lower CPU itself and in coreaudiod than other players.
You might be able to find it out without installing Quartz Debug by using the system's DTrace probes, most of Apple's stuff already comes pre-instrumented.
Haven't tested or validated that it can be done though, just an idea...
The issue with Discord is if the message compose box is focused the cursor keeps flashing and redrawing a big tile of the screen even in the background, manually defocusing the message box fixes this. This is also something Discord could easily fix I think.
…if they knew about or cared, which I suspect they certainly didn't until now. Based on the number of things on my screen that force 60 FPS drawing, there's many developers who never notice :(
If you use multiple monitors, and you're frustrated with the cmd-tab app switcher only appearing on the last monitor you touched the dock, this will make it show up on all monitors.
defaults write com.apple.Dock appswitcher-all-displays -bool true
killall Dock
> cmd+shift+4 pops up a crosshair to take a screenshot of a region.
If you hit space at after invoking the crosshairs then you can take full window screenshots. This mode is nice for marketing material as it also captures the drop shadow and rounded corners rendered properly as a transparent png.
I've actually reversed these mappings since I rarely need to save a file (pretty much only if I want to annotate the screenshot). And Alfred's clipboard history is an awesome companion.
And hold ⌘ while doing that to select a "sub-window" such as an alert. Do note that doing this while in Dark mode will capture the blended color from your desktop picture, so it's not quite optimal for sticking on top of a macOS desktop template, but it's nice for making quick mockups.
Hold down Option while clicking the window to exclude the drop shadow from the screenshot.
As a vastly more general rule, hold down Option while clicking anything on a Mac to get the alternate/advanced form of the click action (e.g., try Option-clicking the various status icons on the right end of the menu bar).
I’ve been a long time user of Dash. There is a Linux alternative called Zeal for those that use multiple platforms.
I use Alfred quite a bit as well, though not as an alternative to Spotlight. I use it for automations via workflows instead. Turning on or off VPNs, sending files, converting date times, reading 2FA codes off my Yubikey, etc. I haven’t found a great Linux alternative for this. Ideally I’d have something that lasts me reuse my workflows that I’ve written.
Not mentioned in the article is Better Touch Tool[1]. I’ve had this since the original Intel MBP and it’s been incredible for making the fancy trackpads and touch bars actually useful. I’ve got a Pomodoro timer, Dark Mode toggle, Do Not Disturb toggle (also automated by ControlPlane), and lots of simpler app shortcuts.
I responded to someone else about ControlPlane a bit further down, but I have it automate things like DND when I start a call from my Mac.
Having emacs commands by default on native apps is a really nice detail. It's nearly impossible to do on Windows since there's already a bunch of shortcuts using control. On Linux it's definitely doable but you have to install a keyboard shortcuts app, get an emacs profile, etc.
If only reddit didn't use C-b to insert bold text, it'd make navigating in text boxes a lot easier.
If firefox had a setting, maybe per-site, to prevent text boxes from "helpful" editing key overrides it would be wonderful.
I have to use a web application that uses CKEditor for text boxes.
And just like you - the most annoying thing in the world - j I get: control-b is bold instead of back one character (one of my most commonly used keystrokes)
The other annoying one is control-k pops up a link dialog.
I tried to figure out how to override or disable it, but never got very far.
On gnome, if you open Gnome Tweak Tool there's a keyboard theme setting, select "Emacs" and all GTK applications will use Emacs keyboard shortcuts. (Including M-b M-f, which is a differnt combo on macOS).
It's propbably a dconf setting but I haven't checked which one. It tends to avoid running into issues on <input type="text" /> boxes in Firefox. But not more advanced things like Google Docs or embedded text editors. (eg Rust playground)
Author says Alfred is marginally better than Spotlight but I use it for so many different things. Doing quick math is a very common function for me. My favorite hidden trick is cmd+L which displays the typed text in HUGE fonts, so someone across the room can read it.
My most used Alfred things beyond launching apps/files:
* Clipboard history (screenshots on clipboard in the history is extra useful)
* Snippets using the date placeholders {datetime:short} for various file naming and email workflows
* Snippet shortcuts for things I always forget like the shortcut for → and ™ or my zoom meeting link that I paste into meeting invites
* Launching simple shell scripts by keyword
* Workflow for opening Jira tickets in my browser quickly
* Search notes workflow for quick access to everything in the Notes app
* Soulver workflow for using the Soulver engine in Alfred for doing quick calculations
I was a Quicksilver user that never quite got into Spotlight. I'm betting these days some of these workflows can be accomplished with Spotlight and other apps but Alfred has worked very nicely for me.
My man! I don't have much to add, your post mostly echoes what I do.
>* Clipboard history (screenshots on clipboard in the history is extra useful)
Indeed! As I mentioned elsewhere I've reversed the keyboard mappings for screenshots so that Shift+Cmd+4 copies to clipboard and Shift+Ctrl+Cmd+4 creates a file. Then I manage the images through the clipboard.
>* Snippets using the date placeholders {datetime:short} for various file naming and email workflows
>* Snippet shortcuts for things I always forget like the shortcut for → and ™ or my zoom meeting link that I paste into meeting invites
Yes, snippets are invaluable! I have tons of different ones, everything from various API keys, adding user accounts with SSH pubkey on Linux (while checking that password auth is off), outputting an ASCII guitar fretboard, setting up servers with nginx/php/mysql from scratch etc... Haven't actually looked into placeholders though, looks potentially useful although I can't think of a particular use case off the bat.
And everything synced through Dropbox of course.
>* Launching simple shell scripts by keyword
Yes! For example I often run "slack active" and "slack away".
>* Workflow for opening Jira tickets in my browser quickly
I do this as well! "<board> <ticketnumber>" opens them up directly in the browser that I use for work, i.e. "ticket 123" opens /browse/TICKET-123. Super convenient.
And for amusement I've created a couple of workflows to play different sounds, for dramatic and/or comedic effect.
And another workflow creates a new subdomain for a specific domain in Cloudflare.
Alfred is one of the main things that keep me from switching back to Linux.
Good list, and this reminded me to push an edit to add my favorite symbol shortcut which is option+2 for ™. I use Alfred for things like "¯\_(ツ)_/¯" though. I also didn't know about the Soulver workflow, that might be enough to get me to buy Soulver.
Hopefully you don’t need Soulver open? Numi app workflow requires Numi to be fully open. I don’t know if Numi or Soulver are better otherwise. I have Numi via Setapp
A few tips for Spotlight that made me stop using apps like Quicksilver and Alfred:
1. Typing something and pressing CMD+B will open a browser and do a Google search for that
2. Typing math works now
3. You can change your Spotlight preferences to not include files you don't wanna search on, essentially always showing apps (if you just want it do be an app launcher)
Alfred does a lot more than this, but for me these were the key automation features I needed to stop using it.
Spotlight’s math support is very rudimentary. I think I even found a bug in it recently trying to use “1e9” scientific notation.
I’ve found Google has the best calculator feature, which supports complex unit-aware inputs like “6 gigabytes / (7.1 mb/sec)”. Even Wolfram Alpha seems to get confused with some simple inputs.
I reach for my physical calculator that is always with me. Seems weird as it's less convenient that using spotlight in the moment and larger than my iphone 11. Just never got out of the habit.
Is there a way to make the math layout in spotlight not take up so much space? When I am doing math it's typically reading numbers off the screen which are almost always covered by the dialog.
Yeah it bothers me too sometimes. You can use the mouse to drag it to a new location and it'll remember it. It will also snap to alignment points so it's easy to revert the location again.
Go to Accessibility settings and enable the zoom in shortcut. It lets you zoom in where the cursor is with a key press. Useful for checking small graphical details, reading tiny text and pointing something out to people. I use it all the time.
Yah it's perpetually on my todo list to learn to use Alfred for more things, like using its built in file browsing more. It would be nice to have Alfred workflows set up for more things like switching Chrome tabs and Discord channels.
I do use it a ton for launching apps and quick calculations, but Spotlight can do that with a bit less polish.
Surprised no one has mentioned QuickLook. In Finder, select a file (document, image, movie, etc.) and tap the space bar to bring up QuickLook. You’ll see a full preview of that document instantly. The preview window follows your focus, so you can use mouse arrow keys to navigate between files, etc and see an updated preview. Also works in Open dialogs, Mail attachments and elsewhere.
I briefly mention the spacebar shortcut in the article but it does indeed deserve more explanation. One of my favorite macOS file browsing features for sure, miss it all the time on Linux, especially the part where it follows your focus when you use the arrow keys. Great for looking through large folders of poorly-named PDFs for the right thing.
Spotlight is great but by default it will only do extensions it knows about, and will ignore text files like .css and most source code files.
There is a plugin called qlstephen that allows you to spotlight all text files (but it's a bit of a pain to install on Catalina due to permissions issues):
https://github.com/whomwah/qlstephen
I'll add one of my favorite ones: you can do Option-Command-C to copy the path of a file to the clipboard (if you need to use it somewhere that doesn't support dragging to paste a path).
What must I do to enable this? For me I just hear the error sound and nothing gets copied.
I am on Mojave; pressing option when opening context menu with right click on a file does show the "Copy as Pathname" option. Maybe the shortcut was introduced later.
System Preferences -> Desktop & Screen Saver -> Screen Saver -> Hot Corners -> Bottom Left Corner (or whichever you prefer) -> Put Display To Sleep (or Lock Screen if you prefer).
Adding caveat : Keep the dock size small to avoid interfering with Hot Corners and if you use VM in seamless mode try not to place any action(VM guest panel) near the macOS Hot Corners.
I used to use Moom and then Divvy, but switched over to a lighter weight and OSS alternative: Rectangle [0], which is a successor to (now unmaintained) Spectacle
Easier to automate setup through Homebrew, no need to store/activate the license or anything, doesn't have the "draw the window position" popup thingy, but I don't really care about that and gotten used to the (very simple) default shortcuts.
I highly recommend it, give it a try if you're interested!
+1 for ControlPlane. I’ve got a lot of automations set up for things like muting my speakers when I get to the office (remember those days?), when I use an app that listens to my microphone, automatically turning on a Hue light Red and toggling Do not Disturb so I don’t get interrupted is my latest and favorite though.
I'll add another one, if you have a file dialog open, hit Command+Shift+G to open a dialog that let's you type in the path. Useful if you are going back and forth between terminal and some GUI app and some path is in your clipboard.
Does anyone know of a way to enable keyboard control of menus on Touch Bar MacBooks?
There’s the keyboard preference which I have enabled, but it doesn’t behave the same as my non Touch Bar MacBook. I can keyboard-interact with confirmation dialogs on my 2012 MacBook to hit Ok or Cancel. On my 2019, I must use the trackpad or the Touch Bar. I’ve been googling for a fix or even a bug report but it’s a surprisingly hard thing to google for.
That’s what I have enabled. That setting behaves differently between Touch Bar and non Touch Bar macs. On non Touch Bar Macs, you can hit space or enter to interact with a pop up dialog. On Touch Bar Macs, the tab key skips over certain UI elements as if they don’t exist. “Conveniently”, those elements are on the Touch Bar.
I'm not sure if this solves your problem, because I'm still on a non-TB Mac, but you can use CMD + [first letter] to select dialog options. For example, if you're closing an app and are asked if you want to save an open file, the dialog might have "Yes" preselected, but also let you choose "Don't save". If you hit CMD + D it will choose the "Don't save" option. Same thing for something that might say "All files" you can hit CMD + A to select it.
I just took some time to try this and it didn’t work. I think the Touch Bar acts as another device and UI prompts get forwarded to them. Thank you for the suggestion though.
You can drag the Spotlight search bar anywhere on your screen. But if you want to restore it to the default position long tap/click on the Spotlight icon in the menu bar and it will snap back.
For toggling visibility of hidden files in Finder, changing defaults hasn't been necessary since Sierra (10.12), which added the [Cmd + Shift + .] shortcut. It works in native open/save dialogs too.
I think that one didn't work to enable darkmode.
I use the google IME so I can use the same dictionaries as i do with linux mozc. You can have a dictionary with the reading and english meaning of words, that pops up when selecting them, also lots of ascii emojis. I have a memo about it here.
https://become.radioac.dev/posts/terminal-tools/#language
(*^_^)ノどもっ
* For Emacs users with their config in version control, I would recommend downloading the latest Emacs.app version 27.1 instead of using Aquamacs, because Aquamacs has a bunch of customizations that do not play so well with original Emacs.
* If you have Acrobat or Acrobat Professional installed, add an Adobe PDF printer from System Preferences > Printers and scanners, so you can make better PDF files by printing from any application.
* You can save anything as PDF by choosing "Save as PDF" from the dropdown on the lower left corner on any print dialog.
* Open CUPS web UI by opening the following URL in a web browser:
Weird. No DefaultFolderX. That is an awesome tool.
Also no Little Snitch.
I have had problems with iStat Menu. I really want it to work, but it always introduces random crashes into my system. Every couple of years, I try it again, but it hasn’t stabilized yet.
I’ll try it again. It’s a beautiful bit of code, and I love what it does.
It’s just that, whenever I would have it installed, my system would have fairly frequent, random, “gray screen of death” crashes, with worthless stack traces.
The only way I figured it was iStat Menus, was I uninstalled it, and it stopped.
I have a macbook which I partitioned and installed windows on. the macbook is in a drawer in a stand up desk. The desk has a terrible ergonomic design. So I ended up using the pullout drawer as a shelf form my external keyboard, which is rested on a board.
So my macbook is closed, inside a drawer, covered by a board, and connected to external monitor and keyboard.
1. How can I boot into windows from the mac desktop. Current procedure is to take off the board, open up the laptop, wait for startup, press a macbook key waiting for the os screen to start from which I can select windows icon. For some reason my external keyboard doesn't work during boot time. Its very annoying. Is there an app that will boot me into windows, from a mac desktop?
2. I have to shutdown the laptop at night because the fans are driving me crazy. But that means I have to pullout the macbook out of the drawer in the mornings, and open up the laptop to start it with a power button. Any apps that will put the macbook into sleep mode, that turn off the fans and external drives, quickly.
3. I miss cut and past for files the way it was on windows.
This effectively moves them. Now I have to hold a key down and drag on a mac. Requires much more coordination, in selecting the destination folder. Is there anything equivalent to cut and paste on mac?
3. You can copy and paste files using the keyboard on macOS too, it’s just not the default. Copy a file first (Cmd+C), then hold one of the modifiers keys (I forget which and can’t check cuz on phone, but either option or shift) and press Cmd+V to move instead of copy.
2. Is the “Sleep” feature built into the OS not the thing you’re looking for? Fans don’t run during sleep. I don’t see why you need an “app”.
1. I don’t have anything useful to say on this one, sorry.
2. How old and which model is your MacBook? I remember a completely idiotic hack around 2013 that fixed some hardware problem by software and causing the fans to spin at full speed constantly. There was some way to fix it by setting some preference from the command line IIRC.
There are several things that might cause fans spinning at high speed:
- Some application is using a lot of CPUs and other resources
- Spotlight is indexing the hard drive, and is misbehaving (see for mdworker processes)
- The ventilation holes are physically blocked or there is a lots of dust
- The System Management Controller is misbehaving (especially on some 2013 and 2018 and later MacBooks which have T2 security chip). Resetting the SMC often helps with strange hardware problems.
On the other hand, Google Chrome is a real resource hog these days, and sometimes the usage is not shown in CPU or memory columns in top or htop. You might find that Firefox or Opera are more leight weight.
Check out if there is a process causing a lot of CPU usage, and google that together with fans. Macosxhints.com or iFixit.com might have the solution to fix it.
Actually, just pressing alt or option on an external keyboard should go to the boot partition selector. If you are using a wireless keyboard, do not press the key until you hear the startup chime, because bluetooth is not loaded until then:
System Preferences -> Startup Disk on the MacOS side should let you reboot into Windows. On Windows, you need to install the Windows Bootcamp Utility. It'll add an icon in the taskbar that you can right click to reboot back into MacOS.
Side comment: anyone else feel like an app that only is in the MAS is lower quality for some reason? Apps in that quality seem to have a high ratio of junkware. This one looks good though, just giving my reaction to even seeing a MAS link. It's interesting how IMO macOS really doesn't need an app store. It's different.
I love how you added Option-2 for ™ as a tip, that's the only shortcut for one of those symbols I've committed to memory before for using in a jokey context.
I believe "tm" automatically corrects to "™" by default–it's one of the ones that are set up automatically to show you how to make you own autocompletions.
Option plus many other keys also gives you various language options. For example the umlaut can be added to a letter with Option+u. Option+e adds a diacritic mark.
I recommend macports package management system, similar in function to BSD ports collection. Superior to Homebrew, the johnny-come-lately PMS with all the penguinista-style hype that seems to lean towards binary installs, unlike roll your own from all source in macports. Homebrew also does not honor the default privileges of /usr/local, which is an annoying security flaw.
You can transparently run homebrew as a dedicated user, prevent it from accessing your home directory, and only give /usr/local permissions to that user.
Agreed 100%. No idea why homebrew is so dominant while doing the wrong thing by default. Binaries are nice but not worth the trouble Homebrew gives compared to sane, rational MacPorts.
While Homebrew defaults to binary, it can build from source, though it tends to leave behind a bloody mess when it does.
MacPorts has excellent housekeeping, which is controlled through port command arguments. One can choose to leave everything from the entire build, or have everything cleaned up as it builds, or clean it up after the build. Showing and eliminating leaves is also pretty simple.
Uninstalling MacPorts with these 3 commands leaves absolutely nothing behind:
>$ sudo port -dfp uninstall --follow-dependencies installed
>$ sudo port -dfp uninstall all
>$ sudo rm -rf /opt/local /Library/Tcl/macports*
Good luck completely uninstalling Homebrew without having to look everywhere to make sure it is all gone. It requires downloading and trusting the Homebrew uninstall script.
When I first got a Mac about 4 years ago moving from Linux, the first thing I did was compare homebrew and macports.
homebrew was such a cluster-fuck in how it screwed around in /usr/local and its requirements for root etc, especially with Apple's move to basically own most of /usr under SPI.
Macports follows the BSD ports model and since Apple is a BSD based unix underneath, it makes sense. I haven't found anything I've needed that hasn't been ported.
It installs by default in /opt, which is where it should. When needed it will create the appropriate startup configurations for services as part of launchd and in the correct locations.
Or Joyent's "pkgsrc" system, which is also mostly ports-like, works on just about every posixy OS these days (including Linux, NetBSD, Cugwin and more).
Capable of installing both source and binaries. Works well in my experience.
(No experience with MacPorts so I can't compare; but coming from Linux/apt I didn't feel much was missing, just a little different)
While it does default to binaries, it accepts a build-from-source option
I haven't been involved with macports recently enough to compare, but one advantage of Homebrew's popularity is the depth of package specifications and how quickly they're updated
There are better tools than a hex editor or system monitor (why do you want to constantly be bothered how well your hardware is performing?).
Unclutter - This gives you a nice non intrusive "memo zone" as well as manage your clipboard, so that copying password won't lose your user name into limbo.
BetterTouchTools - Who'll live without this one? Just give "three fingers swipe down" mapped to cmd-w and your life will be quite that much better. No more click at the upper corner tiny button to close a window which is an insanely dumb usability. Add several more to your likings and your life is even rosier.
And use a password manager, so that a new login made from your phone will be on your mac without effort and nothing gets lost on clean install even if you forget to export them if they're saved in the cloud, not to mention you can have randomized password for every site, but make sure to secure the master password with 2fa.
A free alternative to BTT trackpad gestures is jitouch2 (https://www.jitouch.com). It's not as versatile and no longer maintained, but works well for most use cases even in the latest version of MacOS.
Thanks for the recommendation. I paid for BTT, and find it very unstable. More often than not the custom snap windows function just doesn't work. That's the only reason I bought it.
I used to be able to restart BTT and snapping would work again, but that is no longer effective in the latest version. I guess the fact that it even has a "restart" option in its drop-down menu should have been a hint.
It's a list of macOS-only (with one exception) apps that I use with a bias towards lesser-known things. I use 1Password but it's not fully macOS-only and is widely known. I also use BetterTouchTool and it's nice, but the stuff I use all the time is mostly in Hammerspoon. Having a power meter is how I find out when stuff is tanking my battery life, and like I said I use the weather widget a lot. I use Hex Fiend more than lots of other apps since I like implementing binary formats and doing CTF reverse-engineering contests.
> BetterTouchTools - Who'll live without this one? Just give "three fingers swipe down" mapped to cmd-w and your life will be quite that much better. No more click at the upper corner tiny button to close a window which is an insanely dumb usability.
I prefer using the keyboard as much as I can, and I use Cmd+W to close windows (yes, sometimes one may mistakenly hit Cmd+Q and close the entire application, but muscle memory can help).
IMO, applications that don't prompt for confirmation on potentially destructive Quit are broken.
By this definition, all Mac Web browsers are broken, but you can fix the accidental Command-Q problem on an app-by-app basis by remapping Quit to something harder to accidentally type like Command-Shift-Q using the Keyboard pane in System Preferences.
Personally, for applications like my primary browser where intentionally quitting is overwhelmingly the exception rather than the rule, I remap Quit to Control-Command-Option-Shift-Q and rely on the fact that pressing Q while any application is selected in the Command-Tab switcher triggers its Quit command.
I'm having several finder windows with tabs open as I work on certain projects. From time to time something crashes and closes all windows. Is there a way to 'store' the finder's open windows(including tabs!) and then restoring them again? I have not found anything that works on Catalina. (Stay doesn't do this)
Finder is essential yet it's the biggest pain point I have with macOS.
- You've already mentioned a big one
- Related would be remembering which Finder window goes to which "desktop" or screen
- Another is no (permanent) custom width per folder or auto-sizing column view. Fixed width is either wasting space or not showing nearly enough. I always end up manually resizing the last/active column.
- They recently added shared iCloud folders as well. Guess what, you can't see any filenames in column view because they repeat "Added by {Owner}" for every single file/folder which takes way too much space. I guess an icon/avatar was too much. Heck, even that is questionable since we have a sidebar with all the metadata.
I don't know the technical aspect of it but they seem to have also locked down macOS which resulted in TotalFinder calling it quits. Not sure how viable it is for alternatives nowadays. I have no need for split/ftp Finder alternatives, just need a polished column view.
> You can select multiple images in Finder and drag them onto the Preview dock icon to open them in one window with a Sidebar where you can quickly flip between them with arrow keys.
Instead of wasting time dragging and dropping, just press Cmd+Down Arrow to open the files (usually images are associated with Preview.app as the default application). Cmd+Down Arrow in the Finder opens (navigates one level down) whatever is selected: folder or single file or multiple files. Cmd+Up Arrow goes one level up from the current folder.
> Path Finder: A fancier version of Finder with multiple panes and various other advanced features.
Path Finder has a few nice features, but its updates and update schedules haven't been great. A cheaper alternative that also supports network transfers is Forklift.
> Instead of wasting time dragging and dropping, just press Cmd+Down Arrow to open the files
I believe this does something different: it opens each photo in its own Preview window.
It’s basically the difference between passing multiple arguments to one “Open” invocation, and passing one argument apiece to multiple “Open” invocations.
If the images are in a folder, though, you can “Open With” the folder with Preview.
> Path Finder has a few nice features, but its updates and update schedules haven't been great. A cheaper alternative that also supports network transfers is Forklift.
It is mentioned in the article immediately after Path Finder. The author says they prefer Path Finder for its good column view, which they find no alternative offers.
>iTerm2: An alternative Terminal with just so many features. I particularly like the ability to split windows into panes, which Apple’s Terminal does not have.
Terminal actually has it, View -> Split Pane or Command-D - and has had it for ages (as well as tabs).
Terminal's split panes are a totally different thing than iTerm2's and IMO not very useful. Terminal can have multiple panes that all show different places in the same scrollback buffer, not different terminals. iTerm2 can have many different terminals within one tab, which I use for example to have a tab for a project with one pane ssh'd into a VM/server and another pane on my local machine for file munging and syncing.
The tmux integration is amazing too! When I ssh into a server, whatever window/pane setup I last had (tab colors, names, and all), are restored.
On one server I run a few 'production' apps, but I also have a tab for 'random shit' and a tab for 'nginx config'. the production tabs are bright red, and are usuall split pane with the left showing logs, and the right giving me a terminal with app-specific commands (and in the current app home dir).
But then on another server I have two separate windows, and each window deals with one of the two 'concerns' on that server.
It's a massive help in managing all my panes/sessions.
One useful shortcut I've discovered recently is cmd-[ and cmd-] to go forward and back through link history. Works in the browser as well as pdf viewers. With regards to pdf viewers specifically, this has greatly improved my paper reading experience.
I’ve been searching for a long time a tool that would resize all the windows open on a given space to fill up the entire screen.
I open lots of things when working and that would be more useful than doing the exposé and switching back and forth do declutter.
It seems to me that this feature is available on Windows and has been for a long time.
I tried almost everything that I could google and I even bought apps that I don’t use anymore because I though that the level of customization would enable it.
Is there someone that knows a tool or a trick to allow that ?
Hammerspoon can do this quite easily, just grab all the windows using hs.window.filter.defaultCurrentSpace:getWindows() and set each's frame to it's screen:frame().
Thank you for the tip, I'll to code the algorithm to do it myself. That's great !
On an other note: a tip on iOS and MacOS, when you make a voice recording then you can edit it and activate a feature with the top left wand icon which is going to clear up the sound. When it's a voice recording it's pretty amazing how well it works, in particular to remove the echo.
I guess the topic is buried now ... but I'll update it for posterity.
What I want to do actually IS the mission control mode where all the windows are resized to fill up the screen.
To close a window while in exposé mode, the easy solution is effectively to use BTT, creating a new gesture for example "3 fingers click" with the ctrl modifier. Then selecting the action "Close Window Below Cursor (Works in Mission Control)".
And this effectively close my window.
An other tip here, still in mission control while the cursor is on a window, pressing the space bar displays it full screen.
One more thing:
While doing COMMAND + TAB to show the open apps, pressing the bottom arrow key show all the open windows for this app, regardless of the space they are in. Really useful.
Cmd + Shift + 5 gives you a crop tool and you can choose to create a screenshot or start a video. Little options menu lets you pick between audio inputs and outputs for the video too.
What I miss the most is a workable "focus follows mouse" solution.
Circa Snow Leopard, I used "mondomouse" but that is abandonware and does not work.
I tried to use "dwellclick" but it's not a good solution.
I think there are now some new accessibility settings that actual enable a proper focus follows mouse in Mojave and later, but I don't have anything later than El Cap installed and am unable to test that ...
I've looked into this and the focus-follows-mouse part isn't actually all that difficult; there is SPI to do this. The difficulty is that picking what things should get focus is hard, because there are things in macOS that actually care about what is focused. For example, as I was running my test, from Xcode of course, I moved my cursor over the sidebar, which changed the focused item as I moved my mouse…of course, this had the effect of opening a different file. If anyone has any ideas on how do deal with this, I'd be happy to hear it!
- before releasing the command key and in between tabbing you can type H to hide/show and Q to quit the currently highlighted app. Note that quitting is often slow - can take a while for app’s icon to disappear.
- with shift to reverse direction
- you can start a drag, then use Cmd-tab to switch to your destination app, and then drop
In Finder and also in "Open File" dialogs, Command-Shift-G will allow you to type a path directly. You can use this to open the dialog to hidden paths, for example: "~/Library" and enter will open the dialog to that folder, allowing you to browse the folder normally.
The tip I want answered... how do I make the icons on the file open dialog large enough that they actually become useful? I can enlarge them in the finder but not in an open file dialog.
Is there a setting to tell Mac OS to follow the mouse for focus, and optionally activate (bring to foreground) the window under the cursor (after say, a 300ms delay) ?
> cmd+backtick is like cmd+tab but between windows of the same app.
Well, I wish that were completely true, because cmd+backtick only cycles through the windows of the application, while cmd+tab lets you select the application you want.
From Ubuntu (or maybe rather Ubuntu's default desktop environment?) I am used to cmd+backtick allowing me to select the window - I did find an application that does enable this behavior [1] but I wonder what else is out there. I used to use Hyperswitch but it doesn't seem to work on Catalina
> > cmd+backtick is like cmd+tab but between windows of the same app.
> Well, I wish that were completely true, because cmd+backtick only cycles through the windows of the application, while cmd+tab lets you select the application you want.
I'm having trouble distinguishing between these two descriptions of the behaviour. What is different between what you say and what the author says?
Contexts hasn't had any updates in a while, but is still far and away better than anything else I've tried. There haven't been any regressions as MacOS has updated since the last version.
It's one of those "How did I manage before without this?" apps.
One of my favorite features is quick switching by holding down Caps and typing some of the Application / Window name. When releasing Esc, the selected window will be focused. So if you know the window you want to switch to, it's extremely fast.
I just checked it out, thanks for the link. This shows promise!
But I don't really need the images of the windows, a list is much more efficient than a 5x3 grid of large images. And the quick switch esc+key is sorely missed.
I'll keep an eye on it though, thanks again for the rec.
I was just thinking how the app icon is more than enough to identify each window and thumnails don't make sense to me. You can disable thumbnails in the configuration.
Wow Contexts looks incredibly well designed. I'm not sure I'll actually use it over my current Hammerspoon setup, but they combine all my favorite quick selection techniques like smart ordering, fuzzy matching, providing two-character hints which will definitely select a certain item, persisting things to keep hints consistent, shortcuts where you press a modifier type and then release to activate ...
What I really want now is for Alfred to copy all of Contexts search features so that I can use them for generic search matching in Alfred workflows.
Yes, but I don’t think you’d want that, as the navigation after that wouldn’t be the same (you don’t press Down again to move between windows and then let go of Ctrl to select; rather, you let go of Ctrl, move between windows with the arrow keys, then press Enter to select.) Better to keep the two muscle-memories separate.
I'm not sure about speakers becoming microphones, but you can quickly select input and output devices by option+clicking the volume icon in the menu bar.
My tips:
1. Forget Finder, it is just bad for any power user scenario, and IMO worst part of Mac OS. Use Forklift or other similar app for all GUI file management operations.
2. Never drag and drop (this applies to any OS). Early release can cause all kinds of issues.
3. Make sure that you have fast access to Activity Monitor, since some GUI applications do not show any reasonable progress indicators when they start long lasting compilation/export operations.
I've recently gone back to using Finder after a very brief dalliance with PathFinder [terrible processor and memory hog] and a fairly longer dalliance with ForkLift3.
Although I like a lot about ForkLift3, I had to ditch it eventually because its inability to set different view settings for different windows drove me insane.
Finder does allow this so, for example, I can have my ~/Downloads and ~/Pictures/Screengrabs folders set to always display in list view sorted by most recent [so the latest download or screengrab ia always at the top] whilst displaying other folders, such as /Applications in column view and alphabetically because I look for things in there by name.
My favourite Finder tip:
when saving a file and you want to base its name on an existing one, eg: myimage01.jpg, myimage02.jpg, myimage03.jpg... etc. Click on one of the existing files in the save dialogue and the untitled one you're about to save will adopt that name. Then you just change the last digit [or whatever] and save.
Favourite not particularly OSX specific tip: When including a date in your filenames, put it at the start in YYYY-MM-DD somefilename format. that way, sorting the column of files by name, also correctly sorts them by date.
Favourite not yet mentioned OSX utility: A Better Finder Rename [0] --bulk file renaming with more options and combinations than you can shake a stick at.
Favourite not yet mentioned OSX app: TextMate [1] --what Sublime Text hopes to be when it grows up!
1. This. The only thing I miss from Windows is Explorer. I just can't understand how macOS dev feels Finder would work like that for 20 years without much change. It resets the config and the window size for a folder at every random occasion, creates .DS_Store garbage all over, you cannot even cut files and just feels uneasy. I even enable "Quit Finder" menu and get it out of my app cycle list but it randomly resurrects itself...
> It resets the config and the window size for a folder at every random occasion, creates .DS_Store garbage all over
I suspect you might be deleting the .DS_Store files, which would have a side effect of resetting your configuration.
Also, Finder doesn't do cut, you hold down ⌥ when pasting to move it rather than make a copy. And since it draws your desktop icons, it's supposed to stay running–that's why "Quit Finder" menu is hidden by default.
> I just can't understand how macOS dev feels Finder would work like that for 20 years without much change
I do a lot of stuff on the commandline, I don't really need an advanced graphical file manager. If necessary, I open an additional Finder window for more complex manoeuvres.
I wonder if there are people who, like me, come from Desktop Linux to macOS and kept working like that.
Yes, ever since Windows Vista thumbnails are in a central per-user directory. Old thumbnails are removed automatically. Definitely an improvement over previous behavior, at this point I would say it just needs easier configurability.
> 1. Forget Finder, it is just bad for any power user scenario, and IMO worst part of Mac OS. Use Forklift or other similar app for all GUI file management operations.
The author mentions this among several other Finder alternatives, of which they prefer Path Finder.
I almost locked up my entire computer this week, presumably because of this... here's the story for that:
I had setup unbound listening on 127.0.0.1:53 as the only DNS resolver for all network interfaces, so that I hijack several responses that I might want to (e.g. adnet sinkholes) and forward the rest to Google/Cloudflare over TLS.
When I rebooted the Mac, the entire computer was so fucked that I panicked cause I thought my SSD was failing. Turns out unbound failed to start so all DNS was down. I suspect it to be the "phoning home" because when I opened the Terminal, running `ps aux | grep unbound` took like 5 seconds to return anything (as did everything else that tried to run), and that behavior has been reported by other users as Gatekeeper's Phone Home checks being at fault.
So that's why I was wondering if anyone has found out how to keep macOS from doing this (preferably without disabling all of SIP), cause that'd be one hell of a tip...