NixOS and home-manager configuration files.
Inspired from:
- For the system-level/home-level separation: https://gvolpe.com/blog/xmonad-polybar-nixos/ and https://github.com/gvolpe/nix-config/
- For the use of Mozilla SOPS for file-level encryption: https://github.com/cole-mickens/nixcfg
After editing files, run:
$ sudo cp -r system/* /etc/nixos
$ sudo nixos-rebuild switch --repair --upgrade
system
├── configuration.nix
├── emacs.nix
├── fonts.nix
├── machine
│ └── pulsedemon.nix
├── overlays-compat
│ └── overlays.nix
├── services.nix
├── users.nix
└── wm
└── i3.nix
configuration.nix
is the main file. It imports everything else, includinghardware-configuration.nix
. The latter is autogenerated during NixOS installation as a result of the hardware scan. It's machine-dependent, saved in/etc/nixos
during installation, and not kept under version control.emacs.nix
defines my overridden version of Emacs.fonts.nix
contains the configuration of the fonts and the list of font packages to install.machine/
contains machine-dependent configuration of global options, including hardware (e.g.pulseaudio
) and services (e.g.bolt
).overlays-compat/overlays.nix
: a way of Usingnixpkgs.overlays
fromconfiguration.nix
as<nixpkgs-overlays>
in myNIX_PATH
. See here: https://tinyurl.com/hb7v8hnfservices.nix
configures services that I would like to have available on all machines I use. For example,borgbackup
andthermald
.users.nix
defines the user(s) and their groups.wm/
contains configurations for display, desktop, and window managers. At the moment only the configuration fori3
is available.