From c3c3d6f1fd19a5da015c9a9d3ae5c54f2d177be0 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 26 Aug 2025 21:36:16 -0500 Subject: reogranize files more only working on optiplex for now prepare for home manager refactoring --- archetypes/tjkeller/wifi.nix | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 archetypes/tjkeller/wifi.nix (limited to 'archetypes/tjkeller/wifi.nix') diff --git a/archetypes/tjkeller/wifi.nix b/archetypes/tjkeller/wifi.nix new file mode 100644 index 0000000..32b6ef8 --- /dev/null +++ b/archetypes/tjkeller/wifi.nix @@ -0,0 +1,38 @@ +{ lib, config, ... }: let + cfg = config._archetypes.tjkeller.wifi; +in { + options._archetypes.tjkeller.wifi = { + enable = lib.mkEnableOption "enables wifi"; + }; + + config = lib.mkIf cfg.enable { + networking.wireless = { + enable = true; # Enables wireless support via wpa_supplicant. + userControlled.enable = true; + allowAuxiliaryImperativeNetworks = true; # Networks defined in aux imperitive networks (/etc/wpa_supplicant.conf) + }; + + # Load wpa_supplicant.conf secret config + sops.secrets.wpa_supplicant-conf = { + sopsFile = ./resources/secrets/wpa_supplicant-conf.yaml; + }; + + # Link /etc/wpa_supplicant.conf -> secret config + environment.etc."wpa_supplicant.conf" = { + source = config.sops.secrets.wpa_supplicant-conf.path; + }; + + # This service is a workaround to ensure that secrets are available on + # reboot when the secret keys are on a separate subvolume + systemd.services.npcnix-force-rebuild-sops-hack = { + wantedBy = [ "multi-user.target" ]; + before = [ "wpa_supplicant.service" ]; + serviceConfig = { + ExecStart = "/run/current-system/activate"; + Type = "oneshot"; + Restart = "on-failure"; # because oneshot + RestartSec = "10s"; + }; + }; + }; +} -- cgit v1.2.3