Zanoni's Desktop Configs
Welcome to my dotfiles! This repository contains my desktop environment setup for NixOS and macOS under one flake. Built with Nix Flakes, Home Manager, and nix-darwin.
Linux
showcase-desktop-cut-compressed.mp4
Mac
showcase-macos-desktop.mp4
Got NixOS from the installer? Perfect. Here's how to deploy this flake:
Quick Start for: ❄️ NixOS Users
cd ~
git clone https://github.com/castrozan/.dotfiles.git
cd .dotfilesPick a short alias for the machine (this repo uses anime names: chise, rin, kira). Then:
sudo nixos-generate-config --dir machine-configuration/machines/<alias>/system/configs- Copy
machine-configuration/machines/chise/system/(system config) andmachine-configuration/machines/chise/home.nixplusmachine-configuration/machines/chise/home/(per-user home-manager modules) as templates for the new alias - Add one explicit
nixosConfigurations.<alias> = nixosMachineFactory { ... };call inrepository/flake-assembly/outputs.nix
sudo nixos-rebuild switch --flake .?submodules=1#<alias>- Restart your system (recommended)
- Enjoy your new setup! 🎉
For macOS, the flake composes nix-darwin with home-manager:
Quick Start for: 🍎 macOS
sh <(curl -L https://nixos.org/nix/install)
nix run nix-darwin -- switch --flake .?submodules=1#<alias>sudo darwin-rebuild switch --flake .?submodules=1#<alias>Use the host's alias (rin, kira, ...). The WezTerm cask is declared in machine-configuration/terminal/emulators/wezterm/wezterm-nix-darwin.nix.
📦 mermaid
Here's how everything fits together:
graph TD
subgraph "repository/flake-assembly"
Flake["outputs.nix<br/>explicit host calls"]
NixOSMachine["nixos-machine-factory.nix<br/>builds one NixOS host per call"]
DarwinMachine["darwin-machine-factory.nix<br/>builds one Darwin host per call"]
end
subgraph "NixOS Configuration"
NixOS["nixosConfigurations.<host>"]
Host["machine-configuration/machines/<alias>/system/<br/>hardware config"]
UserNixOS["machine-configuration/machines/<alias>/system/nixos-system.nix<br/>+ machine-configuration/machines/<alias>/home.nix"]
end
subgraph "Darwin Configuration"
Darwin["darwinConfigurations.<host>"]
DarwinHost["machine-configuration/machines/<alias>/system/<br/>nix-darwin host config"]
DarwinHome["machine-configuration/machines/<alias>/home.nix"]
end
subgraph "Home Manager Configuration"
UserHome["machine-configuration/machines/<alias>/home.nix"]
Modules["machine-configuration/<domain>/<capability>/*<br/>platform-gated modules"]
end
subgraph "External Inputs"
Nixpkgs["nixpkgs-25.11"]
Unstable["nixpkgs-unstable"]
HM["home-manager"]
ND["nix-darwin"]
end
Flake --> NixOSMachine
Flake --> DarwinMachine
NixOSMachine --> NixOS
DarwinMachine --> Darwin
NixOS --> Host
NixOS --> UserNixOS
NixOS --> HM
Darwin --> DarwinHost
Darwin --> DarwinHome
Darwin --> ND
NixOS --> UserHome
UserHome --> Modules
DarwinHome --> Modules
Flake --> Nixpkgs
Flake --> Unstable
style Flake fill:#f38ba8,color:#1e1e2e
style NixOS fill:#a6e3a1,color:#1e1e2e
style Darwin fill:#fab387,color:#1e1e2e
style Nixpkgs fill:#f9e2af,color:#1e1e2e
style HM fill:#cba6f7,color:#1e1e2e
style ND fill:#fab387,color:#1e1e2e
This setup is inspired by and borrows from:
- ryan4yin/nix-config - Excellent complex Nix configurations
- OfflineBot/nixos - Clean NixOS setup
- The amazing NixOS and Home Manager communities
- And countless other dotfiles repos I've stumbled upon at 3 AM 🌙
- NixOS Manual - Official documentation
- Home Manager Manual - Home Manager docs
- Nix Pills - Learn Nix the fun way
- NixOS & Flakes Book - Comprehensive guide
Enjoy ricing and happy hacking! If you like this setup, consider giving it a ⭐






