nixcfg
Nix rules everything around me
Overview
- nix configuration for my laptop
s,desktops,sbcs,phones, and cloud servers - nix flake-powered
- guaranteed to be reproducible
- immutable full system configuration (dotfiles, but on steroids)
notes
- some commits may have empty commit messages, this is from me attempting to
use and learn
jj
.
Components
home-manager
for user-based app/desktop configurationsops-nix
for secrets (encrypted at rest, per-host encryption)terranix
for cloud server creation/deletion automation- custom commands for easy gpg-over-ssh usage (
pkgs/commands.nix
)
Repo Layout
(this sometimes drifts, but should be roughly accurate as of April 2023)
cloud
- automation and configuration for cloud servers
- powered by
terranix
docs
- notes to self
- who knows what "great" ideas and tidbits it contains
hosts
- toplevel machine definitions
installer
(meta, iso)- configuration for a custom
x86_64-linux
installer image - includes my SSH key and
sshd
enabled and most used programs - see:
nix build .#images.installer
- configuration for a custom
raisin
(laptop)- former-daily-driver
- Lenovo "Yoga Slim 7 Pro-14ACH5 Laptop (ideapad) - Type 82MS"
- remote (KS, USA)
zrepl
(zfs
) andsyncthing
backup target
xeep
(laptop)- former-former-daily-driver Dell XPS 9370
- remote (MO, USA)
zrepl
(zfs
) andsyncthing
backup target
zeph
(laptop)- current daily-driver
- favorite, all-AMD, laptop ever
- ASUS Zephyrus G14 (2022) - GA402RJ
- dual-booting NixOS, of course, and Windows 11 for casual 120Hz/1600p gaming
misc/
- misc scripts
- buyer beware
mixins/
- individual application configuration (mostly via
home-manager
) - (
libvirt
,prs
/gopass
,git
,gnupg
,spotifyd
,tailscale
,wezterm
, etc)
- individual application configuration (mostly via
pkgs/
- my own "packages"
- custom shell commands (gpg+ssh wrapper, etc)
- tip-of-tree package overrides for:
wezterm
nushell
profiles/
- bits that compose machine "personas"
core.nix
- core bits, see alsomixins/common.nix
interactive.nix
- headless systemsgui.nix
- baseline for GUI systemsgui-wayland.nix
- common tools for wayland/wlroots compositorsgui-sway.nix
- the start of mysway
GUI configurationaddon-dev.nix
- pull devtool's shell deps into systemaddon-laptop.nix
- common laptop bits, power management, etcaddon-asus.nix
- extras for my ASUS laptopuser-cole.nix
- my basecole
user configuration
secrets/
- scripts to manage
sops
forsops-nix
sops-nix
is great... but...sops
is questionable-code-quality near-abandonware
- scripts to manage
shells/
- nix shells for various scenarios
_minimal.nix
- minimal shell baseci.nix
- tools needed to drive CI for this repodevenv.nix
- complete set of tools for Go/Rust/Nix developmentdevtools.nix
- bare-essential dev tools for my dev machinesgstreamer.nix
- old, for tinkering with rust+gstreamer stuffuutils.nix
- experimentation with rust-based coreutils
- nix shells for various scenarios
main.nu
- a homegrown
nushell
(β€οΈ ) script for managing this repo - updates/rebases my flake inputs
- updates/rebases my custom packages to tip-of-branch
- updates the lock file
- a homegrown
Other Interesting Nix Repos
- jtojnar: https://github.com/jtojnar/nixfiles
- particularly of note:
- use of NixGL to use GUI apps built with Nix on other Linuxes: https://github.com/jtojnar/nixfiles/blob/522466da4dd5206c7b444ba92c8d387eedf32a22/hosts/brian/profile.nix#L10-L12
- particularly of note:
- Mic92: https://github.com/Mic92/dotfiles
- in particular:
- https://github.com/Mic92/dotfiles/tree/master/nixos/images
- kexec stuff is neat
- base-config does a Hidden Service + announces over IRC, very cool
- https://github.com/Mic92/dotfiles/tree/master/nixos/images
- in particular:
- cole-h: https://github.com/cole-h/nixos-config
- bqv: https://github.com/bqv/nixos
- nixos-org-configurations:
- in particular:
- configs for building NixOS images containing MacOS VM guests
- in particular: