c:
slighly overengineered NixOS configuration flake for multiple hosts.
Click to expand: Full flake tree
github:sotormd/nixos
βββ flake.lock
βββ flake.nix
βββ LICENSE
βββ README.md
βββ docs
βΒ Β βββ droid.md
βΒ Β βββ images.md
βΒ Β βββ laptop.md
βΒ Β βββ rice.md
βΒ Β βββ scripts.md
βΒ Β βββ server.md
βΒ Β βββ example-vars
βΒ Β βΒ Β βββ example-laptop-vars.nix
βΒ Β βΒ Β βββ example-server-vars.nix
βΒ Β βββ screenshots
βΒ Β βββ nixos.gif
βββ lib
βΒ Β βββ default.nix
βββ modules
βΒ Β βββ common
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ audit
βΒ Β βΒ Β βΒ Β βββ accounts.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ logins.nix
βΒ Β βΒ Β βΒ Β βββ privileges.nix
βΒ Β βΒ Β βΒ Β βββ run.nix
βΒ Β βΒ Β βΒ Β βββ security-objects.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ boot
βΒ Β βΒ Β βΒ Β βββ blacklist.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ jitterentropy.nix
βΒ Β βΒ Β βΒ Β βββ kernel.nix
βΒ Β βΒ Β βΒ Β βββ luks.nix
βΒ Β βΒ Β βΒ Β βββ params.nix
βΒ Β βΒ Β βΒ Β βββ quiet.nix
βΒ Β βΒ Β βΒ Β βββ sysctl.nix
βΒ Β βΒ Β βΒ Β βββ systemd.nix
βΒ Β βΒ Β βΒ Β βββ tmp.nix
βΒ Β βΒ Β βββ clamav
βΒ Β βΒ Β βΒ Β βββ daemon.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ scanner.nix
βΒ Β βΒ Β βΒ Β βββ updater.nix
βΒ Β βΒ Β βββ internationalization
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ keyboard.nix
βΒ Β βΒ Β βΒ Β βββ locales.nix
βΒ Β βΒ Β βΒ Β βββ time.nix
βΒ Β βΒ Β βββ network
βΒ Β βΒ Β βΒ Β βββ adblock.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ disable-ipv6.nix
βΒ Β βΒ Β βΒ Β βββ firewall.nix
βΒ Β βΒ Β βΒ Β βββ host.nix
βΒ Β βΒ Β βΒ Β βββ issue.nix
βΒ Β βΒ Β βΒ Β βββ static.nix
βΒ Β βΒ Β βΒ Β βββ wifi.nix
βΒ Β βΒ Β βΒ Β βββ wpa3.nix
βΒ Β βΒ Β βββ nix
βΒ Β βΒ Β βΒ Β βββ allowed-users.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ dirty-git.nix
βΒ Β βΒ Β βΒ Β βββ flakes.nix
βΒ Β βΒ Β βΒ Β βββ garbage.nix
βΒ Β βΒ Β βΒ Β βββ integrity.nix
βΒ Β βΒ Β βΒ Β βββ ld.nix
βΒ Β βΒ Β βΒ Β βββ lix.nix
βΒ Β βΒ Β βββ packages
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ system.nix
βΒ Β βΒ Β βΒ Β βββ user.nix
βΒ Β βΒ Β βββ sandbox
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ firejail.nix
βΒ Β βΒ Β βββ scripts
βΒ Β βΒ Β βΒ Β βββ bin.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ env.nix
βΒ Β βΒ Β βββ sops
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ gpg.nix
βΒ Β βΒ Β βΒ Β βββ secrets.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ users
βΒ Β βΒ Β βββ compliance.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ git.nix
βΒ Β βΒ Β βββ immutable.nix
βΒ Β βΒ Β βββ main.nix
βΒ Β βΒ Β βββ prompt.nix
βΒ Β βΒ Β βββ sudo.nix
βΒ Β βΒ Β βββ xdg.nix
βΒ Β βββ droid
βΒ Β βΒ Β βββ colors.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ packages.nix
βΒ Β βΒ Β βββ scripts.nix
βΒ Β βββ images
βΒ Β βΒ Β βββ gnome.nix
βΒ Β βΒ Β βββ minimal.nix
βΒ Β βΒ Β βββ packages.nix
βΒ Β βΒ Β βββ plasma.nix
βΒ Β βββ laptop
βΒ Β βΒ Β βββ assertions.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ home.nix
βΒ Β βΒ Β βββ audio
βΒ Β βΒ Β βΒ Β βββ alsa.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ jack.nix
βΒ Β βΒ Β βΒ Β βββ pipewire.nix
βΒ Β βΒ Β βΒ Β βββ pulse.nix
βΒ Β βΒ Β βΒ Β βββ rtkit.nix
βΒ Β βΒ Β βββ boot
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ emulation.nix
βΒ Β βΒ Β βΒ Β βββ hw.nix
βΒ Β βΒ Β βΒ Β βββ lanzaboote.nix
βΒ Β βΒ Β βΒ Β βββ loader.nix
βΒ Β βΒ Β βΒ Β βββ plymouth.nix
βΒ Β βΒ Β βΒ Β βββ sysctl.nix
βΒ Β βΒ Β βββ brave
βΒ Β βΒ Β βΒ Β βββ args.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ extensions.nix
βΒ Β βΒ Β βΒ Β βββ firejail.nix
βΒ Β βΒ Β βΒ Β βββ home.nix
βΒ Β βΒ Β βΒ Β βββ package.nix
βΒ Β βΒ Β βΒ Β βββ policies.nix
βΒ Β βΒ Β βΒ Β βββ preferences.nix
βΒ Β βΒ Β βΒ Β βββ sandbox.nix
βΒ Β βΒ Β βΒ Β βββ state.nix
βΒ Β βΒ Β βββ btop
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ cliphist
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βΒ Β βββ start.nix
βΒ Β βΒ Β βββ codium
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ extensions.nix
βΒ Β βΒ Β βΒ Β βββ firejail.nix
βΒ Β βΒ Β βΒ Β βββ package.nix
βΒ Β βΒ Β βΒ Β βββ sandbox.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βΒ Β βββ updates.nix
βΒ Β βΒ Β βββ cpu
βΒ Β βΒ Β βΒ Β βββ auto-cpufreq.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ powertop.nix
βΒ Β βΒ Β βΒ Β βββ tlp.nix
βΒ Β βΒ Β βββ dev
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ go.nix
βΒ Β βΒ Β βΒ Β βββ haskell.nix
βΒ Β βΒ Β βΒ Β βββ python.nix
βΒ Β βΒ Β βΒ Β βββ rust.nix
βΒ Β βΒ Β βββ i2p-browser
βΒ Β βΒ Β βΒ Β βββ css.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ firejail.nix
βΒ Β βΒ Β βΒ Β βββ package.nix
βΒ Β βΒ Β βΒ Β βββ policies.nix
βΒ Β βΒ Β βΒ Β βββ profile.nix
βΒ Β βΒ Β βΒ Β βββ proxy.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ impermanence
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ home.nix
βΒ Β βΒ Β βΒ Β βββ root.nix
βΒ Β βΒ Β βββ mousepad
βΒ Β βΒ Β βΒ Β βββ config.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ mpv
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ neovim
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ editor.nix
βΒ Β βΒ Β βββ network
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ dns.nix
βΒ Β βΒ Β βΒ Β βββ host.nix
βΒ Β βΒ Β βΒ Β βββ resume.nix
βΒ Β βΒ Β βΒ Β βββ timesyncd.nix
βΒ Β βΒ Β βΒ Β βββ tor.nix
βΒ Β βΒ Β βββ packages
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ mime.nix
βΒ Β βΒ Β βΒ Β βββ system.nix
βΒ Β βΒ Β βΒ Β βββ user.nix
βΒ Β βΒ Β βββ sops
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ secrets.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ ssh
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ github.nix
βΒ Β βΒ Β βΒ Β βββ server.nix
βΒ Β βΒ Β βββ sway
βΒ Β βΒ Β βΒ Β βββ backgrounds.nix
βΒ Β βΒ Β βΒ Β βββ bindsyms.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ opengl.nix
βΒ Β βΒ Β βΒ Β βββ outputs.nix
βΒ Β βΒ Β βΒ Β βββ ozone.nix
βΒ Β βΒ Β βΒ Β βββ polkit.nix
βΒ Β βΒ Β βΒ Β βββ start.nix
βΒ Β βΒ Β βΒ Β βββ swaylock.nix
βΒ Β βΒ Β βββ thunar
βΒ Β βΒ Β βΒ Β βββ actions.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ gvfs.nix
βΒ Β βΒ Β βΒ Β βββ tumbler.nix
βΒ Β βΒ Β βΒ Β βββ xfconf.nix
βΒ Β βΒ Β βββ users
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ xdg.nix
βΒ Β βΒ Β βββ virtualization
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ distrobox.nix
βΒ Β βΒ Β βΒ Β βββ libvirtd.nix
βΒ Β βΒ Β βΒ Β βββ virt-manager.nix
βΒ Β βΒ Β βββ zathura
βΒ Β βΒ Β βββ colors.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ fonts.nix
βΒ Β βββ rice
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ dunst
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βΒ Β βββ start.nix
βΒ Β βΒ Β βββ eww
βΒ Β βΒ Β βΒ Β βββ config.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ scripts.nix
βΒ Β βΒ Β βΒ Β βββ start.nix
βΒ Β βΒ Β βΒ Β βββ style.nix
βΒ Β βΒ Β βββ foot
βΒ Β βΒ Β βΒ Β βββ colors.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ gtk
βΒ Β βΒ Β βΒ Β βββ cursors.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ fonts.nix
βΒ Β βΒ Β βΒ Β βββ icons.nix
βΒ Β βΒ Β βΒ Β βββ themes.nix
βΒ Β βΒ Β βββ rofi
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βΒ Β βββ start.nix
βΒ Β βΒ Β βββ sway
βΒ Β βΒ Β βΒ Β βββ backgrounds.nix
βΒ Β βΒ Β βΒ Β βββ bindsyms.nix
βΒ Β βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βΒ Β βββ modes.nix
βΒ Β βΒ Β βΒ Β βββ outputs.nix
βΒ Β βΒ Β βΒ Β βββ swayfx.nix
βΒ Β βΒ Β βΒ Β βββ swaylock.nix
βΒ Β βΒ Β βΒ Β βββ sway.nix
βΒ Β βΒ Β βββ waybar
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ start.nix
βΒ Β βΒ Β βββ style.nix
βΒ Β βββ server
βΒ Β βββ assertions.nix
βΒ Β βββ default.nix
βΒ Β βββ boot
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ hw.nix
βΒ Β βΒ Β βββ loader.nix
βΒ Β βββ i2pd
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ nginx.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βββ jellyfin
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ nginx.nix
βΒ Β βΒ Β βββ service.nix
βΒ Β βββ network
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ dns.nix
βΒ Β βΒ Β βββ firewall.nix
βΒ Β βΒ Β βββ service-fix.nix
βΒ Β βΒ Β βββ start.nix
βΒ Β βββ nginx
βΒ Β βΒ Β βββ acme.nix
βΒ Β βΒ Β βββ address.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ staging.nix
βΒ Β βββ nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ limits.nix
βΒ Β βββ packages
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ system.nix
βΒ Β βΒ Β βββ user.nix
βΒ Β βββ qbt
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ nginx.nix
βΒ Β βΒ Β βββ service.nix
βΒ Β βΒ Β βββ user.nix
βΒ Β βββ searxng
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ engines.nix
βΒ Β βΒ Β βββ nginx.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βΒ Β βββ uwsgi.nix
βΒ Β βββ sops
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ secrets.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βββ ssh
βΒ Β βΒ Β βββ address.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βββ unbound
βΒ Β βΒ Β βββ address.nix
βΒ Β βΒ Β βββ default.nix
βΒ Β βΒ Β βββ settings.nix
βΒ Β βββ vaultwarden
βΒ Β βββ default.nix
βΒ Β βββ nginx.nix
βΒ Β βββ settings.nix
βββ scripts
βββ commit
βββ edit
βββ format
βββ help
βββ init
βββ nixos
βββ perms
βββ purge
βββ repair
βββ serverpush
βββ switch
βββ test
βββ update
66 directories, 280 files
| distro | NixOS |
| packages | nixos-unstable |
| android | nix-on-droid |
| package manager | lix |
| secrets | sops-nix sops |
| bootloader | systemd-boot uboot |
| secureboot | lanzaboote |
| kernel | linux-hardened |
| auditing | auditd |
| shell | bash |
| filesystem | zfs |
| networking | wpa_supplicant |
| dns | unbound |
| audio | pipewire |
| web server | nginx |
| media server | jellyfin |
| display server | wayland |
| compositor | swayfx |
| bar | waybar |
| widgets | eww |
| launcher | rofi |
| notifications | dunst |
| terminal emulator | foot |
| file manager | thunar |
| pdf reader | zathura |
| image viewer | swayimg |
| media player | mpv |
| browser | brave |
| homepage | homepage |
| search engine | searxng |
| bittorrent | qbittorrent-nox |
| anonymity | i2pd oniux tor-browser |
| passwords | vaultwarden |
| text editor | neovim vscodium nano mousepad micro |
| version control | git |
| development | rust python go haskell |
| colorscheme | nord |
| wallpapers | wallpapers |
| gtk theme | Nordic-darker |
| gtk icons | Nordzy-dark |
| gtk cursor | Simp1e-Nord-Dark |
| font | IBM Plex |
| sandboxing | firejail |
| virtualization | qemu virt-manager distrobox |
| optimizations | auto-cpufreq tlp powertop |
| resource monitor | btop htop |
| clipboard | cliphist |
| screenshots | grimshot |
-
laptoprole: Laptop configurationTo replicate just the desktop, see rice.
-
serverrole: Headless home server configuration -
droidrole: nix-on-droid configuration
Three images: minimal, gnome and plasma are included (for installation,
recovery, etc.)
See images for more details.
Usage:
$ nixos [command] [args]
When run with no command, equivalent to:
$ nixos tree -I .git -I .local --filesfirst
When run with a command not listed below, the command is dispatched to
$NIXOS_DIR:
$ nixos vi modules/common/firewall.nix
| Command | laptop |
server |
Description |
|---|---|---|---|
test |
β | β | $ nixos test Test the current configuration. Does not create a boot entry. |
switch |
β | β | $ nixos switch Switch to the current configuration. Creates a boot entry. |
commit |
β | β | $ nixos commit Switch to and commit the current configuration. Creates a boot entry and a Git commit. |
update |
β | β | $ nixos update Update flake inputs in flake.lock. |
format |
β | β | $ nixos format Format the flake using nixfmt. |
perms |
β | β | $ nixos perms Apply correct permissions to all files in the flake. |
purge |
β | β | $ nixos purge Garbage collect old generations. |
repair |
β | β | $ nixos repair Attempt to repair the nix store. |
edit <vars|sops> |
β | β | $ nixos edit vars Edit variables file. $ nixos edit sops Edit sops-nix secrets. |
init <vars|sops> [replace] |
β | β | $ nixos init vars Initialize variables. $ nixos init vars replace Replace current variables. $ nixos init sops Initialize secrets. $ nixos init sops replace Replace current secrets. |
init lanzaboote <create|enroll> |
β | β | $ nixos init lanzaboote create Create lanzaboote keys. See setup docs. $ nixos init lanzaboote enroll Enroll lanzaboote keys. See setup docs. |
init impermanence |
β | β | $ nixos init impermanence Populate the /persist directory for impermanence. See setup docs. |
serverpush <path> |
β | β | $ nixos serverpush /nixos Push the flake to server:/nixos. |
help |
β | β | $ nixos help Show this message and exit. |
See scripts for some detailed examples.
