#+title: NixOS Config #+author: Emmet [[https://gitlab.com/librephoenix/nixos-config][Main Repo Link (GitLab)]] [[https://github.com/librephoenix/nixos-config-mirror][Mirror Repo Link (GitHub)]] ** What is this repository? These are my dotfiles (configuration files) for my NixOS setup(s). Here is my main setup: [[themes/ayu-dark/ayu-dark.png]] ** My 55+ Themes [[https://github.com/danth/stylix#readme][Stylix]] (and [[https://github.com/SenchoPens/base16.nix#readme][base16.nix]], of course) is amazing, allowing you to theme your entire system with base16-themes. Using this I have [[./themes][55+ themes]] (I add more sometimes) I can switch between on-the-fly. Visit the [[./themes][themes directory]] for more info and screenshots! ** Install I wrote some reinstall notes for myself [[./install.org][here (install.org)]]. ** Modules Separate Nix files can be imported as modules using an import block: #+BEGIN_SRC nix imports = [ import1.nix import2.nix ... ]; #+END_SRC This conveniently allows configurations to be (*cough cough) /modular/ (ba dum, tssss). I have my modules separated into two groups: - System-level - stored in the [[./system][system directory]] - System-level modules are imported into configuration.nix, which is what is sourced into [[./flake.nix][my flake (flake.nix)]] - User-level - stored in the [[./user][user directory]] (managed by home-manager) - User-level modules are imported into home.nix, which is also sourced into [[./flake.nix][my flake (flake.nix)]] More detailed information on these specific modules are in the [[./system][system directory]] and [[./user][user directory]] respectively. ** Profiles I separate my configurations into [[./profiles][profiles]] (essentially system templates), i.e: - [[./profiles/personal][Personal]] - What I would run on a personal laptop/desktop - [[./profiles/work][Work]] - What I would run on a work laptop/desktop (if they let me bring my own OS :P) - [[./profiles/homelab][Homelab]] - What I would run on a server or homelab My profile can be conveniently selected in [[./flake.nix][my flake.nix]] by setting the =profile= variable. More detailed information on these profiles is in the [[./profiles][profiles directory]].