27 July 2021

macOS first impressions

I’ve joined a brand new company and was provided with a laptop. A MacBook Pro from 2017. Nice 13” machine without a touch bar. It means I have an escape button to switch keyboard layouts and CapsLock is free to be an Escape replacement.

Unfortunately, the keyboard layout is not as good as I’m used to. There is no TrackPoint and a huge space bar instead of several buttons like on a Japanese keyboard for Lenovo x220. I can deal with that. Stacking window management is something I can’t deal with. After years and years of tiling, it just hurts. Cuts deep every time I have to look for a window hiding somewhere under a pile of other windows.

MacOS is not that bad when you navigate it with a touchpad. Many useful gestures to change workspaces and applications. Since it looks live navigation seems to be OK, I’ve tried to fix the lack of tiling with Amethyst. Boom! Tiling all over the place! But complicated default modifiers have scared me off.

Turns out tiling is just a small part of my habits. I need to spawn new terminals and browser instances with ease.

This is the time for DOOM music UNIX way to kick in. There is a simple hotkey daemon skhd. It doesn’t know a thing about window management but is awesome at listening for hotkeys and calling external commands.

Then there is yabai a window manager that doesn’t know a thing about intercepting keystrokes. What is it good at? Managing windows! And listening for commands you can call straight from your terminal. Or from skhd.

Are these two working good together? Yeap, but… You need to provide the glue o.O

There is a good skhd config example in yabai installation under:

/usr/local/opt/yabai/share/yabai/examples/skhdrc

Unfortunately, it’s not ready for use, so it’s just a good reference. Good thing is - yabai’s wiki is awesome. Commands section provides enough examples to build yourself a powerful WM. Feel free to check out my dotfiles (mirror) for an example.

Is the fight over with the window manager kicking with all the beloved hotkeys. There are a lot of things figure out. Qutebrowser is a bit broken. I don’t have a replacement for rofi-pass. A lot of hotkeys should be disabled or reassigned by hand in macOS Preferences or on application basis.

Alacritty is a fine example of broken hotkeys. alt+. to call previous last argument isn’t working. It works in iTerm because hack to make alt metakey work are embedded. It’s fixable but definitely feels like one more unnecessary step to the comfort zone.

Nevertheless, it feels much more like home now. There is even a free bonus - rounded corners!

One last thing for this post. Brew. It’s pretty good. Not Nix or ArchLinux with AUR good. But pretty good. Package availability is better than what I remember with Ubuntu-based distros. macOS package management is not though. I had to enable a whole bunch of packages in Security Settings. Installations of yabai is a whole another topic.