iwdfor wireless network management.ntpd-rsfor NTP management andautomatic-timezonedfor timezone selection.openssh.nixmodule enables Fail2bandocker.nixmodule with aggressive auto pruning enabledstylix.nixmodule for system-level themingaudio.nixmodule enabling Pipewire, Rtkit, and wiremix.
wheelNeedsPasswordis set tofalsein thenixos-config/modules/default.nix, take care when adding new users belonging to wheel.
- XDG base directory specification adherence (on a best effort basis).
- XDG user directories (all in lowercase).
readlinewith vi-mode and responsive completion settings.bashwith immediate history settings.fzfenabled usingfdas backend.zoxidefor directory jumping (usingfzffor interactive select).yaziwith a shell-wrapper mapped toyy(integrated in turn withfd,ripgrep,zoxideandfzf).tmp.nixmodule for enabling a$HOME/tmpthat gets cleaned on boot, similar to/tmp.
swaywithswaylock.- Sway is autostarted directly from TTY login, no extra login manager required.
- Window focus is conveyed by toggleable inactive window transparency.
- Includes an xdg-portal ready for screen recording.
way-displaysfor automatic display management.
footterminal running in server mode.rofiapplication, exit, emoji, clipboard, screenshot, network and bluetooth launchersstylix.nixmodule for home-level theming, in addition to icon set (Tela Gray), cursor theme (Capitaine), font, and wallpaper selection.- fonts: noto family (+ color emoji and CJK), nerdfonts-symbols-only
selected-conf placeholder needs to match one of the nixosConfigurations listed in the flake.nix, ex. evolve.
All hosts running commands are expected to have flakes enabled. Verify this by running nix flake.
To build the VM image:
nix build .#nixosConfigurations.selected-conf.config.system.build.vmTo then run it with QEMU:
QEMU_KERNEL_PARAMS="console=ttyS0" ./result/bin/run-selected-host-vm -nographic; resetMake sure to remove -nographic for all things GUI.
Based on: https://github.com/nix-community/nixos-anywhere/blob/main/docs/howtos/no-os.md
- Boot from live usb
- Make connect to LAN (ex. with
nmtuifor Wifi). - Get IP address with
ip addr. - Set a password for the
nixosuser withpasswd. - Make sure that the
flake.nix'sdiskNameis the same as the disk name reported bylsblk. - Finally:
_os_config='evolve' # which nixosconfigurations in flake.nix to use
_remote_ip="..." # from ip addr on remote
nix run github:nix-community/nixos-anywhere -- \
--flake ".#$_os_config" \
--target-host "nixos@$_remote_ip" \
# omit if a hardware configuration already exists
--generate-hardware-config nixos-generate-config "./nixos-config/hosts/$_os_config/hardware.nix"You may want to commit any newly generated hardware configurations (hardware.nix) to git.
Rebuild switch from a remote flake:
sudo nixos-rebuild switch --flake github:gibbz00/dotfiles#selected-confOr if already present locally:
# in directory where flake.nix is located
sudo nixos-rebuild switch --flake .#selected-conf