2.6 KiB
❄️ imxyy_soope_'s NixOS Config ❄️
This configuration and READMEs in this repo borrows heavily from ryan4yin/nix-config and his cookbook. Many thanks to his spirit of sharing!
This repository is home to the nix code that builds my systems: Currently, this repository contains the nix code that builds:
- NixOS Desktop (
imxyy-nix): NixOS with home-manager, niri, neovim, etc. - NixOS Laptop (
imxyy-nix-x16): the desktop profile on a laptop - NixOS home server (
imxyy-nix-server) - NixOS WSL (
imxyy-nix-wsl)
See ./hosts for details of each host.
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/refering now).
As for Flakes, refer to Introduction to Flakes - NixOS & Nix Flakes Book
This configuration uses flake-parts for better flake organization and modularity, enabling declarative host definitions and cleaner separation of concerns.
Folder Structure
modules/- custom NixOS modules, auto-imported vialib.umportmodules/core/- core system modules (nix, persistence, time, user, xdg)modules/cli/- command-line tools and utilitiesmodules/coding/- development environments and editorsmodules/desktop/- desktop applications and window managersmodules/virt/- virtualization configurationsmodules/i18n/- locale and input method (fcitx5)modules/programs/- misc system programs (e.g. ollama)modules/*.nix- standalone modules (audio, bluetooth, fonts, gpg, sops, etc.)
profiles/- system configuration profilesprofiles/base.nix- base configuration for all hostsprofiles/desktop.nix- desktop environment configurationprofiles/server.nix- server-specific configurationprofiles/wsl.nix- WSL-specific configuration
hosts/<name>/- host-specific configsflake/- flake-parts modulesflake/hosts.nix- declarative host definitionsflake/pkgs.nix- custom packages exported from the flakeflake/overlays/- nixpkgs overlays and patches
lib/- custom nix librarypkgs/- custom packagesvars.nix- my variablessecrets/- secrets managed by sops-nix. see ./secrets for detailsflake.nix- flake entry