Somewhat recently I got a MacBook Pro for work. I already use other Apple products and I figured that being a UNIX based system it is going to be very much useable for work related things. And, of course, I was curious about their new M1 soc. At the end, I was a bit dissapointed with the user experience and the desktop environment, coming from Linux/X11.
After some rudimentary research, I found the following programs to be very useful, and I highly recommend them for improving your interactions with the Mac OS. All of the programs below are free software and can be installed using Homebrew.
For GUI/DE:
- Hammerspoon for configuring keyboard shortcuts for maximazing windows, snapping them around, etc. It is a general-purpose "automation" tool, and it is scripted in Lua. You can really do a lot of things with it, and I barely scratch the surface with my very modest configuration file.
- Easy Move+Resize for moving and resizing windows like in Linux/X11 by using Ctrl-Shift-right mouse and Ctrl-Shift-left mouse and dragging the window. Super useful.
- BackgroundMusic for per-app sound control. I was really surprised this is not implemented by default in Mac OS.
- Mos. A tool to fix the broken mouse behavior on Mac OS. In Mac OS you can use two scrolling directions: "natural scrolling" (which is great for touch pads) and the standard scrolling (which is great for standard mices). Unfortunately, you can only select one direction which applies to all of your devices! So, you need to install Mos to implement the scrolling properly.
For LaTeX workflow:
- Mitsuharu Yamamoto's emacs-mac port, also available via homebrew. It beats the other Emacs ports for MacOS by integrating some Mac-specific niceties like smooth scrolling, correctly registering fullscreen, etc. You you install it from source, and you gcc and libgccjit, you can enable native compilation for elsip.
- Skim for PDF viewing. Works flawlessly with Emacs/SyncTeX. Backwards search with Shift-Command-click.
Other useful utilities:
- Stats.app for monitoring resource usage, fans, temperature, etc.
- IINA. Basically a frontend to
mpv
. Great media player. - iTerm2. Easy to use terminal emulator.
- For unknown reason, stock MacOS does not support per-app volume settings. Even as a frequent hater of the audio on Linux, I have to admit that this just puzzled me. You need to donwload a separate app, BackgroundMusic, and route all of your audio throught it.