title: Useful Mac OS programs tags: macos, computers date: 2022-03-11 00:00 --- 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](http://www.hammerspoon.org/) 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](https://git.groupoid.moe/dan/dotfiles/src/branch/master/hammerspoon/.hammerspoon/init.lua). - [Easy Move+Resize](https://github.com/dmarcotte/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](https://mos.caldis.me/). 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](https://bitbucket.org/mituharu/emacs-mac/src/master/), also available [via homebrew](https://github.com/railwaycat/homebrew-emacsmacport). 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](http://skim-app.sourceforge.net/) for PDF viewing. Works flawlessly with Emacs/SyncTeX. Backwards search with Shift-Command-click. Other useful utilities: - [Stats.app](https://github.com/exelban/stats) for monitoring resource usage, fans, temperature, etc. - [IINA](https://iina.io/). Basically a frontend to `mpv`. Great media player. - [iTerm2](https://iterm2.com/). 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.