DotFriedRice: niri / Arch Desktop Environment with Modern CLI Tools

Configure most systems with modern command line tools and optionally an Arch Linux niri based desktop environment.
Want to jump to the demo video? Here it is on YouTube.
An opinionated but customizable set of configs and scripts designed to help you quickly set up your system. It’s aimed at anyone who deeply cares about how they use computers (developers, power users, etc.).
# 🥢 What’s in the Box?
It comes in 2 flavors:
Command Line
Supports Arch Linux, both vanilla and Arch based distros such as CachyOS, etc.. It also supports Debian, Ubuntu (vanilla and all flavors), macOS and there’s WSL 2 support for any supported Linux distro.
Highlights:
- Tweak out your shell (zsh)
- Set up tmux
- Fully configure Neovim
- Create SSH / GPG keys if they don’t already exist
- Install modern CLI tools and programming languages
(Optional) Scrolling / Tiling Desktop Environment
Supports Arch Linux, both vanilla and Arch based distros such as CachyOS, etc..
Highlights:
- …includes everything in the command line version, plus:
- niri (Wayland compositor), Waybar (status bar), Walker (app launcher) and friends
- Hotkey focused but tons of mouse / trackpad support
- Prefer TUI (Terminal User Interface) apps over GUI apps when possible
- Development / media creation focused apps are ready to go
Philosophy
I deeply understand one person’s bloat is another person’s treasure. All packages, configs and symlinks are configurable before you modify your system. A mini-goal of this project is to avoid needing to fork this project while still giving you a reasonable amount of control, but if you want to use a fork that’s fine too.
# Origin Story
Since 2018 I’ve published my dotfiles and they have evolved over the years. I recently decided to brand them with a name because while out walking I thought it would be fun to name them DotFriedRice, I also realized it’s a good fit because just like fried rice you can mix and match an assortment of flavors.
DotFriedRice is still my dotfiles but I think having a name sets up a better expectation that it’s not just a few config files.
I’ve always had an install script, theme switching and all of that for a long time because I:
- Used to use Windows (WSL) and wanted a quick way to get everything up and running
- Do an assortment of work on company issued laptops which typically use macOS
- Have video training courses and folks often ask how to replicate my set up
Out of necessity I wanted a quick and painless way to get a new machine set up in a repeatable way for not just myself but others on a few different device types.
If you happen to follow my blog you know I’m a fan of the command line. I’ve been an advocate of using tmux and other tools for 10+ years. There’s 100s of posts about using CLI tools, shell scripting and overall creating a development environment you’re happy with.
Now that I’ve switched to native Linux with Arch Linux and niri it was natural to evolve my dotfiles into supporting a graphical environment too, so I built that into DotFriedRice because I use it every day on both my main desktop and a travel laptop.
I’ve been using Docker since 2015 and went all-in with it early on. To this day it has been the best technical decision of my life and has led to a countless number of amazing experiences through the Docker Captains program, such as getting to meet great people, make new friends and travel the world.
I only bring that up to say that switching away from Windows to Linux is on that level of “best decision ever”. In 2019 I tried to switch but ran into hardware issues, but today the same hardware works amazingly well. I’m literally writing this blog post with it.
Even back in that 2019 blog post I wrote about how using Linux is more than just using Linux and how using your OS molds you as a person. All of those things are ringing true and I’m only 6 months in.
Anyways, I’m not trying to sell you on switching or sell anything. The good news is DotFriedRice will work if you want to continue using Windows with WSL 2 or use macOS. If you happen to want the full desktop environment and do want to make the switch, it’s a few minutes away. I created videos to help create a bootable USB drive and a video walkthrough of installing Arch Linux.
DotFriedRice’s documentation has all of these details in written form and more details about the project. You can even try it in Docker without modifying your system!
The video below demos using the full desktop environment as well as going over some of the command line features. Installing DotFriedRice on a fresh system is also covered (spoiler alert, it’s 1 command and answering a couple of prompts).
# Demo Video
Timestamps
- 1:48 – Quick intro using niri
- 4:58 – Navigating windows in niri
- 6:51 – Walker is a great launcher
- 8:44 – Multiple clipboards
- 10:30 – Generating random passwords
- 12:25 – Exploring key binds with Walker
- 13:59 – Waybar as a status bar
- 16:58 – Waybar network shortcuts
- 17:30 – Waybar sound
- 18:28 – Waybar workspaces and niri actions
- 20:03 – Waybar clock
- 22:06 – System menu
- 23:07 – Changing themes and wallpapers
- 26:36 – A full list of packages
- 29:15 – Thunar file manager
- 30:44 – Color picker
- 31:47 – Graphical apps
- 34:10 – A few TUIs
- 34:58 – fzf and picking Arch packages
- 37:05 – tmux
- 38:06 – Playing music with rmpc
- 41:05 – CLI drive by
- 43:28 – Linux kernel, GPU drivers and services
- 46:14 – Quickly going over how theming works
- 48:13 – Customizing certain things (packages, etc.)
- 51:34 – A few useful scripts (notes, etc.)
- 53:20 – Adjusting configs
- 54:14 – Sudoers, udev and systemd
- 56:22 – The value of repeatable systems
- 57:54 – A few DFR binaries
- 58:56 – The DotFriedRice CLI tool
- 1:03:45 – A few useful binaries included in DotFriedRice
- 1:06:10 – Partially overwriting config files with local files
- 1:08:43 – Preparing to install DotFriedRice
- 1:09:51 – Installing DotFriedRice
- 1:12:23 – CLI vs desktop environment vs customize options
- 1:16:09 – Picking your name and email for git / gpg key
- 1:16:57 – Arch packages
- 1:18:38 – Arch AUR packages
- 1:20:19 – Programming languages
- 1:20:30 – Handling config overrides
- 1:22:53 – Changing your shell to zsh
- 1:22:55 – Creating your GPG key
- 1:23:45 – Rebooting into the desktop environment
- 1:24:27 – Next steps
Did you switch to native Linux with DotFriedRice? Let me know below!