Leaving the Golden Cage
Table of Contents

tl;dr#
macOS’s default DE sucks, use Arch Linux and niri instead.
If you are here for the rice itself, skip the preface. But it’s kinda good IMO.
Preface#
I’ve been using Apple products both professionally and privately since I landed my first job as a Front-end Developer in 2014. What started with a company-owned iMac (G5, I think), soon dragged me into the infamous Ecosystem - over the last decade I owned 4 different MacBooks, 3 generations of iPhone, 3 iPads, 2 Apple Watches and one pair of AirPods Pro. All of that because of the Ecosystem. I am not that smart with money, apparently.
Truth be told, it feels amazing to have several devices inter-connected so deeply, they resemble a hivemind. It really is convenient to copy string on your phone and paste it on your laptop in, like, 3 seconds. Or to have the same text-expansions on both. Or to airdrop a file from one to another. Or to respond to text messages without having to pick up the phone. Or to insert text here. It really is.
And yet I am writing these words on a Framework Laptop 13 hosting Arch Linux.
Even though I was/am generally happy with macOS, I have some issues with it. Let me skip Apple’s broken privacy promises or making everything they can to ensure I will buy an overpriced RAM next time I need to upgrade a computer. I am also not going into issues with Apple Silicon. The virtualization software is limited, sure, but it will be working well someday.
But there is one thing that has been driving me nuts every freakin’ day. This thing is Aqua, macOS’s Window Manager/Desktop Environment. Aqua sucks is so many different ways that I don’t even know where to start. Here are some examples:
- Why the
maximizebutton behaves differently for different apps? - Why some windows remember the width and height while others don’t?
- Why the look’n feel customization is so limited? (no, changing the button colors is not customization)
- Why can’t I disable the Dock? (hiding the Dock is not disabling it)
- Why do I have to set a wallpaper for different Mission Control desktops separately? (ok, this one has been fixed last year, I give you that)
- Who ever thought the Stage Manager will be usable for the power users and why the hell are they still working at Apple?
- Where the F is the tiling window management?
I could list more, but I think you get the point. The main compound of the OS is broken by design. It forces me to think too much when I use it. It forces me to use mouse too much. It makes the experience so inconvenient that I would rather use an iPad instead of a laptop if I weren’t a Full Stack Developer trying to pivot into Penetration Testing someday (and iPadOS isn’t inherently better, tbh).
I tried to fix it but still felt like I am glueing with fluor and water most of the time.
Spectacle was nice until I needed something more than a way to put 2 windows side by side.
yabai really is a labour of love and to this day I am amazed with how one guy is able to circumvent whatever obstacles Apple puts in his way. But some applications I relied on didn’t work well with it. Plus, I’d need to disable the System Integrity Protection to reach its full potential. Believe me or not, but some companies aren’t willing to let you disable security measures just because you want to use a binary that injects code into several system processes (provided they’ll let you use your private equipment in the first place).
Aerospace doesn’t force you to disable SIP, but has similar issues to what I’ve been experiencing with yabai. I really hope it will become great someday, but I refuse to spend time trying to make it work the way I want in its current shape. I tried it for ~6 years with yabai, and now my watch has ended.
I’d rather move on to a Linux-based PC, rice it according to my wants and write a blog post with a way too long preface.
Framework Laptop 13#
You might not be aware of that, but there is a company out there that makes Linux-compatible laptops with decent displays and sensible keyboard layouts. You can buy them for a fraction of the MacBook’s price and upgrade them whenever you need. They are decently-made and if it weren’t for the logo on the lid and the OS I would have a hard time differentiating them from their overpriced counterparts.
After ~6 months of reluctant lurking, I bought the second-hand AMD Ryzen 5 7640U-based Framework Laptop 13 with 16 gigs of RAM that I’m going to upgrade to 32. I replaced the broken bezel and keyboard (right alt was missing) in less than 1 hour, installed Arch Linux and started to enjoy computing again.
Sure, you’d need to be a stubborn son of a B power-user to enjoy the process, but if you are still reading this, you probably are a power-user anyway.
The Rice#
Ricing is a process in which one customizes a computer operating system to improve the look or operation of the system. ~ Google Search Results for
ricingquery.
A quick note on myself: I am not a hardcore ricer. Before I got captivated by Apple, I’ve been using Linux-based distros (to this day I keep the Ubuntu CDs they were distributing for free), I knew how to deal with the command line since I was a teenager and I even might’ve obtained a diploma for tormenting the girl-friends about the Linux superiority in the middle school.
But I never went into tiling window managers back then and my ricing was limited to applying a GTK theme so the OS looks like macOS. I knew I’ll to go beyond that someday, but it took a me a decade. Which means I am still at the very beginning of the journey. Nonetheless, here’s how I’ve set up my OS for 2025.
Color Palette#
The common theme of my setup is TokyoNight-Storm - I really enjoyed it on Mac (in the code editor and terminal emulator) and tried to match the apps to this color palette whenever possible. This includes:
- A GTK theme (which is used by Qt apps as well thanks to
QT_QPA_PLATFORMTHEME=gtk3) ghostty,neovimandtmuxthemes- Waybar’s CSS
- even the wallpaper
I couldn’t make it work with Spotify though. Will figure that one out later.
niri#
At the heart of my setup is this tiny Wayland Compositor called niri. I saw it on r/unixporn few months ago and loved the idea instantly. Having the infinite canvas of tiled windows that I can manipulate without even having to touch the mouse? That’s the dream!
I’ve configured niri to have 4 named workspaces (+ an empty one just in case):
mainfor browsing, learning and note-takinghack, where I edit thedotfileswithnvim(or develop software, but who cares about coding in the age of AI)chat, used mostly for Slack and Discordplay, where Spotify lives
This way I can press alt+3 to quickly move to incoming messages, reply and get back to the task at hand in less than 10 seconds.
I didn’t like the way the toggle-window-floating works, as it didn’t resize and center the window, so I improved it with a custom script.
On top of that, I’ve remapped Caps Lock into Hyper Key so I can have the additional keyboard shortcuts layer across the OS (like Caps Lock+W shows the opened windows in fuzzel if I’d ever get lost). On an additional note, I am really happy about being able to redirect to fuzzel for fuzzy picking.
I am still getting used to the way niri operates, but it really is a breeze, compared to what I had to deal with on Mac.
Waybar#
To be honest, I don’t like it. But I didn’t find anything better so I’m stuck with the modules it provides:
- on the left I have the
niriworkspaces. The empty ones are grayed out - in the middle there’s a focused application window name
- on the right:
- volume
wlan0’s assigned IP- CPU usage
- RAM usage
- battery percentage
- clock
- tray area
I’m pretty satisfied with the result, but I also hoped for application icons either within the workspaces area or maybe instead of the window name. Since I couldn’t figure that out, I moved on to other things.
mako#
For notifications I use mako. Yes, that’s the whole paragraph.
Other apps#

Being accustomed to Arc Browser I gave the Zen Browser (an open-source, Firefox-based alternative) a shot. It’s great so far. Better than the original IMO.
As for terminal emulator, I went with ghostty. I’ve been using Alacritty for a long time and wanted to try the new hot thing. It’s snappy, easily-configurable, supports tmux well (even though ghostty claims I don’t need it).
For coding - I’ve been using VS Codium mixing it with Neovim to some extent. This time I am dedicated to use only the latter, so I didn’t install the former at all. I guess we will see if it sticks long-term.
For files management - Nemo. It’s simpler than Nautilus/Dolphin and I am not ready yet to go with ranger (or alternatives).
Obviously I need to run Kali Linux/Parrot OS/target VMs and for that I am using VirtualBox. Mainly because it’s OSS and the host-guest features like shared folders work seamlessly, which wasn’t the case with either UTM or VMWare Workstation on Mac.
Postface#
Going from downloading the Arch Linux ISO to the working setup took me around a week (evenings, mostly). During this time I’ve learned/remembered a thing or two about Linux in general, partitioning, system configuration, window manager and other useful tools.
I was time consuming, sure. But never frustrating. For the past 10 years I’ve been happily using macOS, but eventually I think I lost this creative drive when it comes to computers themselves.
I am well aware my setup is not the cleanest one out there. But it’s mine. It reflects my style of computing. And, for what it’s worth, it brings back the joy again.
Appendix A: .dotfiles#
Here are the .dotfiles.