summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archetypes/collections/desktop/cad.nix2
-rw-r--r--flake.lock45
-rw-r--r--flake.nix5
-rw-r--r--hosts/T495/resources/secrets/wg.yaml8
-rw-r--r--hosts/optiplex/configuration.nix2
-rw-r--r--nixos/default.nix1
-rw-r--r--nixos/wireless.nix22
-rw-r--r--pkgs/immich-frame/default.nix9
-rw-r--r--users/timmy/wifi.nix16
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 = {
diff --git a/flake.lock b/flake.lock
index ffa52a1..17d6bda 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": {
diff --git a/flake.nix b/flake.nix
index e73ab18..b658fae 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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
};
};
}