Post 7 - Using MacOS
07 Aug 2025 15postsin30days · appleFor the past few years, I had to use a Macbook laptop at my workplace. The corporate policy to only use Apple computers never made much sense to me: The excuse to not support anything except Mac or Windows was the usual “Mobile Device Management requirement” strawman. There are very good MDM solutions for Linux as well now; these solutions, unlike the expensive ones for Mac and Windows, happen to be cross platform. I could not convince anyone of this; nor could I get this policy changed; at some point, I resigned myself to making do with this computer. This post contains a list of applications which I found useful and helped me turn a Macbook into the other Linux machines that I am used to using. If I ever have to use a Mac again, I hope this list will be useful to me then.
rxhanson/Rectangle: This was my pseudo window manager. This app brings the ability to bind keyboard
shortcuts to resizing and moving windows around. So, it is possible to bind three sets of keys to
the first, middle, and last third of the screen. I used Cmd-Shift-
with U, I, and O for this. So,
I could use Cmd-Shift-I
to snap a window to the middle third of the screen. There is also a way to
do this for the first, second, third, and the last 25% of the screen, and the left and right
halves. So, by binding the right keys, it is possible to almost get a Tiling window manager
experience. The only draw back is that if you have more than 4 windows open, then those windows will
be hidden below the ones that are open. I could not really do much about it. I never had more than 4
open: Terminal (Alacritty), Emacs, Slack, browser, were usually the only ones I had open.
Amphetamine: macOS keep-awake utility: A simple utility to keep the screen awake. The MDM was not configured to or failed to prevent this utility from running and keeping the screen awake. (I have heard that there are some requirements for 15 minute screen lock after inactivity, for some certifications. This might also just be an urban myth though, because most of the tools seem to operate with a “security through obscurity” approach, but keeping their workings and how they comply with various requirements a “secret.”
Little Snitch — Network Monitor and Application Firewall: This is another nifty utility that can be used to monitor what connections are being made by the various applications which are running. I used to use a Commercial license for the PHPStorm IDE (because it is impossible to write PHP without an IDE and the LSP for PHP has a long way to go), and the IDE would constantly ping the license server throughout the time that the application was open. There were also many other strange connections which I found using this utility. If I remember correctly, there is some sort of limitation on the free version of this utility, it shuts down after a few hours or something. So, I switched to objective-see/LuLu after some time.
Menu World Time: A small utility that shows the world time for a few different time zones in the menu bar. This one is really nice: If you have meetings or the like, this one can be used as a quick reference. It simply works.
MeetingBar: Another small menu bar utility which will show the current or upcoming calendar event in the MenuBar, and can be used to bind a keyboard shortcut to the action “Join my next meeting.” It supports most of the common video-calling platforms. I used it a bunch. One caveat is that it uses the locally synced Calendar (which is synced using CalDav). This is usually a few minutes behind the actual CalDav source server, even with push notifications enabled. So, if an event changes close to the time at which it was supposed to begin, then this does not work.
What Did Not Work
I also wanted to add a list of some of the utilities which did not work for me.
Karabiner-Elements: An apparently very powerful utility that can be used to remap keybindings freely on Mac OS. I never really figured out how to get it to work. I tried to use it multiple times, with multiple keyboards and setups. But it always seemed like the shortcuts I was setting up were for a single keyboard: that seemed very strange to me. The whole application felt hard to use to me, and I did not really spend the time to figure it out once I realized that Rectangle did a good enough job as it is.
yabai - A tiling window manager for macOS: A tiling window manager for Mac OS. This one has a long way to go. I tried to use it, and it kind of works, but the software needs to be improved a lot before it can really be a daily driver. Nevertheless, I did know at least one engineer who was using this as their daily driver window manager. They used to complain about crashes now and then; but I don’t remember much else. I would say stay away from it.
Dash - API Documentation Browser: I bought a license for Dash around the beginning of my career as a Backend Engineer, because it allowed me to quickly reference functions from the Go standard library. It was a very useful, and simple tool, which aggregated a bunch of documentation (PHP standard library was also included). However, the app changed significantly over time and continued to become heavier and heavier. They also changed their licensing and started putting pop-ups which asked you to buy the license for a more recent version of the application. Over time, I ended up never using it and just relying on the browser and search (or the Go LSP and Emacs integration to jump directly to the standard library and read the comments there).
I fully expect half of the links here to not work by the next time that I switch back to using a Mac OS and having to find alternatives for all the above use-cases again.