diff options
| -rw-r--r-- | .sops.yaml | 9 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/default.nix | 5 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/niri.nix | 8 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/shell/default.nix | 22 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/shell/quickshell/Bar.qml | 10 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/shell/quickshell/Services/Brightness.qml | 2 | ||||
| -rw-r--r-- | hosts/skadhi/fs.nix | 1 | ||||
| -rw-r--r-- | hosts/skadhi/hw.nix | 2 | ||||
| -rw-r--r-- | hosts/skadhi/networking/default.nix | 8 | ||||
| -rw-r--r-- | modules/nix-access-tokens/default.nix | 2 | ||||
| -rw-r--r-- | modules/nix-access-tokens/nix.conf | 20 | ||||
| -rw-r--r-- | modules/yggdrasil-wg/default.nix | 23 | ||||
| -rw-r--r-- | modules/yggdrasil-wg/hosts/4/skadhi.priv | 18 | ||||
| -rw-r--r-- | modules/yggdrasil-wg/hosts/4/skadhi.pub | 1 | ||||
| -rw-r--r-- | modules/yggdrasil-wg/hosts/6/skadhi.priv | 18 | ||||
| -rw-r--r-- | modules/yggdrasil-wg/hosts/6/skadhi.pub | 1 | ||||
| -rw-r--r-- | system-profiles/tmpfs-root.nix | 46 |
17 files changed, 137 insertions, 59 deletions
| @@ -3,6 +3,7 @@ keys: | |||
| 3 | - &machine_surtr age19a7j77w267z04zls7m28a8hj4a0g5af6ltye2d5wypg33c3l89csd4r9zq | 3 | - &machine_surtr age19a7j77w267z04zls7m28a8hj4a0g5af6ltye2d5wypg33c3l89csd4r9zq |
| 4 | - &machine_vidhar age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l | 4 | - &machine_vidhar age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l |
| 5 | - &machine_sif age1fj65apkhfkrwyv5tx6zcs9nkjg8267fy733qph30sc7zfn7vapjqkd5kne | 5 | - &machine_sif age1fj65apkhfkrwyv5tx6zcs9nkjg8267fy733qph30sc7zfn7vapjqkd5kne |
| 6 | - &machine_skadhi age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e | ||
| 6 | 7 | ||
| 7 | creation_rules: | 8 | creation_rules: |
| 8 | - path_regex: ^hosts/surtr/email/ca | 9 | - path_regex: ^hosts/surtr/email/ca |
| @@ -34,4 +35,10 @@ creation_rules: | |||
| 34 | - age: [ *admin_gkleen, *machine_sif ] | 35 | - age: [ *admin_gkleen, *machine_sif ] |
| 35 | - path_regex: ^modules/nix-access-tokens/ | 36 | - path_regex: ^modules/nix-access-tokens/ |
| 36 | key_groups: | 37 | key_groups: |
| 37 | - age: [ *admin_gkleen, *machine_sif, *machine_surtr, *machine_vidhar ] | 38 | - age: [ *admin_gkleen, *machine_sif, *machine_skadhi, *machine_surtr, *machine_vidhar ] |
| 39 | - path_regex: ^hosts/skadhi/ | ||
| 40 | key_groups: | ||
| 41 | - age: [ *admin_gkleen, *machine_skadhi ] | ||
| 42 | - path_regex: skadhi\/?[^\/]*$ | ||
| 43 | key_groups: | ||
| 44 | - age: [ *admin_gkleen, *machine_skadhi ] | ||
diff --git a/accounts/gkleen@skadhi/default.nix b/accounts/gkleen@skadhi/default.nix index 553eabd5..18e23131 100644 --- a/accounts/gkleen@skadhi/default.nix +++ b/accounts/gkleen@skadhi/default.nix | |||
| @@ -42,6 +42,11 @@ in { | |||
| 42 | 42 | ||
| 43 | security.pam.services.quickshell = {}; | 43 | security.pam.services.quickshell = {}; |
| 44 | 44 | ||
| 45 | services.upower.enable = true; | ||
| 46 | environment.persistence."/persistent".directories = [ | ||
| 47 | "/var/lib/upower" | ||
| 48 | ]; | ||
| 49 | |||
| 45 | home-manager.users.${userName} = { sysConfig, config, ... }: { | 50 | home-manager.users.${userName} = { sysConfig, config, ... }: { |
| 46 | imports = [ | 51 | imports = [ |
| 47 | flakeInputs.nix-index-database.homeModules.nix-index | 52 | flakeInputs.nix-index-database.homeModules.nix-index |
diff --git a/accounts/gkleen@skadhi/niri.nix b/accounts/gkleen@skadhi/niri.nix index b30c5701..0ae76e5c 100644 --- a/accounts/gkleen@skadhi/niri.nix +++ b/accounts/gkleen@skadhi/niri.nix | |||
| @@ -540,10 +540,6 @@ in { | |||
| 540 | (flag "variable-refresh-rate") | 540 | (flag "variable-refresh-rate") |
| 541 | ]) | 541 | ]) |
| 542 | 542 | ||
| 543 | (plain "debug" [ | ||
| 544 | (sleaf "render-drm-device" "/dev/dri/by-path/pci-0000:00:02.0-render") | ||
| 545 | ]) | ||
| 546 | |||
| 547 | (plain "animations" [ | 543 | (plain "animations" [ |
| 548 | (sleaf "slowdown" 0.5) | 544 | (sleaf "slowdown" 0.5) |
| 549 | (plain "workspace-switch" [(flag "off")]) | 545 | (plain "workspace-switch" [(flag "off")]) |
| @@ -552,8 +548,8 @@ in { | |||
| 552 | (plain "layout" [ | 548 | (plain "layout" [ |
| 553 | (sleaf "gaps" 8) | 549 | (sleaf "gaps" 8) |
| 554 | (plain "struts" [ | 550 | (plain "struts" [ |
| 555 | (sleaf "left" 26) | 551 | (sleaf "left" 2) |
| 556 | (sleaf "right" 26) | 552 | (sleaf "right" 2) |
| 557 | (sleaf "top" 0) | 553 | (sleaf "top" 0) |
| 558 | (sleaf "bottom" 0) | 554 | (sleaf "bottom" 0) |
| 559 | ]) | 555 | ]) |
diff --git a/accounts/gkleen@skadhi/shell/default.nix b/accounts/gkleen@skadhi/shell/default.nix index 09eb6863..d38356d3 100644 --- a/accounts/gkleen@skadhi/shell/default.nix +++ b/accounts/gkleen@skadhi/shell/default.nix | |||
| @@ -79,17 +79,17 @@ | |||
| 79 | typeset sources=($srcs) | 79 | typeset sources=($srcs) |
| 80 | 80 | ||
| 81 | mkdir -p $out | 81 | mkdir -p $out |
| 82 | magick ''${sources[0]} -crop 10000x5625+0+79 +repage -define webp:target-size=10000000 $out/carinanebula3.webp | 82 | magick ''${sources[0]} -crop 8702x5801+251+0 +repage -define webp:target-size=10000000 $out/carinanebula3.webp |
| 83 | magick ''${sources[1]} -crop 6716x3778+329+80 +repage -define webp:target-size=10000000 $out/pillarsofcreation_composite.webp | 83 | magick ''${sources[1]} -crop 7131x4754+0+166 +repage -define webp:target-size=10000000 $out/pillarsofcreation_composite.webp |
| 84 | magick ''${sources[2]} -crop 10000x5625+0+79 +repage -define webp:target-size=10000000 $out/weic2212a.webp | 84 | magick ''${sources[2]} -crop 8675x5783+497+0 +repage -define webp:target-size=10000000 $out/weic2212a.webp |
| 85 | magick ''${sources[3]} -crop 7650x4302+1166+389 +repage -define webp:target-size=10000000 $out/weic2415a.webp | 85 | magick ''${sources[3]} -crop 7657x5105+1158+618 +repage -define webp:target-size=10000000 $out/weic2415a.webp |
| 86 | magick ''${sources[4]} -crop 8732x4912+0+434 +repage -define webp:target-size=10000000 $out/weic2330a.webp | 86 | magick ''${sources[4]} -crop 7582x5055+0+2253 +repage -define webp:target-size=10000000 $out/weic2330a.webp |
| 87 | magick ''${sources[5]} -crop 5302x2982+636+0 +repage -define webp:target-size=10000000 $out/weic2426a.webp | 87 | magick ''${sources[5]} -crop 4473x2982+1018+0 +repage -define webp:target-size=10000000 $out/weic2426a.webp |
| 88 | magick ''${sources[6]} -crop 4328x2434+0+906 +repage -define webp:target-size=10000000 $out/weic2503a.webp | 88 | magick ''${sources[6]} -crop 4073x2716+147+1709 +repage -define webp:target-size=10000000 $out/weic2503a.webp |
| 89 | magick ''${sources[7]} -crop 4152x2335+0+666 +repage -define webp:target-size=10000000 $out/weic2506a.webp | 89 | magick ''${sources[7]} -crop 3626x2417+526+811 +repage -define webp:target-size=10000000 $out/weic2506a.webp |
| 90 | magick ''${sources[8]} -crop 4320x2430+0+0 +repage -define webp:target-size=10000000 $out/weic2514a.webp | 90 | magick ''${sources[8]} -crop 4320x2880+0+965 +repage -define webp:target-size=10000000 $out/weic2514a.webp |
| 91 | magick ''${sources[9]} -crop 5863x3298+0+477 +repage -define webp:target-size=10000000 $out/weic2425c.webp | 91 | magick ''${sources[9]} -crop 5863x3909+0+326 +repage -define webp:target-size=10000000 $out/weic2425c.webp |
| 92 | magick ''${sources[10]} -crop 3990x2244+0+1379 +repage -define webp:target-size=10000000 $out/weic2605c.webp | 92 | magick ''${sources[10]} -rotate 90 -crop 4536x3024+1+611 +repage -define webp:target-size=10000000 $out/weic2605c.webp |
| 93 | 93 | ||
| 94 | runHook postBuild | 94 | runHook postBuild |
| 95 | ''; | 95 | ''; |
diff --git a/accounts/gkleen@skadhi/shell/quickshell/Bar.qml b/accounts/gkleen@skadhi/shell/quickshell/Bar.qml index 33909884..fdaa8f56 100644 --- a/accounts/gkleen@skadhi/shell/quickshell/Bar.qml +++ b/accounts/gkleen@skadhi/shell/quickshell/Bar.qml | |||
| @@ -25,8 +25,8 @@ PanelWindow { | |||
| 25 | right: true | 25 | right: true |
| 26 | } | 26 | } |
| 27 | margins { | 27 | margins { |
| 28 | left: bar.haveMaximizedWindow ? 0 : 26 + 8 | 28 | left: bar.haveMaximizedWindow ? 0 : 8 + 2 |
| 29 | right: bar.haveMaximizedWindow ? 0 : 26 + 8 | 29 | right: bar.haveMaximizedWindow ? 0 : 8 + 2 |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | implicitHeight: 21 | 32 | implicitHeight: 21 |
| @@ -35,11 +35,7 @@ PanelWindow { | |||
| 35 | property bool haveScreenshare: Array.from(NiriService.casts).some(cast => cast.target.Output?.name == bar.screen.name) | 35 | property bool haveScreenshare: Array.from(NiriService.casts).some(cast => cast.target.Output?.name == bar.screen.name) |
| 36 | 36 | ||
| 37 | Rectangle { | 37 | Rectangle { |
| 38 | color: { | 38 | color: Qt.rgba(bar.haveScreenshare ? 0.2 : 0, 0, 0, bar.haveMaximizedWindow ? 1 : 0.75) |
| 39 | if (bar.haveScreenshare) | ||
| 40 | return bar.haveMaximizedWindow ? Qt.rgba(0.2, 0, 0, 1) : Qt.rgba(0.2, 0, 0, 0.75); | ||
| 41 | return bar.haveMaximizedWindow ? "black" : Qt.rgba(0, 0, 0, 0.75); | ||
| 42 | } | ||
| 43 | anchors.fill: parent | 39 | anchors.fill: parent |
| 44 | // bottomLeftRadius: 8 | 40 | // bottomLeftRadius: 8 |
| 45 | // bottomRightRadius: 8 | 41 | // bottomRightRadius: 8 |
diff --git a/accounts/gkleen@skadhi/shell/quickshell/Services/Brightness.qml b/accounts/gkleen@skadhi/shell/quickshell/Services/Brightness.qml index f3ae6804..76e8c08d 100644 --- a/accounts/gkleen@skadhi/shell/quickshell/Services/Brightness.qml +++ b/accounts/gkleen@skadhi/shell/quickshell/Services/Brightness.qml | |||
| @@ -10,7 +10,7 @@ Singleton { | |||
| 10 | id: root | 10 | id: root |
| 11 | 11 | ||
| 12 | property string subsystem: "backlight" | 12 | property string subsystem: "backlight" |
| 13 | property string device: "intel_backlight" | 13 | property string device: "amdgpu_bl1" |
| 14 | 14 | ||
| 15 | property real currBrightness | 15 | property real currBrightness |
| 16 | property real exponent: 4 | 16 | property real exponent: 4 |
diff --git a/hosts/skadhi/fs.nix b/hosts/skadhi/fs.nix index 64d49f7d..73191aa9 100644 --- a/hosts/skadhi/fs.nix +++ b/hosts/skadhi/fs.nix | |||
| @@ -62,6 +62,7 @@ | |||
| 62 | mkdir $out | 62 | mkdir $out |
| 63 | install -d ${lib.concatMapStringsSep " " (p: "$out/${p}") (dirs ++ subvols)} | 63 | install -d ${lib.concatMapStringsSep " " (p: "$out/${p}") (dirs ++ subvols)} |
| 64 | install -m 0700 -d ${lib.concatMapStringsSep " " (p: "$out/${p}") restricted} | 64 | install -m 0700 -d ${lib.concatMapStringsSep " " (p: "$out/${p}") restricted} |
| 65 | ln -s /etc/zoneinfo/UTC /persistent/etc/localtime | ||
| 65 | '')) | 66 | '')) |
| 66 | ] ++ lib.concatMap (p: ["--subvol" p]) (subvols ++ restricted); | 67 | ] ++ lib.concatMap (p: ["--subvol" p]) (subvols ++ restricted); |
| 67 | subvolumes = { | 68 | subvolumes = { |
diff --git a/hosts/skadhi/hw.nix b/hosts/skadhi/hw.nix index ad353208..687f04d8 100644 --- a/hosts/skadhi/hw.nix +++ b/hosts/skadhi/hw.nix | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ]; | 5 | ]; |
| 6 | 6 | ||
| 7 | config = { | 7 | config = { |
| 8 | hardware.framework.laptop13.audioEnhancement.enable = true; | 8 | hardware.framework.laptop13.audioEnhancement.enable = false; |
| 9 | hardware.enableRedistributableFirmware = true; | 9 | hardware.enableRedistributableFirmware = true; |
| 10 | services.fstrim.enable = false; | 10 | services.fstrim.enable = false; |
| 11 | 11 | ||
diff --git a/hosts/skadhi/networking/default.nix b/hosts/skadhi/networking/default.nix index ea5a62e2..4d6edd97 100644 --- a/hosts/skadhi/networking/default.nix +++ b/hosts/skadhi/networking/default.nix | |||
| @@ -26,5 +26,13 @@ | |||
| 26 | useDHCP = false; | 26 | useDHCP = false; |
| 27 | useNetworkd = true; | 27 | useNetworkd = true; |
| 28 | }; | 28 | }; |
| 29 | |||
| 30 | environment.etc."NetworkManager/dnsmasq.d/yggdrasil.conf" = { | ||
| 31 | text = '' | ||
| 32 | server=/yggdrasil/2a03:4000:52:ada:1:1::@yggdrasil | ||
| 33 | server=/141.10.in-addr.arpa/2a03:4000:52:ada:1:1::@yggdrasil | ||
| 34 | server=/1.0.0.0.a.d.a.0.2.5.0.0.0.0.0.4.3.0.a.2.ip6.arpa/2a03:4000:52:ada:1:1::@yggdrasil | ||
| 35 | ''; | ||
| 36 | }; | ||
| 29 | }; | 37 | }; |
| 30 | } | 38 | } |
diff --git a/modules/nix-access-tokens/default.nix b/modules/nix-access-tokens/default.nix index a3b7abfa..fbfb31fc 100644 --- a/modules/nix-access-tokens/default.nix +++ b/modules/nix-access-tokens/default.nix | |||
| @@ -4,7 +4,7 @@ let | |||
| 4 | cfg = config.nix.includeAccessTokens; | 4 | cfg = config.nix.includeAccessTokens; |
| 5 | in { | 5 | in { |
| 6 | options = { | 6 | options = { |
| 7 | nix.includeAccessTokens.enable = lib.mkEnableOption "including access tokens in nix.conf" // { default = lib.elem hostName ["sif" "surtr" "vidhar"]; }; | 7 | nix.includeAccessTokens.enable = lib.mkEnableOption "including access tokens in nix.conf" // { default = lib.elem hostName ["sif" "skadhi" "surtr" "vidhar"]; }; |
| 8 | }; | 8 | }; |
| 9 | 9 | ||
| 10 | config = lib.mkIf cfg.enable { | 10 | config = lib.mkIf cfg.enable { |
diff --git a/modules/nix-access-tokens/nix.conf b/modules/nix-access-tokens/nix.conf index 80d5641c..4d933eaa 100644 --- a/modules/nix-access-tokens/nix.conf +++ b/modules/nix-access-tokens/nix.conf | |||
| @@ -3,20 +3,24 @@ | |||
| 3 | "sops": { | 3 | "sops": { |
| 4 | "age": [ | 4 | "age": [ |
| 5 | { | 5 | { |
| 6 | "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866", | 6 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiWDlPazhId0RvZHZKbU9C\nQmR4S293KytMOXI0MmYrc2xxcVBtY0NxL2xjClpJMmdUNE41SVIyeFA3czkwek0r\nckRwVGdWYkJkVWRtRVlxcDFkMmRDSGsKLS0tIGtyOHhMRUR5aVlBQzkrYkh4dVhE\nWHNCUnZCN0NhZ0trQmJaTUJDb3ROMlUKvH5z4Fj1P5zMcwD6UlLT531Ggrd4vEmo\ne2uOmolQ/jcStDd4IMniPEfjqcxfSEtkb7fpB1Rhby0mT6Gx68GtHw==\n-----END AGE ENCRYPTED FILE-----\n", |
| 7 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5NkZUUGI3M2pQYWVXeFV6\na2h2czRTeUJFekJCS012YlBkL1FDdTd3ekZ3ClJsTVh0R2JQM0Jua1JjL285RVA1\nRHhlbjlLdmNBUXVLelFGY2NGYWpLejQKLS0tIDBUWUhJNm8zWGoyQ0pBYnV1ZjBh\ndktNRkNPS1lpWXFITC81aEZJbXlONk0Km2c1xVKwSankaVs7O/utGJwRRX395upz\ndPbsOElTnbGmkb0esGtvGSPboTvK+gjn9w/GhaPyTnNDoos7GaIfyg==\n-----END AGE ENCRYPTED FILE-----\n" | 7 | "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866" |
| 8 | }, | 8 | }, |
| 9 | { | 9 | { |
| 10 | "recipient": "age1fj65apkhfkrwyv5tx6zcs9nkjg8267fy733qph30sc7zfn7vapjqkd5kne", | 10 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPNmowYmNTWVNwYk9UNzhI\neXllbWNCWEl4QXk1SUxLcjY5Vm5HdjBCdVRzClh2ZkY0bGUrNE9rUnhNTVdDT2tl\nTjFBYURMdGNWSjZZSDQzVXRBL2xRNXcKLS0tIEk0U05jSWQrUGoraVdxTU5QdEZ6\nQlprZlN5SjRTQzhycERsSVhiZDJmekUKUVzegV7zpd3woOeyDw+Ezpyd3D3xH0SV\nyt/UspleE/+sDRPuJTQKx6wA/k7e+hPJjGdjgMgzGnuCh+dfwNw2lw==\n-----END AGE ENCRYPTED FILE-----\n", |
| 11 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6bS9iY2lua3U4U3lJa1pK\nSlZNMmFZMEU5M1V2bWRjaXIwajZJVDJPMlM4Cmd3TTNFWjVuSGdtbC9iODltTS91\nOE5XOEVEQkh0SFpVVW5jc3IzbzNpTmMKLS0tIEtrSU54QUVPa2tBZDhLYlRFWitR\nc2x6MFlxL0tobDJTek42dEcyZXpoWDgKXzQfU+o6FkbJBwmm6oaHu4sDPi822uUR\n5VY6gY/h3g2kM4cuS03Q4NJmeRxuh7cx0UqGU3j5Mf8muE1LHpYEPw==\n-----END AGE ENCRYPTED FILE-----\n" | 11 | "recipient": "age1fj65apkhfkrwyv5tx6zcs9nkjg8267fy733qph30sc7zfn7vapjqkd5kne" |
| 12 | }, | 12 | }, |
| 13 | { | 13 | { |
| 14 | "recipient": "age19a7j77w267z04zls7m28a8hj4a0g5af6ltye2d5wypg33c3l89csd4r9zq", | 14 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwZW51Q0RWdmtyZmdmNy9H\nMWJGSkxlbXRSc0U1eVhFSm1kZWlhaEl3UUVRCnNWWTVPWGJPaVJET1YrTXFHeGZk\na2ZYVWNQL1FwRStiSlE3ZDJmOVVHcFEKLS0tIEE1WHRsdEJPcWdiQ1lNenN2WDBE\nYW1FR0gyeENHWEpxWFB2a25RZjBOUW8KW2n77OFZXNZLH/HMWhUrwLZM4epFxheZ\nbeOSASmLVkmT4rJOOHoP1g9GxmC8UxSrM1q6uV80n69grExRfgYCig==\n-----END AGE ENCRYPTED FILE-----\n", |
| 15 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaOVpNZ2lVT0VwbHVZNzFl\nenJsMGpnbkRvU0xOSU5obk5yT2p5ZVNzdXhNCnVlQzZtRjZNVmJLSUpKc3UwVXZs\nWi9EZ3kxZkJNeFJDSjl1L1IweTFNMXcKLS0tIDJUOTBwTldCUmlnU0tWVkZkNzJL\nejM4ajJVbVhvSm1YM2Vxa2JldllYN0UKAzxy2wkzRvCSiTy417AulpCu41z668HG\nto92eGF2ZRFfEG5LGlCKWeDcP3gM8QwKiVlm6wndbOkhMMfc4Sp3wA==\n-----END AGE ENCRYPTED FILE-----\n" | 15 | "recipient": "age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e" |
| 16 | }, | 16 | }, |
| 17 | { | 17 | { |
| 18 | "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l", | 18 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBSUFhNWxNd3ZXMlkyU1pC\nUlNsdENaWU9WMGxJbHRqaHM0SEFVdnJ5ZHlrCkF5a0xBWXJpWGxDMEcveVhEVzJh\naFFOVmJtQkh1WlZxcUZVaWxJS1ZBUVEKLS0tIC90bTBUa09yNkhBVDRBa25STzZD\nSnNYa3JqWTBlcjZBMlhIOUdGOFVseEUKZ3El/3f+YWMZBl4Qhhz5qTB/V/zq+e/W\nCPJ7uOJ/2L6YNGx6jlh5EIE3BSHicAQktgi0ekGD4+PLSkGC7Egzlw==\n-----END AGE ENCRYPTED FILE-----\n", |
| 19 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ejRHcGttNUxYZnFzTU5J\nMTFvY3daQ1VMM2xxYTgvLzZwT1owazVNenhzCktaWFF6K2s5UjI2b20rSHFNSS9E\nMVlJSmZhQm15eUs3U0hGTGpSRndmSDgKLS0tIDVrcjl4eDhwak1pRithbnRWWEZy\nVE9EOEpKdEJoRTFrTXpQVDc1cmsrU1kK/goTdUmpZPeMRbY1QzLXAa6Qpg4YYYYo\n3v3GK1bzdey8szfgIr1dHTtQEzqE2WX1swzZizDXj/RiUWx01Ky3GA==\n-----END AGE ENCRYPTED FILE-----\n" | 19 | "recipient": "age19a7j77w267z04zls7m28a8hj4a0g5af6ltye2d5wypg33c3l89csd4r9zq" |
| 20 | }, | ||
| 21 | { | ||
| 22 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWUWM3c0R1cEV5LzBsb3pV\nM2NEU0ZFRWhoOE9IZlgyU0hsVUtZM2JCcm1NClBlVXFVVUNZUXJVbElGWm5BQkJy\nWHY2Sm1GUWl2L0NOSXZiNlFjNGFCT28KLS0tIDVCSGREN2tjQmhYbGRINVF4WTA0\nSWVzL3EyVzJZSzlCdjJ0cG1mYmZ0cHcKnMs0Sl76ZYPKeUwgiX5FT9uFEOK4F1H1\n/ieM9hQwhEZqHpslLWWdNYbGShwEhC4cs22SUNutBWrYfD/MsKv0qA==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| 23 | "recipient": "age1qffdqvy9arld9zd5a5cylt0n98xhcns5shxhrhwjq5g4qa844ejselaa4l" | ||
| 20 | } | 24 | } |
| 21 | ], | 25 | ], |
| 22 | "lastmodified": "2026-01-07T09:18:20Z", | 26 | "lastmodified": "2026-01-07T09:18:20Z", |
diff --git a/modules/yggdrasil-wg/default.nix b/modules/yggdrasil-wg/default.nix index 8b190651..c17c8f08 100644 --- a/modules/yggdrasil-wg/default.nix +++ b/modules/yggdrasil-wg/default.nix | |||
| @@ -48,33 +48,56 @@ let | |||
| 48 | PersistentKeepalive = 25; | 48 | PersistentKeepalive = 25; |
| 49 | family = "4"; | 49 | family = "4"; |
| 50 | } | 50 | } |
| 51 | { from = "skadhi"; | ||
| 52 | to = "surtr"; | ||
| 53 | endpointHost = "202.61.241.61"; | ||
| 54 | PersistentKeepalive = 25; | ||
| 55 | family = "4"; | ||
| 56 | } | ||
| 57 | { from = "skadhi"; | ||
| 58 | to = "surtr"; | ||
| 59 | endpointHost = "2a03:4000:52:ada::"; | ||
| 60 | PersistentKeepalive = 25; | ||
| 61 | family = "6"; | ||
| 62 | } | ||
| 63 | { from = "skadhi"; | ||
| 64 | to = "vidhar"; | ||
| 65 | endpointHost = "10.141.0.1"; | ||
| 66 | PersistentKeepalive = 25; | ||
| 67 | family = "4"; | ||
| 68 | } | ||
| 51 | ]; | 69 | ]; |
| 52 | wgHostIPs = mapAttrs (_family: wgSubnet: { | 70 | wgHostIPs = mapAttrs (_family: wgSubnet: { |
| 53 | surtr = "${wgSubnet}::/${toString wgHostLength}"; | 71 | surtr = "${wgSubnet}::/${toString wgHostLength}"; |
| 54 | vidhar = "${wgSubnet}:1::/${toString wgHostLength}"; | 72 | vidhar = "${wgSubnet}:1::/${toString wgHostLength}"; |
| 55 | sif = "${wgSubnet}:2::/${toString wgHostLength}"; | 73 | sif = "${wgSubnet}:2::/${toString wgHostLength}"; |
| 74 | skadhi = "${wgSubnet}:3::/${toString wgHostLength}"; | ||
| 56 | }) wgSubnet; | 75 | }) wgSubnet; |
| 57 | greHostMACPrefixes = { | 76 | greHostMACPrefixes = { |
| 58 | "4" = { | 77 | "4" = { |
| 59 | surtr = "02:00:01:00:00"; | 78 | surtr = "02:00:01:00:00"; |
| 60 | vidhar = "02:00:01:00:01"; | 79 | vidhar = "02:00:01:00:01"; |
| 61 | sif = "02:00:01:00:02"; | 80 | sif = "02:00:01:00:02"; |
| 81 | skadhi = "02:00:01:00:03"; | ||
| 62 | }; | 82 | }; |
| 63 | "6" = { | 83 | "6" = { |
| 64 | surtr = "02:00:02:00:00"; | 84 | surtr = "02:00:02:00:00"; |
| 65 | vidhar = "02:00:02:00:01"; | 85 | vidhar = "02:00:02:00:01"; |
| 66 | sif = "02:00:02:00:02"; | 86 | sif = "02:00:02:00:02"; |
| 87 | skadhi = "02:00:02:00:03"; | ||
| 67 | }; | 88 | }; |
| 68 | }; | 89 | }; |
| 69 | batHostMACs = { | 90 | batHostMACs = { |
| 70 | surtr = "02:00:00:00:00:00"; | 91 | surtr = "02:00:00:00:00:00"; |
| 71 | vidhar = "02:00:00:01:00:00"; | 92 | vidhar = "02:00:00:01:00:00"; |
| 72 | sif = "02:00:00:02:00:00"; | 93 | sif = "02:00:00:02:00:00"; |
| 94 | skadhi = "02:00:00:03:00:00"; | ||
| 73 | }; | 95 | }; |
| 74 | batHostIPs = { | 96 | batHostIPs = { |
| 75 | surtr = ["${batSubnet}::/${toString batHostLength}"]; | 97 | surtr = ["${batSubnet}::/${toString batHostLength}"]; |
| 76 | vidhar = ["${batSubnet}:1::/${toString batHostLength}"]; | 98 | vidhar = ["${batSubnet}:1::/${toString batHostLength}"]; |
| 77 | sif = ["${batSubnet}:2::/${toString batHostLength}"]; | 99 | sif = ["${batSubnet}:2::/${toString batHostLength}"]; |
| 100 | skadhi = ["${batSubnet}:3::/${toString batHostLength}"]; | ||
| 78 | }; | 101 | }; |
| 79 | routers = [ "surtr" ]; | 102 | routers = [ "surtr" ]; |
| 80 | 103 | ||
diff --git a/modules/yggdrasil-wg/hosts/4/skadhi.priv b/modules/yggdrasil-wg/hosts/4/skadhi.priv new file mode 100644 index 00000000..dd66633f --- /dev/null +++ b/modules/yggdrasil-wg/hosts/4/skadhi.priv | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | { | ||
| 2 | "data": "ENC[AES256_GCM,data:fXF8DV6vgpbJJWQvjIS3sFZ+yUEPtWwAZQrDLT8jueqDdn/IVaZGlq+DEnT0,iv:FU0ofu31RZlq2qMcMHlzYoRB61g+vwaG2JjPrKUgxYI=,tag:+dLvtiKmYdtk9NCXV8Yn9w==,type:str]", | ||
| 3 | "sops": { | ||
| 4 | "age": [ | ||
| 5 | { | ||
| 6 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQR25od0g4MGhLY2d0Y1Fx\nS3RGVE1UbTFEc1Qzakx0VFdDbWNTdnU1MXowCkxNMXJycGlEVFEvV1dtQ3B3WXVX\nRm12ZmZTUTd6WGtvQkNJQzlsTVF1RHcKLS0tIE9tMzIzWFlWNHdINTkrSmcwYVNT\nVEVzSWFjMWJLSmRPRmZlQ1ZVMktLQ28KAUOrlZCuSZwF7QkOSz1dQ4Uj2f8gvjtM\n3c4sXQ3P77Rqluijsxo9KQx7Q0lRGBaRPMY4IrnHNPogd8iOHPeZuA==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| 7 | "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866" | ||
| 8 | }, | ||
| 9 | { | ||
| 10 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArWmlPTWUrZ1QvYVBSckFL\nelZtcGdEMDBHeE5ROVdVdEJvWHpISzN3OVhjCkpSSTg2dDNqZjZYY0RyRlpuTi96\nS1l1dzJPV0NKbEJVdWpkTnZNZXJ0Qk0KLS0tIElBMmxJcmlxekVxRm1VdkgrSkNm\nZXhaMlhNdi9hVlNKaXU5MGVnK2NZWnMKjavFZczePCyYb2X4UsFNOaB5g+g1KZ52\npl+NTzRsUIXqPZnRDcCkGDjlQgLnZ+A22Enhbpj21ThiPV7bTyFh2g==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| 11 | "recipient": "age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e" | ||
| 12 | } | ||
| 13 | ], | ||
| 14 | "lastmodified": "2026-09-24T04:46:17Z", | ||
| 15 | "mac": "ENC[AES256_GCM,data:cubfKvUaDE6XNb9Y/1dbXpwayRXoZjiM9T3dN+YVeS6/5WX+hMC7We6mdge5VBnZ9CjA3XXNy+ZP1DEaPSg1OsBq1ubnFuVbaRKZlFl1B4I+6e4xpsZdQiyZT3SFZoM/LI1oM6kxD8e1n7KjFWNRx3yqAMaK3z1Ko1AlAmkmDx8=,iv:ME5EYC/MvuFxY7es250VcW0z2x1tCInCPrZnr4mBjrw=,tag:Jfd3uEVibe6Iw/3uNc+UTQ==,type:str]", | ||
| 16 | "version": "3.13.3" | ||
| 17 | } | ||
| 18 | } | ||
diff --git a/modules/yggdrasil-wg/hosts/4/skadhi.pub b/modules/yggdrasil-wg/hosts/4/skadhi.pub new file mode 100644 index 00000000..a722609e --- /dev/null +++ b/modules/yggdrasil-wg/hosts/4/skadhi.pub | |||
| @@ -0,0 +1 @@ | |||
| x5c5441ah63QZRbj+IV711Xv3JZOQYQON8Zo7rzU6i4= | |||
diff --git a/modules/yggdrasil-wg/hosts/6/skadhi.priv b/modules/yggdrasil-wg/hosts/6/skadhi.priv new file mode 100644 index 00000000..848cd299 --- /dev/null +++ b/modules/yggdrasil-wg/hosts/6/skadhi.priv | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | { | ||
| 2 | "data": "ENC[AES256_GCM,data:lOitSuIg4Xjr5xycgaXBWkA79zySQOy+ZPXUxRjbU3F3/YHbcyrKYatVygdf,iv:8QcEXehosL/zUYxbNE284GfQHjz6HzBIyscigtNiDw8=,tag:eRINZKIv4UwprovUq7016Q==,type:str]", | ||
| 3 | "sops": { | ||
| 4 | "age": [ | ||
| 5 | { | ||
| 6 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLY2U0S2tUZHpXSjVoTk1m\nSWlXK0UyWm5SMGxBbUtHTFp1U3NadUliemlNCjArMHdJVk5BYzVSK0F5RGdMQU1E\nMEZuUkt3R29sdHZsRnFPaVhlUzVpaWcKLS0tIDFXOEpFOC94NlEzZnZqY2F6VERt\nc3lvZEt2b0tVU3pvMU5VR1dqYUtFbUEKcRVTIkz5bz47rAkihOTJLJPvA0mqabUM\nUr+zZjdrWTKqnWuEcJ93xsCKyo4kC1k/SkaXia65krhi9z4BVe5kgQ==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| 7 | "recipient": "age1rmmhetcmllq0ahl5qznlr0eya2zdxwl9h6y5wnl97d2wtyx5t99sm2u866" | ||
| 8 | }, | ||
| 9 | { | ||
| 10 | "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWUxYNXNXODAzb2daTC9Y\nSmtHRHUwZmRoaXhpTmpDbXZSMkkwMjI0Q2pnCi92RFgrK2pSTFdIL29wT09lVGZM\nTWxXamlSOVpOdXoxcSttSDNkUDJ1K0UKLS0tIC9rVnNXZWxhd2J3NGd2NkdUOUVO\nbE9ha1RyS3dOczNXa3pjVkh3bm5RS1kK4APdzi4AKkI7z5S2zpFkipkldVzeYO0Q\nGck0KtHhM8ZRTqJ9Q7WID2JwbAV5og3924SAYFbQvYdSd2zGqkD+Aw==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| 11 | "recipient": "age1u6xegt79rarmyz8qy4pl7jh9lh90vx8fg0frmh4u2mzam7zydq4s4agz4e" | ||
| 12 | } | ||
| 13 | ], | ||
| 14 | "lastmodified": "2026-09-24T04:46:30Z", | ||
| 15 | "mac": "ENC[AES256_GCM,data:5mgUxl7FQCgmCWL2SRtf7FOi5z64scb9Qt/rUwPMdenAuTG0ED3NVGOATTVoco7l0MBbs/D7OBKDMMvJ/Odgo0I9srRDyhXdrVbVKMphD1uXAwxPaK2iUeK3xz93Kzvr17UXzd7SwXTReokv/lIcFyDqUvlBXGWxZdYsc/rf4Us=,iv:50ByoxaHrl6qQbKoEEAgUIpYyhVhp47AYnagbH8n5kA=,tag:5KjE/A7EwiG/sSGpkkQBcg==,type:str]", | ||
| 16 | "version": "3.13.3" | ||
| 17 | } | ||
| 18 | } | ||
diff --git a/modules/yggdrasil-wg/hosts/6/skadhi.pub b/modules/yggdrasil-wg/hosts/6/skadhi.pub new file mode 100644 index 00000000..7a51045a --- /dev/null +++ b/modules/yggdrasil-wg/hosts/6/skadhi.pub | |||
| @@ -0,0 +1 @@ | |||
| BtEGTPfLbtQJAAHfG/7jBissxcR/IfIRqeqhZG2dr0k= | |||
diff --git a/system-profiles/tmpfs-root.nix b/system-profiles/tmpfs-root.nix index 7840dadf..3b4eb9a7 100644 --- a/system-profiles/tmpfs-root.nix +++ b/system-profiles/tmpfs-root.nix | |||
| @@ -1,25 +1,25 @@ | |||
| 1 | { options, lib, ... }: { | 1 | { options, lib, ... }: { |
| 2 | config = lib.mkMerge | 2 | config = foldr recursiveUpdate {} ([ |
| 3 | [ (lib.mkIf (options ? disko) { | 3 | { |
| 4 | disko.devices.nodev = { | 4 | security.sudo.extraConfig = '' |
| 5 | "/" = { | 5 | Defaults lecture = never |
| 6 | fsType = "tmpfs"; | 6 | ''; |
| 7 | mountOptions = [ | 7 | } |
| 8 | "mode=0755" | 8 | ] |
| 9 | ]; | 9 | ++ (lib.optional (options ? disko) { |
| 10 | }; | 10 | disko.devices.nodev = { |
| 11 | }; | 11 | "/" = { |
| 12 | }) | 12 | fsType = "tmpfs"; |
| 13 | (lib.mkIf (!(options ? disko)) { | 13 | mountOptions = [ |
| 14 | fileSystems."/" = { | 14 | "mode=0755" |
| 15 | fsType = "tmpfs"; | 15 | ]; |
| 16 | options = [ "mode=0755" ]; | 16 | }; |
| 17 | }; | 17 | }; |
| 18 | }) | 18 | }) |
| 19 | { | 19 | ++ (lib.optional (!(options ? disko)) { |
| 20 | security.sudo.extraConfig = '' | 20 | fileSystems."/" = { |
| 21 | Defaults lecture = never | 21 | fsType = "tmpfs"; |
| 22 | ''; | 22 | options = [ "mode=0755" ]; |
| 23 | } | 23 | }; |
| 24 | ]; | 24 | })); |
| 25 | } | 25 | } |
