Skip to content

sotormd/nixos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NixOS Configuration Flake

NixOS configuration flake for multiple hosts.

nixos

Contents

  1. Features
  2. Setup
  3. Images
  4. nixos: Flake Helper

Features

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 pulseaudio
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
search engine searxng
bittorrent qbittorrent-nox
anonymity i2pd oniux
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

Setup

  1. laptop role: Laptop configuration

    Setup docs

    To replicate just the desktop, see rice.

  2. server role: Headless home server configuration

    Setup docs

  3. droid role: nix-on-droid configuration

    Setup docs

Images

Three images: minimal, gnome and plasma are included (for installation, recovery, etc.)

See images for more details.

nixos Flake Helper

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

Commands

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.