NixOS NixOS · Flakes · Home Manager · Disko

A reproducible
NixOS rice
built to last.

Hyprland, KDE Plasma 6, COSMIC & GNOME on an encrypted, impermanent Btrfs system — declared once, rebuilt anywhere.

0
custom widgets
0
dev shells
0
boot themes
0
window managers
// rice.toml

The setup at a glance

Everything is declared in this repo. No imperative drift — upnix and it's exactly this, every time.

OS
NixOS
Window Manager
Hyprland · KDE Plasma 6 · COSMIC · GNOME
Shell
Zsh · Powerlevel10k
Terminal
Ghostty
Bar
Caelestia Shell
Browser
Zen Browser
Editor
Neovim (LazyVim) · Zed
File Manager
Yazi · Dolphin
Theme
Sweet Dark · Kvantum
Icons
Papirus · Slot · Vivid
Login
SDDM · Sonomatic
Boot
Plymouth · GRUB2 · rEFInd
Disk
Btrfs · LUKS · Impermanence
Secrets
sops-nix · age
// screenshots

Four desktops, one config

Hyprland, KDE Plasma 6, COSMIC and GNOME are all independently toggleable and switchable at the login screen, themed from the same source of truth. Screenshots below: the two in daily use.

KDE Plasma 6 desktop
KDE Plasma 6 — Sweet Dark · custom widgets · Iridescent theme
Hyprland desktop
Hyprland — Caelestia Shell bar · awww wallpapers
Custom GRUB2 theme
GRUB2 — themed bootloader
Custom rEFInd theme
rEFInd — alternate bootloader
// why this build

Pretty AND resilient

A desktop that survives reinstalls, rebuilds clean, and wipes back to a known state on every boot.

🔁

Fully declarative

Flakes + Home Manager pin every package, dotfile and service. Clone and rebuild — identical machine every time.

🫧

Impermanence

Root is wiped to a blank Btrfs snapshot on every boot. Only explicitly persisted paths survive.

🔐

LUKS + sops-nix

Full-disk encryption, secrets managed with age — no plaintext credentials anywhere in the repo.

💿

Disko-driven install

No hardware-configuration.nix committed. Any drive, dual-boot ready, one command.

🎬

Custom boot themes

Four Plymouth animations (dotted, flower, icy, matrix) and themed GRUB2 + rEFInd bootloaders.

🎮

Gaming-ready

Steam + Gamemode + Gamescope + MangoHud declared in one flag. Proton works out of the box.

📦

Btrfs snapshots

Automatic pre-rebuild snapshots via Snapper. Roll back any generation instantly without a reinstall.

🔑

Keyring

GNOME Keyring wired up for Wayland — SSH agent, GPG agent and secret storage all unlocked at login.

🛡️

Portmaster firewall

Per-app outbound firewall with a GUI. Blocks telemetry and unwanted connections at the kernel level.

// pkgs/widgets

Home-grown Plasma widgets

Each one lives in pkgs/widgets/ as its own Nix derivation. The demos below are live SVGs — several animate in-browser.

+ Modern Clock + Overview
// features/

Self-hosted & system services

Toggle-able feature modules — flip one option and the whole service stack appears, declared and pinned.

// dev-shells/

44 language dev shells

Instant isolated environments with devnew <lang> — tab-completable, zero global pollution.

RustGoPython NodeBunDeno JavaKotlinScala HaskellOCamlElm ElixirGleamClojure ZigNimOdin C/C++SwiftPHP RubyRJulia LaTeXTypstJupyter NixPulumiHashi PlatformIOProtobufDhall NickelCueOPA Lean4PurescriptV SWI-PrologHaxe+ more
# drop into any language env instantly
devnew rust
# → nix develop ./dev-shells/rust — hermetic, no global installs
// plymouth

Boot animations

Four custom Plymouth themes driven by MP4 sources. Plays before you even unlock the disk.

dotted
flower
icy
matrix
// modern CLI

The terminal, rebuilt

Classic Unix tools transparently replaced with faster, prettier modern equivalents.

lseza
catbat / tspin
findfd
grepripgrep
dudust
dfduf
psprocs
topbtop
pinggping
curlxh
cdzoxide
git diffdifftastic
// getting started

Try it yourself

No machine-specific files to scrub. Spin it in a VM first, or deploy straight to hardware.

# clone
git clone https://github.com/Muddyblack/NixOS.git && cd NixOS

# review flags
bash deploy.sh help

# install — prompts for disk, dual-boot sizes, …
bash deploy.sh install --device /dev/nvme0n1

# day-to-day rebuild (plays a sound on done 🔊)
upnix