Skip to content

Repository files navigation

Zanoni's Desktop Configs

CI Coverage Stargazers

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