diff options
| author | Tim Keller <tjk@tjkeller.xyz> | 2026-07-09 18:54:08 -0500 |
|---|---|---|
| committer | Tim Keller <tjk@tjkeller.xyz> | 2026-07-09 18:54:08 -0500 |
| commit | 8692ac2970b16327103c7ccf30303461005ddc76 (patch) | |
| tree | b087f26d228879f7ab21075a179ae0678cbeb648 | |
| parent | cb1655c86a9552a6801c5296e9241204085a59f3 (diff) | |
| parent | cf6782680b604e54ed70368c915cba15ee06ff0b (diff) | |
| download | nixos-8692ac2970b16327103c7ccf30303461005ddc76.tar.xz nixos-8692ac2970b16327103c7ccf30303461005ddc76.zip | |
| -rw-r--r-- | archetypes/collections/desktop/cad.nix | 2 | ||||
| -rw-r--r-- | flake.lock | 45 | ||||
| -rw-r--r-- | flake.nix | 5 | ||||
| -rw-r--r-- | hosts/T495/resources/secrets/wg.yaml | 8 | ||||
| -rw-r--r-- | hosts/optiplex/configuration.nix | 2 | ||||
| -rw-r--r-- | nixos/default.nix | 1 | ||||
| -rw-r--r-- | nixos/wireless.nix | 22 | ||||
| -rw-r--r-- | pkgs/immich-frame/default.nix | 9 | ||||
| -rw-r--r-- | users/timmy/wifi.nix | 16 |
9 files changed, 76 insertions, 34 deletions
diff --git a/archetypes/collections/desktop/cad.nix b/archetypes/collections/desktop/cad.nix index 6b2c26b..177228b 100644 --- a/archetypes/collections/desktop/cad.nix +++ b/archetypes/collections/desktop/cad.nix @@ -9,7 +9,7 @@ in { environment.systemPackages = with pkgs; [ blender freecad - prusa-slicer + orca-slicer ]; # TODO remove once #467783 is resolved environment.sessionVariables = { @@ -67,11 +67,11 @@ ] }, "locked": { - "lastModified": 1780361225, - "narHash": "sha256-wnV9ttf4fPWNonBIQmvlrSlNpQYgx5HgWWd007mwIFA=", + "lastModified": 1783221248, + "narHash": "sha256-ESQnuNHEDChsB4IxoLRhscVahqkDWkTb+qdIz8euYt4=", "owner": "nix-community", "repo": "home-manager", - "rev": "e28654b71096e08c019d4861ca26acb646f583d8", + "rev": "af2beae5f0fae0a4310cc0e6aef2572f56090353", "type": "github" }, "original": { @@ -83,11 +83,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1780203844, - "narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=", + "lastModified": 1783389287, + "narHash": "sha256-0xIy4dVLqq47rA+mRy0hXDfjhQd4E5PoIns/RmB7nR4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4", + "rev": "0ad6f47ea4fe188f4bc8f0380f93ae8523337c6c", "type": "github" }, "original": { @@ -99,11 +99,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1780243769, - "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "lastModified": 1783224372, + "narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", "type": "github" }, "original": { @@ -113,6 +113,26 @@ "type": "github" } }, + "open-bamboo-networking": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1783547722, + "narHash": "sha256-dcBtdSciy9lsQJCauXdAGu31uwswqvIvrlKc+O7HC4k=", + "ref": "refs/heads/master", + "rev": "aa7493d172ca6f1e0322dd894341481f36e004ee", + "revCount": 3, + "type": "git", + "url": "git://git.tjkeller.xyz/open-bamboo-network-plugin-flake" + }, + "original": { + "type": "git", + "url": "git://git.tjkeller.xyz/open-bamboo-network-plugin-flake" + } + }, "pre-commit": { "inputs": { "flake-compat": [ @@ -165,6 +185,7 @@ "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", + "open-bamboo-networking": "open-bamboo-networking", "reposync": "reposync", "sops-nix": "sops-nix" } @@ -176,11 +197,11 @@ ] }, "locked": { - "lastModified": 1777944972, - "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=", + "lastModified": 1783174389, + "narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c591bf665727040c6cc5cb409079acb22dcce33c", + "rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9", "type": "github" }, "original": { @@ -21,6 +21,10 @@ rec { url = "git://git.tjkeller.xyz/hm-reposync"; inputs.nixpkgs.follows = "nixpkgs"; }; + open-bamboo-networking = { + url = "git://git.tjkeller.xyz/open-bamboo-network-plugin-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { nixpkgs, home-manager, ... }@inputs: let @@ -29,6 +33,7 @@ rec { homeManagerModules = [ inputs.arkenfox.hmModules.arkenfox inputs.reposync.hmModules.reposync + inputs.open-bamboo-networking.hmModules.open-bamboo-networking ./home-manager ]; mkNixosConfiguration = system: hostname: nixpkgs.lib.nixosSystem { diff --git a/hosts/T495/resources/secrets/wg.yaml b/hosts/T495/resources/secrets/wg.yaml index 565f407..7581228 100644 --- a/hosts/T495/resources/secrets/wg.yaml +++ b/hosts/T495/resources/secrets/wg.yaml @@ -1,5 +1,5 @@ -wg0: ENC[AES256_GCM,data:1Yo+a2u7bzLAtfhOkPEVEH98v9rem4kgvSSOsdATAcoGtOVs0aqeb5kAxYKvsDz85NXulv2/2EtuN7OEynLnHSkHNhQIqgopNhJ6gd0ewGHRTQEgzsVGReI11Abu/hguVNuO37Cp1+N6Qq02bCV/mzNMqkQYPO2CuuEp16XaSTUb5Xe7KVnjsE61CKEEEJWsikxpM7Mc7cB19EOH+295Y5fqCpT4UmXLdhuCP6RcVfyGib4yVGzyO2YeIBmHmAlYkrBZ3C3SN+F0gNQK7pqJq+eUfY2Kjd9d57uteJWfQ2H83fAFjU6bPprrOoDQbm0rVI/HBX+/4j+z/H2gYfkaWxzsIRZdrbG19EE70DuBPbN6yqBKJXynUdH4NjKv36zHAlq164L5M2iPW/tXCN6iuA9zIqTDJR1dzAFNJ8Kv9kvit+RI6cxkE9C0a9lIsgh8HHbCthTW3L08arEFy4eV3fKUEOGDMKi+lHHcJBojcUuPhk8AzWE4Asa27zAK2AAu1NkXIvJ0ldmJ1Tuqki5Fp+j8hpOkEz3g7CtXyKTbJnE=,iv:wKAtHSd7ho9tfi7BCr2LI6zMjHKDjVrYWML7hzM6bt0=,tag:v67zn/73MKnCjVLLiXk9RQ==,type:str] -wg1: ENC[AES256_GCM,data:XS1SaxWXe9RK0CbapzeEP5ccbAIj8C1S1RkISt4ecltv9RrzFfyUC4/RpsmVSB4ZSmVxvvCdY0+10LdCf4GNW4vhAyFaNS4i9aF6dCX1zkeaPQjQOQFTdswPrSYdkTer4ZNdKm4aC2SyAWCt2yw/P4YE4ItVJ3yVEq0zFGyGBcKjBmETFdhnipQm0ENInKd2GY3MPgOM+RchD0bCETeNDpAF5owPWrhSPmlNkekrY15GMpnAN0mXDR54Ow2AH/tkhRVlWrrP1GvBpuXGQJv7HyIa9w40JFkdQUyh3VnbFyNq8W8TfsSXxP7gzhGQB+WPZCZxwCorVEOXyRczGsfsOaFE4fYGVA56fv9le4d2RuQ+hiubeS53mIWpUDLQZXQFapKDFWjEtd9dLQrkAv1vxrFv3jgVdapmpfLjeRvCqzA/QMZmrUEJ1mSm+Bh5nY+z0kx6YNq8+aBMS+F6knmM2GZyw+k6qBxm/8CxTXR/kylp004lz9AXbMl9DQ==,iv:exw+b2Zws0rriO88GtlKpB2LxiH84zYfRLVxkKABj+c=,tag:sFLONNemPj3UWvTP3q4Upw==,type:str] +wg0: ENC[AES256_GCM,data:ZWvG10UxVMb7e8wxTgQqybp2NsziJdTRDqF/ZJ1N3bf220P3l59jQcHyHi7l9UFbUhErM/zxXc0/B7AE1TPzcFGZRxqQC3TenCCW8RuKkm9bXcctseXtLqRr/EYRH07952dTzvdN/eBxLXLPqgi/K1qnuWBLS2zf/WKAJyCFsKPlzhH6lA7+VAM16Q9m+0nktruQ34DMok1LBlN7DN/gZkJWx6Ipzst4f9lrDiSm1QNmxskGUqDdPWednIJ8d8iW2j5xFBgzE0iUyZu0VwuOqP2ioUTYLiLGbx2/XrRXyz66u5gx1agBtpeAirWmNcmJlDl8olik64tXQoemHUHXQokpsuR1ENnm2DFqB1lVbXA3Q00cyzYX08cii7olGHKbVaty2n4RMAFwTBh2fRYs4LsH+cyn4umhLkOhUEbFInujrA5vVltQv9h/r4Y22osBgVNuSQ4I5hl4d348yc45yCENnW6iSs8Diu141l+IbxvQPIpbR462ctYtM+TRJW4AFbgPUdHrRD7DrURnyP9ZePSIU/1pPFZNeNJjYwDETXaz,iv:WLgAIxHhKLgw8TGfuXTlh7rkcjIawYjb3J6mo3sRSmE=,tag:b7tZzypGa8EmUinCJcDkoQ==,type:str] +wg1: ENC[AES256_GCM,data:MCojgM00HJuTgY+K6KBUnDqH4Y8Jerc37vnYO4SC/srlNXxp5QKAuyTDwb7bjmGboyOHq//GLbRMDN5vZEeUQNGyjsycElmSl76bcLS2XPdGrbxGZD7HQY9PY+Z0V1avwVovRrITfG2irffnVxqfis8R5GBOovy/MRhyjG8B6vhastYoGp1ncAmAV+QsUGn/MTeKr+MpZ1Q+SGyeu8gAvPknOEzrR8WqK0ySbWKCQjeEe38kLNwhSNI1cp4Md02dskNUWnVKRyvfXOuYoPsGAmhVikZ+C4yFlndEJoQ5IJPbTO0mv2394bKtflCyB2hnerrTd+NaZcRgPP72Lvw3gDmx7olweL7f2uzr5Vs4NO1AIWcw/MkJxW2UU4GzHbJZM7H3b/IUY1+y8UDEk4rtBT9t+M5LapuVbpagwulIP7+O7Bjsgb4ZJxaGDjtUe3JcUgMDRAexDa7lioDZMpWT5UPRvUczfncqXs+b40vo02eZqiAxtWVK/8587uo=,iv:lsCA/USQc6ADWdRVYIQHXQtdtukEf7cXNTXIKzlynDU=,tag:xlW4MCIwMC8A8f2maHhPQg==,type:str] sops: age: - enc: | @@ -11,7 +11,7 @@ sops: YJkmDZzMcXikXXiro96AprP9dXJXvMPKYPGl2Zsal8PlGFPBoHW2GA== -----END AGE ENCRYPTED FILE----- recipient: age1w80rc0dnuu8nw99gw64c596qqetm78jdnsqajr0u7ephykekr39qfz8vnv - lastmodified: "2026-06-19T19:01:04Z" - mac: ENC[AES256_GCM,data:hRxFyQG208ModSfDG704zPirvI2NpyTNVr+fQ0umBwWcpNjvrnhkACDEoBIn7Q8VkAfizoVzKuXcsAcpbQnEQPat0OIfFtKpQQlU/Oh5xiihWlQRInIlnuvnR0n2chS9Ychc6eCdtlPQcI94bQz9Ai/5XEgspUVG2SQCELjsnnY=,iv:dbNYoxfSnr+G8vskCaTQ7NutiQ/rjKYUo79s2jcsae4=,tag:hgZUqVw6OMiiV5crQ1zdxw==,type:str] + lastmodified: "2026-06-19T19:30:00Z" + mac: ENC[AES256_GCM,data:tqZqi1l/15EAq/aqiXHmmi1aPUrdKJiK7pQZa5bUOdThfB3CVIQ4s0lfvybhMJfU6gbuiGih/Umr0bJ9joaFozFn/mPPUj7sjuqzHk1bxMG3qp1kHmmegAVBtjv0Fht62N1MFtH8woG3k+iRmd0ndTdFCMa0OVDvsCzw3t11wbw=,iv:/mQWM769XROsm6MEHpEsX8TiBEQd6PWODkb9CkH0eZY=,tag:oMObl25mPwPcqluWwUefcQ==,type:str] unencrypted_suffix: _unencrypted version: 3.13.1 diff --git a/hosts/optiplex/configuration.nix b/hosts/optiplex/configuration.nix index 5108e72..cef632e 100644 --- a/hosts/optiplex/configuration.nix +++ b/hosts/optiplex/configuration.nix @@ -103,6 +103,8 @@ subpixelRendering = "rgb"; hinting = "none"; }; + # Enable open-bamboo-networking plugin for OrcaSlicer + programs.openBambooNetworking.enable = true; }; system.stateVersion = "25.11"; diff --git a/nixos/default.nix b/nixos/default.nix index 2d70630..ea8a317 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -22,6 +22,7 @@ ./powerkeys.nix ./secrets.nix ./suspend.nix + ./wireless.nix ./zshenv.nix ]; } diff --git a/nixos/wireless.nix b/nixos/wireless.nix new file mode 100644 index 0000000..22c759f --- /dev/null +++ b/nixos/wireless.nix @@ -0,0 +1,22 @@ +{ config, lib, ... }: let + cfg = config.networking.wireless; + mkCredential = cred: file: "${cred}:${file}"; + mkCredentialPath = cred: _: "/run/credentials/wpa_supplicant.service/${cred}"; +in { + options.networking.wireless = { + _extraSecretConfigs = lib.mkOption { + type = lib.types.attrsOf lib.types.str; + description = "extra config files loaded into systemd credentials"; + default = {}; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.wpa_supplicant.serviceConfig = { + LoadCredential = lib.mapAttrsToList mkCredential cfg._extraSecretConfigs; + }; + networking.wireless = { + extraConfigFiles = lib.mapAttrsToList mkCredentialPath cfg._extraSecretConfigs; + }; + }; +} diff --git a/pkgs/immich-frame/default.nix b/pkgs/immich-frame/default.nix index 598ffa3..9c2c0f0 100644 --- a/pkgs/immich-frame/default.nix +++ b/pkgs/immich-frame/default.nix @@ -4,21 +4,20 @@ python3Packages, buildNpmPackage, }: - let - version = "0.3.1"; + version = "0.4.1"; src = fetchgit { url = "https://git.tjkeller.xyz/immich-frame"; tag = "v${version}"; - hash = "sha256-xDZAPprXRDRxZ8oJdskpijkO9DK6wzEn48vD9bBdCVY="; + hash = "sha256-1E//uhk/egkt5y1XMn52EHumdgswxq45bwntNIoCeRM="; }; frontend = buildNpmPackage { inherit version src; pname = "immich-frame-frontend"; - npmBuildScript = [ "build" ]; - npmDepsHash = "sha256-DGQlzgQoRCrYp6Y+WnDmG/QE92v6E3MT9y0bj8lBTfc="; + npmWorkspace = "src/client"; + npmDepsHash = "sha256-/8dHzpqvnDZb+SV9O/GvTyspKLaPDs4vt3QrzoLsyEI="; installPhase = '' mkdir -p $out diff --git a/users/timmy/wifi.nix b/users/timmy/wifi.nix index 8c762b0..ab5332f 100644 --- a/users/timmy/wifi.nix +++ b/users/timmy/wifi.nix @@ -6,20 +6,12 @@ in { }; 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; - }; + 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; + networking.wireless = { + enable = true; # Enables wireless support via wpa_supplicant. + _extraSecretConfigs.networks = config.sops.secrets.wpa_supplicant-conf.path; # Load secret network config via systemd credential }; }; } |
