nix configuration for
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Colin b6685c9e6c
refactor: move `konsole` from moby/default.nix -> gui/phosh.nix
13 hours ago
hosts refactor: move `konsole` from moby/default.nix -> gui/phosh.nix 13 hours ago
modules sway: specify dependent packages more idiomatically, and fix bug where phosh wasn't actually shipping its dependents 22 hours ago
nixpatches flake update: nixpkgs 2023-01-25 -> 2023-02-01; sops-nix 2 days ago
overlays pins: remove dead nheko code 5 days ago
pkgs remove unused custom signaldctl package (it has been upstreamed) 1 week ago
scripts bluetooth: accept that LinkKeys are device/host-specific and stop trying to share them across machines 4 weeks ago
secrets servo: wireguard secret is auto-generated 2 weeks ago
templates/python-data python-data template: add requests module 1 month ago
.gitignore move secrets to a subdirectory, for improved overrides 8 months ago
.sops.yaml moby: enable a statically-assigned but encrypted password 3 months ago
flake.lock flake update: nixpkgs 2023-01-25 -> 2023-02-01; sops-nix 2 days ago
flake.nix flake: remove unused nixpkgs-stable argument. we can re-add it when needed 5 days ago readme: fix some outdated info 4 weeks ago

to deploy:

nixos-rebuild --flake ".#servo" {build,switch}

if the target is the same as the host, nix will grab the hostname automatically:

nixos-rebuild --flake . {build,switch}

more options (like building packages defined in this repo):

nix flake show


i use sops for secrets. see hosts/common/secrets.nix for some tips.

building images

to build a distributable image (GPT-formatted image with rootfs and /boot partition):

nix build ./#imgs.lappy

this can then be dd'd onto a disk and directly booted from a EFI system. there's some post-processing to do before running a rebuild on the deployed system (deploying ssh keys, optionally changing fs UUIDs, etc). refer to flake.nix for more details.

building packages

build anything with

nix build .#<pkgname>

specifically, i pass the full package closure to the legacyPackages flake output. that includes both my own packages and upstream packages.

on the other hand the packages output contains only my own packages.

in addition, my packages are placed into both the global scope and a sane scope. so use the scoped path when you want to be explicit.

nix build sane.linux-megous

using this repo in your own config

this should be a pretty "standard" flake. just reference it, and import either

  • nixosModules.sane (for the modules)
  • overlays.pkgs (for the packages)

nixosModules.sane corresponds to everything in the modules/ directory. it's a mix of broad and narrow scope options. e.g. sane.fs is a completely standalone thing, whereas sane.web-browser is highly personalized and doesn't really make sense to export. regardless of scope, i do try to ensure that everything in modules/ is hidden behind some enable flag so that the disorganization isn't that critical.


if you want to contact me for questions, or collaborate to split something useful into a shared repo, etc, you can reach me via any method listed here.