Gabriel Fontes a587e539e9 feat(system-manager): port networking.wireless and generic DHCP
Run the upstream NixOS wpa_supplicant module under system-manager through a
compat shim. system-manager already reuses nixpkgs' systemdUtils,
environment.etc and userborn, so the unit, the generated config and the
wpa_supplicant user come out unchanged; only four NixOS-only options needed
stubbing, two of which are re-expressed on top of environment.etc.

Extract the wireless config to hosts/wireless.nix so both trees share one
source: they sit at the same depth, so every path resolves identically.
electra's generated wpa_supplicant.conf is now byte-identical to atlas'
except for the country line.

Take over networkd from netplan on electra with the same generic match rules
NixOS uses, which also covers ethernet and USB tethering, neither of which
was configured before. netplan is neutered by masking its generator rather
than uninstalling it, since purging netplan.io would take cloud-init,
ubuntu-minimal and ubuntu-server-minimal with it.

Assisted-by: pi (claude-opus-5)
2026-08-13 16:36:09 -03:00
2021-09-21 20:45:21 -03:00
2023-03-10 13:47:54 -03:00
2026-06-29 00:03:50 -03:00
2026-08-06 13:20:46 -03:00
2021-09-13 03:52:48 -03:00

built with nix hydra status

Foundry

My public infrastructure monorepo: the NixOS/home-manager configuration that runs all my machines, plus the source of the personal projects it deploys. Requires Nix flakes.

Looking for something simpler to start out with flakes? Try my starter config repo.

Repository layout

hosts/nixos/   per-machine NixOS configurations (atlas, alcyone, ...)
hosts/system-manager/ configurations for non-NixOS Linux systems
home/           home-manager configuration (feature-flagged)
modules/        reusable nixos/ and home-manager/ modules
overlays/, pkgs/ package overlays and custom packages (including wallpapers)
lib/            pure-Nix Material You color engine
projects/       my public projects deployed from here (e.g. the m7.rs website)

Highlights:

  • NixOS configurations: desktop, laptop, servers
  • Opt-in persistence through impermanence + blank snapshotting
  • Encrypted single BTRFS partition (with disko for declarative partitioning)
  • Secure Boot via lanzaboote
  • Fully declarative self-hosted stuff
  • Deployment secrets using sops-nix
  • Mesh networked hosts with tailscale and headscale
  • Flexible Home Manager configs through feature flags
  • Extensively configured hyprland environment
  • Declarative theming: wallpapers and a pure-Nix Material You color engine
  • Hydra CI/CD builds every host, serves a binary cache, and hosts auto-upgrade by pull deployment

About the installation

All my computers use a single btrfs (encrypted on all except headless systems) partition, with subvolumes for /nix, a /persist directory (which I opt in using impermanence), swap file, and a root subvolume (cleared on every boot).

Home-manager is used as a NixOS module, integrated via home-manager.users.

Secrets

For deployment secrets (such as user passwords and server service secrets), I'm using the awesome sops-nix. All secrets are encrypted with my personal PGP key (stored on a YubiKey), as well as the relevant systems' SSH host keys.

On my desktop and laptop, I use pass for managing passwords, which are encrypted using (you bet) my PGP key. This same key is also used for mail signing, as well as for SSH'ing around.

Tooling and applications I use

Most relevant user apps daily drivers:

  • hyprland + hypridle + hyprlock
  • waybar
  • helix
  • fish
  • alacritty
  • qutebrowser
  • neomutt + mbsync
  • khal + khard + todoman + vdirsyncer
  • gpg + pass
  • tailscale
  • podman
  • zathura
  • wofi
  • bat + fd + rg
  • kdeconnect

Some of the services I host:

  • hydra
  • jellyfin
  • *arrs (including torrent and usenet)
  • prometheus
  • websites (such as https://m7.rs)
  • minecraft
  • headscale

Nixy stuff:

  • sops-nix
  • impermanence
  • disko
  • lanzaboote
  • home-manager
  • and NixOS and nix itself, of course :)

Let me know if you have any questions about them :)

Unixpornish stuff

fakebusy clean

AI usage note

Since June 2026, I've been trying out LLM assistance in my workflows. So far it feels pretty good; brainstorming helps me a lot with decision paralysis. I'm trying to keep my use bounded and disclosed. I think it's a useful tool, but it should be adopted with care.

I will write a decent blog post about my opinions on AI at some point. The gist is:

  • These things are useful for bounded tasks with good docs and reviews, but suck at owning architecture or accountability
  • There's no going back now that open-weight models run on consumer hardware, we can't uninvent them
  • Boycotting AI does not help by itself; non-use is not a political strategy
  • We need clear LLM policy on projects rather than trying (and failing) to forbid it
  • Disclosure is very important, and trying to pass LLM output off as human-written is disrespectful
  • LLMs should never have been built by scraping and exploiting our art and work
  • If copyright doesn't protect our creations, it shouldn't protect their models; support open-weight models and distillation as harm reduction
  • We need regulation, decentralization, and redistribution of the value LLMs generate
  • Machines can't be horny, thus can't create art; LLMs are for utility, not art or craft. Pay an artist instead

Some bibliography I'd recommend:

S
Description
Personal monorepo. NixOS+home-manager configs, website, and other projects.
Readme MIT
16 MiB
Languages
Nix 48.2%
Java 28.2%
Python 10%
TypeScript 4.9%
Shell 3%
Other 5.6%