Introduction
I spend a lot more time scrolling twitter and reddit than I would like. Most of the posts I see are about tech/programming. Sometime ago, I started seeing a lot of posts of people showcasing their customized unix systems.
These are some cool examples from r/unixporn:
The process of customizing your machine like this is called ‘ricing’, a term that’s become quite popular in the linux community. When I first saw these setups on twitter, my reaction was “This looks cool! I need to do this to my macbook!”. That curiosity led me down a bit of rabbithole, and this blog is basically just me talking about all the knowledge I’ve acquired from the experience.
Cool, but also useful
I think it’s pretty obvious why most people enjoy ricing: it looks really cool.
Honestly, that’s a pretty valid reason to spend hours customizing your machine. Humans are very visual creatures, we like to look at stuff we think looks nice. Creating a config that you think looks perfect, will probably improve your mood, focus and make you more motivated to work on your machine.
Plus, it’s nice to be able to show off your rice on twitter or reddit to get clout with tech nerds.
However, ricing isn’t just about aesthetics. When you rice your system, you’re not just changing how it looks, you can also change how it works.
Hate using your mouse? Create keyboard shortcuts for everything. Hate traditional window management where you need to constantly drag and resize windows? Install a window manager like Hyprland and never think about it again.
This type of behavioral customization is the best part about ricing. It’s so much better to do digital work when you feel like your computer is working for you instead of against you.
Ricing also forces you to actually understand the tools you use daily. Most people today use software as black boxes, they don’t know how things work, and they also don’t care. Tech illiteracy is massive problem and big reason why so much modern software sucks so much. When you rice your system, you’re forced to read documentation, understand configuration files and think critically about your workflow. You start caring about and building your tools instead of simply using them.
Cooking my own rice
After seeing countless setups online and reading about the philosophy behind ricing, I decided to customize my macbook. Macos has less ricing tools than most linux distros, but it’s still pretty customizable.
I started by identifying what I didn’t like about my current setup, and what kind of environment I wanted to create for myself. For aesthetics, I wanted warm, cozy colors. I also prioritized minimalism, no flashy animations or other distractions, just one cohesive font and color scheme across all my tools.
In term of functionality, my biggest frustration was macos’s window management. I hated dragging windows around with my mouse and wanted a system that would organize my workspace automatically and let me navigate everything using my keyboard.
After a few days of tinkering around with configuration files, this was the end result:
Don’t these screenshots look cool? Personally, I really like them. To make this setup I used the following programs:
Neovim
This is text editor you can see in the second image. It’s terminal-based, open-source, lightweight and super customizable.
My config for neovim is pretty minimal. I only use two external plugins: one for the gruvbox color theme, and one to add a file navigation tree. Everything else is configured using neovim’s standard settings or with simple lua scripts written by me.
Ghostty
In the first and second images, you can see a terminal. Personally, I’m a fan of ghostty. It’s fast, lightweight, easy to configure and written Zig (i like zig :3).
I didn’t make any big changes to ghostty. I changed the colorscheme to gruvbox, removed the macos title bar, made the background transparent and added some blur.
Aerospace
I use aerospace, a window manager, to organize my windows across 7 workspaces. When I open a new application, it is automatically added to whatever workspace is currently opened. I can move windows between workspaces, change how windows are arranged withing a workspace, and switch between workspaces, all using keyboard shortcuts.
Managing keyboard shortcuts among different programs can be a bit annoying, but it’s way better than using your mouse for everything. Aerospace makes my single laptop screen feel like multiple screens that I can easily change between. Honestly life changing. It’s so cozy to use, I feel more productive with it.
Sketchybar
The custom status bar visible in all pictures. The default macos status bar, but I wanted something more minimalistic and customizable.
The customization was pretty simple, I modified the default scripts to display aerospace’s workspace data, and styled everything with transparent backgrounds and the gruvbox color scheme.
Fastfetch
The system information display in the first image is pure eye candy. It has not purpose beyond looking cool on screenshots and giving you some system information when you open your terminal.
The default fastfetch configuration looks fine, so I just made some minor tweaks to it.
Final thoughts
I think anyone who works on a computer daily should experiment with ricing their setup at least once. You’ll either end up a cool looking system that’s perfectly optimized for your needs and preferences, or realize you just want to use visual studio on window, which is less cool, but also okay.
Just make sure you don’t turn into one of those people who spend so much time customizing their set up that they never actually ship anything.
The dotfiles for my config can be found here.
If you like the idea of customizing your own tools, you might like this blog post by Ronin: If you don’t tinker, you don’t have taste