One thing I always felt was lackluster regarding Apple was their lack of customization. Apple has great UI principles, though, so at some point, I stopped caring very much. It looks great out-of-the-box, so why bother trying to change it?
Then I discovered r/unixporn. If you're not familiar, it's a popular subreddit where people can share their *NIX customizations. After looking through the top posts for what felt like hours, I decided to make my machine my machine.
A screenshot of how everything looks together with the obligatory neofetch.
I Have No Idea What I'm Doing
Most of what I accomplished was from compiling various resources from the specs shared on each post and figuring out which ones would work best for me. I knew next to nothing about customizing my experience on MacOS, but I figured I'd give it a go.
Here's what I did.
TL;DR —
WM: Yabai
Hotkey Daemon: skhd
IDE: VSCode
terminal: Warp
widgets: Übersicht
bar: simple-bar
& that's pretty much it!
The things that I chose were chosen specifically because they had extensive documentation and support, and made the process easy.
Window Management
I wasn't sure what exactly I was looking for here. I tried Rectangle, which was really solid since it behaved similarly to Windows, but ultimately settled on yabai.
There was also a specific widget I wanted to use that required yabai (more about that below).
Here's my yabai config —
Hotkey Daemon
Since I use yabai for window management, using skhd feels like a must.
Here's my skhd config —
I didn't really feel like I needed to configure yabai + skhd too much, but after getting used to it in my workflow and updating it as needed, I have no idea how I could ever go back to not using it.
IDE
I use VSCode for my IDE. I've tinkered with Neovim, and Zed and I think either one would be a solid replacement for VSCode. Personally, I'm leaning more towards Neovim. The whole point of 'ricing' for me was to make my machine feel more like my machine and that's what Neovim offers. I also really like the idea of not using a mouse since getting used to skhd.
I don't have Neovim on this machine (yet), but here's Zed & VSCode side by side —
Light - Zed, Dark - VSCode.
As you can see, Zed is familiar. I like what Zed promises, so I definitely plan to use it here and there and continue to learn about it (Neovim too), but VSCode is my go-to for the foreseeable future.
I use VSCode with the Vitesse Black theme.
Terminal
I use Warp for my terminal. It's fast, and feels more intuitive to me than other terminals. It's also very customizable. There are a lot of solid options for terminals, but it really just comes down to personal preference and what you're actually using it for. I definitely recommend trying a few out, at least.
Warp comes with some default themes, but I went ahead and made my own. Nothing fancy but I tend to prefer slightly muted colors.
There's a few different customization options for Warp that you can read about here.
Übersicht
Übersicht provides widgets for your desktop. The only widget that I have configured, however, is simple-bar.
simple-bar is the tool I wanted that required the installation of yabai. It's a great little cosmetic addition and gives me a good idea of the happenings of my machine. It's also highly customizable, so you can really make it work for you.
Here's what it looks like -
A screenshot of just the simple-bar. If you're on mobile, I'm so sorry.
Conclusion
I don't think I did as much as I could have, but I really enjoy my experience on my Macbook now. It feels more like I'm using something that belongs to me rather than something that Apple has provided. I don't know that there's much else I would do, but if I find anything, I'll be sure to add updates to this post.
Igor Bedesqui & Nexxel heavily inspired this endeavor, and I highly recommend reading what they have to say about their processes as they're both miles ahead of me.
Let me know what you think! & as always, happy coding!