The default macOS window management and desktop environment is great don't get me wrong. However, after using alternative window management solutions on Linux distros, I've craved a better solution. I've enjoyed ricing my Linux desktops for the past couple of years, and in doing so I've looked for similar tools I can use on macOS.
In this article I'll be walking you through how to get a setup resembling the photo above. The tools in use you see are:
- yabai (Window Management)
- skhd (Hotkeys for yabai, running commands, etc)
- iTerm2 (Terminal Emulator)
- pywal (Colorscheme Generator)
- Übersicht (JSX Widgets on the desktop)
- ncmpcpp and mopidy (Spotify music player on the command line)
- dmenu-mac (Alternative Spotlight launcher)
- gotop (htop alternative)
Getting Started
yabai
Yabai is a window manager that came from the creators older WM known as chunkwm. If you've ever used i3 or i3-gaps, it's extremely similar. Yabai works as a tiling window manager. There are a ton of customization options you can find on the GitHub Wiki.
To install follow the instructions found here. Make sure to disable SIP on your Mac!
If you'd like a similar setup to what I have, you can use the .yabairc
file found here
skhd
skhd (simple hotkey daemon) is a hotkey manager for macOS. It was created by the same person as yabai and works hand in hand with it. Using skhd you can create keybinds to edit your workspace, launch applications, change system values, and more.
To install follow the instructions found here. If you'd like a config that already includes some yabai bindings, you can use the .skhdrc
file found here
iTerm2
iTerm2 is a great macOS terminal emulator. It offers a massive amount of customization for your setup and even works with pywal. Pywal is a tool that will generate colorschemes from images and set your wallpaper w/ said image.
To install iTerm2, grab it here.
If you'd like to use my profile, simply open Profiles > Default > Colors: Under colorscheme select import > import this file and select it as your colorscheme.
To install pywal, run pip3 install pywal haishoku
. I find that the haishoku backend generates the most favorable colorschemes.
ncmpcpp/mopidy
ncmpcpp is a command line based music player. You can see it in use in the two terminals on the top of the image. It has the ability to control mpd which I use mopidy to host. Mopidy is an mpd alternative that offers an MPD-like protocol and plugins. I use mopidy because it allows me to add Spotify to my mpd server! This means I get all spotify functionality through mpd.
First install mopidy, mopidy-mpd, and mopidy-spotify. To do so you can follow the steps here. Next follow the steps here to install ncmpcpp. Ignore the steps for installing mpd
I haven't changed much to those configs from the default so feel free to experiment on your own!
gotop
Gotop is an awesome go based process manager. It shows you a lot of information about your system and what processes are using what. You can install it by first installing Go and then running go get -u github.com/cjbassi/gotop
Other Customizations
You can also use custom CSS for Firefox and theme that. I made a tool to make the process easier. Read more about Foxify-CLI here.
Top comments (8)
Loved the post. I moved to a mac from a linux box about 2 years ago and have been craving some i3 like action. Sadly I'm not sold on disabling SIP. I need to learn more about it before making a decision about security.
For sure! Lots of people are worried when it comes to disabling SIP. As long as you know what you download/run on your computer, it will be fine. With SIP disabled you still have to Control + Open Applications and other security measures like that :)
This is very nice. Another tiling window manager to try is Amethyst: Tiling window manager for macOS along the lines of xmonad. It's free and open-source. Great experience with iTerm and Amethyst. ianyh.com/amethyst/
Amethyst is awesome! I originally used that for a long time but recently switched to yabai as it gave me a bigger i3 vibe. Amethyst is def worth it to check out for easy configuration and keybinds though!
The gotop repo says :
NO LONGER MAINTAINED. A maintained fork of gotop exists at github.com/xxxserxxx/gotop
;)
Didn't know there was a new maintained fork! Thanks :)
I've been looking at the various link but does anyone know what typeface that is?
I think it looks like hack