NixOS NixOS · Flakes · Home Manager · Disko

A reproducible
NixOS rice
built to last.

Hyprland & KDE Plasma 6 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
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

Two desktops, one config

Switch between tiling Hyprland and full KDE Plasma 6 at the login screen — both themed from the same source of truth.

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