Skip to content

Repository files navigation

Zanoni's Desktop Configs

CICoverageStargazers

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

macOS desktop running WezTerm, herdr and Neovim

Desktop Showcase

Kitty ᓚᘏᗢ + Tmux

🪟 Panes

panes

🪴 Screensaver

screensaver

🔱 Sessions

sessions

Neovim

:wq Editor

editor

🎯 Focused Editor

editor


Wanna use it?

The Declarative Way

Got NixOS from the installer? Perfect. Here's how to deploy this flake:

Quick Start for: ❄️ NixOS Users

1. Clone the Repository

cd~
git clone https://github.com/castrozan/.dotfiles.git
cd .dotfiles

2. Generate Hardware Configuration

Pick 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

3. Customize Your Configuration

  • Copy machine-configuration/machines/chise/system/ (system config) and machine-configuration/machines/chise/home.nix plus machine-configuration/machines/chise/home/ (per-user home-manager modules) as templates for the new alias
  • Add one explicit nixosConfigurations.<alias> = nixosMachineFactory { ... }; call in repository/flake-assembly/outputs.nix

4. Deploy the Flake

sudo nixos-rebuild switch --flake .?submodules=1#<alias>

5. Post-Deployment

  • Restart your system (recommended)
  • Enjoy your new setup! 🎉

macOS (nix-darwin)

For macOS, the flake composes nix-darwin with home-manager:

Quick Start for: 🍎 macOS

1. Install Nix + nix-darwin

sh <(curl -L https://nixos.org/nix/install)
nix run nix-darwin -- switch --flake .?submodules=1#<alias>

2. Activate later rebuilds

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.


🏗️ Architecture Overview

📦 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.&lt;host&gt;"]
Host["machine-configuration/machines/&lt;alias&gt;/system/<br/>hardware config"]
UserNixOS["machine-configuration/machines/&lt;alias&gt;/system/nixos-system.nix<br/>+ machine-configuration/machines/&lt;alias&gt;/home.nix"]
end
subgraph "Darwin Configuration"
Darwin["darwinConfigurations.&lt;host&gt;"]
DarwinHost["machine-configuration/machines/&lt;alias&gt;/system/<br/>nix-darwin host config"]
DarwinHome["machine-configuration/machines/&lt;alias&gt;/home.nix"]
end
subgraph "Home Manager Configuration"
UserHome["machine-configuration/machines/&lt;alias&gt;/home.nix"]
Modules["machine-configuration/&lt;domain&gt;/&lt;capability&gt;/*<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
Loading

🔗 Inspiration & Credits

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 🌙

📚 Resources


Enjoy ricing and happy hacking! If you like this setup, consider giving it a ⭐

About

Declarative dotfiles with Nix flakes. Supports NixOS full system and home-manager standalone for non-NixOs systems.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages