ryan4yin / nix-config
❄️ My nix config for both desktops(NixOS+macOS) and homelab servers(NixOS).
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing ryan4yin/nix-config in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler view:snowflake: Ryan4Yin's Nix Config :snowflake: > My configuration is becoming more and more complex, and **it will be difficult for beginners to > read**. If you are new to NixOS and want to know how I use NixOS, I would recommend you to take a > look at the ryan4yin/nix-config/releases first, > **check out to some simpler older versions, such as > i3-kickstarter, which will be much > easier to understand**. This repository is home to the nix code that builds my systems: • NixOS Desktops: NixOS with home-manager, niri, agenix, etc. • macOS Desktops: nix-darwin with home-manager, share the same home-manager configuration with NixOS Desktops. • NixOS Servers: virtual machines running on Proxmox/KubeVirt, with various services, such as kubernetes, homepage, prometheus, grafana, etc. See ./hosts for details of each host. See ./Virtual-Machine.md for details of how to create & manage KubeVirt's Virtual Machine from this flake. Why NixOS & Flakes? Nix allows for easy-to-manage, collaborative, reproducible deployments. This means that once something is setup and configured once, it works (almost) forever. If someone else shares their configuration, anyone else can just use it (if you really understand what you're copying/referring now). As for Flakes, refer to Introduction to Flakes - NixOS & Nix Flakes Book **Want to know NixOS & Flakes in detail? Looking for a beginner-friendly tutorial or best practices? You don't have to go through the pain I've experienced again! Check out my NixOS & Nix Flakes Book - 🛠️ ❤️ An unofficial & opinionated :book: for beginners!** > If you're using macOS, check out > ryan4yin/nix-darwin-kickstarter for a quick > start. Components | | NixOS(Wayland) | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | | **Window Manager** | [Niri][Niri] | | **Terminal Emulator** | [Zellij][Zellij] + [foot][foot]/[Kitty][Kitty]/[Alacritty][Alacritty]/[Ghostty][Ghostty] | | **Status Bar** / **Notifier** / **Launcher** / **lockscreens** | [noctalia-shell][noctalia-shell] | | **Display Manager** | [tuigreet][tuigreet] | | **Color Scheme** | [catppuccin-nix][catppuccin-nix] | | **network management tool** | [NetworkManager][NetworkManager] | | **Input method framework** | [Fcitx5][Fcitx5] + [rime][rime] + [小鹤音形 flypy][flypy] | | **System resource monitor** | [Btop][Btop] | | **File Manager** | [Yazi][Yazi] + [thunar][thunar] | | **Shell** | [Nushell][Nushell] + [Starship][Starship] | | **Media Player** | [mpv][mpv] | | **Text Editor** | [Neovim][Neovim] | | **Fonts** | [Nerd fonts][Nerd fonts] | | **Image Viewer** | [imv][imv] | | **Screenshot Software** | Niri's builtin function | | **Screen Recording** | [OBS][OBS] | | **Filesystem & Encryption** | tmpfs as , [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] encrypted partition for persistent, unlock via passphrase | | **Secure Boot** | [lanzaboote][lanzaboote] | Wallpapers: https://github.com/ryan4yin/wallpapers Screenshots Neovim See ./home/base/tui/editors/neovim/ for details. Secrets Management See ./secrets for details. Agents See ./agents for my reusable cross-project agent files and installer script. How to Deploy this Flake? > :red_circle: **IMPORTANT**: **You should NOT deploy this flake directly on your machine :exclamation: > It will not succeed.** This flake contains my hardware configuration(such as > hardware-configuration.nix, > Nvidia Support, > etc.) which is not suitable for your hardware, and requires my private secrets repository > ryan4yin/nix-secrets to deploy. You > may use this repo as a reference to build your own configuration. For NixOS: > To deploy this flake from NixOS's official ISO image (purest installation method), please refer to > ./nixos-installer/ For macOS: > What y'all will need when Nix drives you to drink. > (copy from hlissner's dotfiles, it really matches my feelings when I first started using NixOS...) References Other dotfiles that inspired me: • Nix Flakes • NixOS-CN/NixOS-CN-telegram • notusknot/dotfiles-nix • xddxdd/nixos-config • bobbbay/dotfiles • gytis-ivaskevicius/nixfiles • davidtwco/veritas • gvolpe/nix-config • Ruixi-rebirth/flakes • fufexan/dotfiles: gtk theme, xdg, git, media, etc. • nix-community/srvos: a collection of opinionated and sharable NixOS configurations for servers • Modularized NixOS Configuration • hlissner/dotfiles • viperML/dotfiles • Neovim/AstroNvim • maxbrunet/dotfiles: astronvim with nix flakes. • Misc • 1amSimp1e/dots [Niri]: https://github.com/YaLTeR/niri [Kitty]: https://github.com/kovidgoyal/kitty [foot]: https://codeberg.org/dnkl/foot [Alacritty]: https://github.com/alacritty/alacritty [Ghostty]: https://github.com/ghostty-org/ghostty [Nushell]: https://github.com/nushell/nushell [Starship]: https://github.com/starship/starship [Fcitx5]: https://github.com/fcitx/fcitx5 [rime]: https://wiki.archlinux.org/title/Rime [flypy]: https://flypy.cc/ [Btop]: https://github.com/aristocratos/btop [mpv]: https://github.com/mpv-player/mpv [Zellij]: https://github.com/zellij-org/zellij [Neovim]: https://github.com/neovim/neovim [AstroNvim]: https://github.com/AstroNvim/AstroNvim [imv]: https://sr.ht/~exec64/imv/ [OBS]: https://obsproject.com [Nerd fonts]: https://github.com/ryanoasis/nerd-fonts [catppuccin-nix]: https://github.com/catppuccin/nix [NetworkManager]: https://wiki.gnome.org/Projects/NetworkManager [wl-clipboard]: https://github.com/bugaevc/wl-clipboard [tuigreet]: https://github.com/apognu/tuigreet [thunar]: https://gitlab.xfce.org/xfce/thunar [Yazi]: https://github.com/sxyazi/yazi [Catppuccin]: https://github.com/catppuccin/catppuccin [Btrfs]: https://btrfs.readthedocs.io [LUKS]: https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system [lanzaboote]: https://github.com/nix-community/lanzaboote [noctalia-shell]: https://github.com/noctalia-dev/noctalia-shell