diff --git a/flake.lock b/flake.lock index ca5cb12..447dfa1 100644 --- a/flake.lock +++ b/flake.lock @@ -7,18 +7,18 @@ "flake-parts": "flake-parts", "flake-utils": "flake-utils", "napalm": "napalm", - "nixpkgs": [ - "nixpkgs" - ], - "poetry2nix": "poetry2nix", - "systems": "systems" + "nixpkgs": "nixpkgs", + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "systems": "systems", + "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1742246110, - "narHash": "sha256-bjJDxW3Z3clNIkgwEktWhFSpU9UyftisDfK3XYzdRps=", + "lastModified": 1746874492, + "narHash": "sha256-Gm2Eb5KBxAL6y9WJj7phRMXNAZzVkKlm9Dky9WDZHtQ=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "04f5e14643b8b37304966767074fbe0efcadab9f", + "rev": "2ef24fac993808a1a57f367ef58ac0f5254c3489", "type": "github" }, "original": { @@ -30,16 +30,16 @@ "authentik-src": { "flake": false, "locked": { - "lastModified": 1742236492, - "narHash": "sha256-Uz7qldS44pxduLcYKf+cCq4WvjoslDR4PwRqivY/4uI=", + "lastModified": 1745954192, + "narHash": "sha256-QuIgeu3CN6S44/zSiaj+iIkDz2494mb1MWvD3eYYkVE=", "owner": "goauthentik", "repo": "authentik", - "rev": "3adf79c4939276e108c25c719843b6174e9e22fd", + "rev": "22412729e2379d645da2ac0c0270a0ac6147945e", "type": "github" }, "original": { "owner": "goauthentik", - "ref": "version/2025.2.2", + "ref": "version/2025.4.0", "repo": "authentik", "type": "github" } @@ -96,11 +96,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -224,26 +224,6 @@ "type": "github" } }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs-unstable" - ] - }, - "locked": { - "lastModified": 1742326330, - "narHash": "sha256-Tumt3tcMXJniSh7tw2gW+WAnVLeB3WWm+E+yYFnLBXo=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "22a36aa709de7dd42b562a433b9cefecf104a6ee", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, "lanzaboote": { "inputs": { "crane": "crane", @@ -273,11 +253,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1742328220, - "narHash": "sha256-oRRKctwO4s4auyXPQkf8OM94Kuvh678ZL+HGFKnDKuQ=", - "rev": "3fcf823a86ab9e5bf4ccc9a3cca960c1f9137e6a", + "lastModified": 1747347117, + "narHash": "sha256-wsPOuwczt+kJ4vuf3mm6uMv4wnfWP/RNV5Cp/P5nqQw=", + "rev": "3f355b8fd1ffbe670d756bcf976a38cbe80bb77b", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/3fcf823a86ab9e5bf4ccc9a3cca960c1f9137e6a.tar.gz?rev=3fcf823a86ab9e5bf4ccc9a3cca960c1f9137e6a" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/3f355b8fd1ffbe670d756bcf976a38cbe80bb77b.tar.gz?rev=3f355b8fd1ffbe670d756bcf976a38cbe80bb77b" }, "original": { "type": "tarball", @@ -296,11 +276,11 @@ ] }, "locked": { - "lastModified": 1741894565, - "narHash": "sha256-2FD0NDJbEjUHloVrtEIms5miJsj1tvQCc/0YK5ambyc=", - "rev": "a6da43f8193d9e329bba1795c42590c27966082e", + "lastModified": 1746839253, + "narHash": "sha256-pRwi8Wn8Yofj459gq+3oIRy8F3SXeEJ6mzfIAUgM9nA=", + "rev": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/a6da43f8193d9e329bba1795c42590c27966082e.tar.gz?rev=a6da43f8193d9e329bba1795c42590c27966082e" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/58baedd53f9da81fd728a4f3b08c378e5ba9ae58.tar.gz?rev=58baedd53f9da81fd728a4f3b08c378e5ba9ae58" }, "original": { "type": "tarball", @@ -318,16 +298,15 @@ "spectrum": "spectrum" }, "locked": { - "lastModified": 1712366957, - "narHash": "sha256-7W3D1Gk6mGlwtV07n6YB/7s3tThcBYknlvDPcoJJSe4=", + "lastModified": 1747016581, + "narHash": "sha256-iQrEuBs23Cd+bSfcY85GLykHP0vmGrkVfMwUlzvqMQQ=", "owner": "astro", "repo": "microvm.nix", - "rev": "1e746a8987eb893adc8dd317b84e73d72803b650", + "rev": "5aff25e6e861e7d96ce10452ca976c16d073cf16", "type": "github" }, "original": { "owner": "astro", - "ref": "v0.5.0", "repo": "microvm.nix", "type": "github" } @@ -358,94 +337,13 @@ "type": "github" } }, - "niri": { - "inputs": { - "niri-stable": "niri-stable", - "niri-unstable": "niri-unstable", - "nixpkgs": [ - "nixpkgs-unstable" - ], - "nixpkgs-stable": "nixpkgs-stable_2", - "xwayland-satellite-stable": "xwayland-satellite-stable", - "xwayland-satellite-unstable": "xwayland-satellite-unstable" - }, - "locked": { - "lastModified": 1742355568, - "narHash": "sha256-cHW060+beSciKdCK4SZ9vYPOFy/otAq+t9MiO54zKYY=", - "owner": "sodiboo", - "repo": "niri-flake", - "rev": "10b56ff2ecc915ec26505526125b4f3a3006d5b3", - "type": "github" - }, - "original": { - "owner": "sodiboo", - "ref": "main", - "repo": "niri-flake", - "type": "github" - } - }, - "niri-stable": { - "flake": false, - "locked": { - "lastModified": 1740117926, - "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", - "type": "github" - }, - "original": { - "owner": "YaLTeR", - "ref": "v25.02", - "repo": "niri", - "type": "github" - } - }, - "niri-unstable": { - "flake": false, - "locked": { - "lastModified": 1742276600, - "narHash": "sha256-muceB5DW++WPqrGKpX3Hkii/DNSMmFs2oQrYRYHmPiU=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "e251ca7340bc71870c3a81a7ffc3d9bde58e685a", - "type": "github" - }, - "original": { - "owner": "YaLTeR", - "repo": "niri", - "type": "github" - } - }, - "nix-github-actions": { - "inputs": { - "nixpkgs": [ - "authentik-nix", - "poetry2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729742964, - "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=", - "owner": "nix-community", - "repo": "nix-github-actions", - "rev": "e04df33f62cdcf93d73e9a04142464753a16db67", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-github-actions", - "type": "github" - } - }, "nixos-hardware": { "locked": { - "lastModified": 1742376361, - "narHash": "sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c=", + "lastModified": 1747129300, + "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "daaae13dff0ecc692509a1332ff9003d9952d7a9", + "rev": "e81fd167b33121269149c57806599045fd33eeed", "type": "github" }, "original": { @@ -457,30 +355,33 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742268799, - "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", + "lastModified": 1746141548, + "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da044451c6a70518db5b730fe277b70f494188f1", + "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.11", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-lib": { "locked": { - "lastModified": 1738452942, - "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + "lastModified": 1743296961, + "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, "nixpkgs-stable": { @@ -499,29 +400,13 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1742268799, - "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "da044451c6a70518db5b730fe277b70f494188f1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-unstable": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1747179050, + "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "type": "github" }, "original": { @@ -531,34 +416,19 @@ "type": "github" } }, - "poetry2nix": { - "inputs": { - "flake-utils": [ - "authentik-nix", - "flake-utils" - ], - "nix-github-actions": "nix-github-actions", - "nixpkgs": [ - "authentik-nix", - "nixpkgs" - ], - "systems": [ - "authentik-nix", - "systems" - ], - "treefmt-nix": "treefmt-nix" - }, + "nixpkgs_2": { "locked": { - "lastModified": 1739883580, - "narHash": "sha256-3ydikhrNaWy8j0cqHju/94PcD4GZ9T4Ju4rHh34oz3k=", - "owner": "nix-community", - "repo": "poetry2nix", - "rev": "d90f9db68a4bda31c346be16dfd8d3263be4547e", + "lastModified": 1747209494, + "narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5d736263df906c5da72ab0f372427814de2f52f8", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "poetry2nix", + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", "type": "github" } }, @@ -589,18 +459,66 @@ "type": "github" } }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "authentik-nix", + "nixpkgs" + ], + "pyproject-nix": [ + "authentik-nix", + "pyproject-nix" + ], + "uv2nix": [ + "authentik-nix", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1744599653, + "narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "7dba6dbc73120e15b558754c26024f6c93015dd7", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "authentik-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746146146, + "narHash": "sha256-60+mzI2lbgn+G8F5mz+cmkDvHFn4s5oqcOna1SzYy74=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "3e9623bdd86a3c545e82b7f97cfdba5f07232d9a", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { "authentik-nix": "authentik-nix", "flake-utils": "flake-utils_2", - "home-manager": "home-manager", "lanzaboote": "lanzaboote", "lix": "lix", "lix-module": "lix-module", "microvm": "microvm", - "niri": "niri", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", "sops-nix": "sops-nix", "tmux-yank": "tmux-yank", @@ -635,11 +553,11 @@ ] }, "locked": { - "lastModified": 1742239755, - "narHash": "sha256-ptn8dR4Uat3UUadGYNnB7CIH9SQm8mK69D2A/twBUXQ=", + "lastModified": 1746485181, + "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", "owner": "Mic92", "repo": "sops-nix", - "rev": "787afce414bcce803b605c510b60bf43c11f4b55", + "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", "type": "github" }, "original": { @@ -651,11 +569,11 @@ "spectrum": { "flake": false, "locked": { - "lastModified": 1708358594, - "narHash": "sha256-e71YOotu2FYA67HoC/voJDTFsiPpZNRwmiQb4f94OxQ=", + "lastModified": 1746869549, + "narHash": "sha256-BKZ/yZO/qeLKh9YqVkKB6wJiDQJAZNN5rk5NsMImsWs=", "ref": "refs/heads/main", - "rev": "6d0e73864d28794cdbd26ab7b37259ab0e1e044c", - "revCount": 614, + "rev": "d927e78530892ec8ed389e8fae5f38abee00ad87", + "revCount": 862, "type": "git", "url": "https://spectrum-os.org/git/spectrum" }, @@ -725,25 +643,28 @@ "type": "github" } }, - "treefmt-nix": { + "uv2nix": { "inputs": { "nixpkgs": [ "authentik-nix", - "poetry2nix", "nixpkgs" + ], + "pyproject-nix": [ + "authentik-nix", + "pyproject-nix" ] }, "locked": { - "lastModified": 1730120726, - "narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "9ef337e492a5555d8e17a51c911ff1f02635be15", + "lastModified": 1746048139, + "narHash": "sha256-LdCLyiihLg6P2/mjzP0+W7RtraDSIaJJPTy6SCtW5Ag=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "680e2f8e637bc79b84268949d2f2b2f5e5f1d81c", "type": "github" }, "original": { - "owner": "numtide", - "repo": "treefmt-nix", + "owner": "pyproject-nix", + "repo": "uv2nix", "type": "github" } }, @@ -770,39 +691,6 @@ "type": "git", "url": "https://git.oxapentane.com/0xa/website.git" } - }, - "xwayland-satellite-stable": { - "flake": false, - "locked": { - "lastModified": 1739246919, - "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", - "type": "github" - }, - "original": { - "owner": "Supreeeme", - "ref": "v0.5.1", - "repo": "xwayland-satellite", - "type": "github" - } - }, - "xwayland-satellite-unstable": { - "flake": false, - "locked": { - "lastModified": 1742249030, - "narHash": "sha256-YZ+axsuNsgIKWfnRkt6Qa9UoKfUOIWf42vNUonXxmxM=", - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "rev": "cca74a5f6b23742d77dc5db4312dfc40fd4a0fcc", - "type": "github" - }, - "original": { - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index d355e32..8672d2d 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,7 @@ nixos-hardware.url = "github:NixOS/nixos-hardware/master"; microvm = { - url = "github:astro/microvm.nix/v0.5.0"; + url = "github:astro/microvm.nix"; inputs = { nixpkgs.follows = "nixpkgs"; flake-utils.follows = "flake-utils"; @@ -27,7 +27,6 @@ authentik-nix = { url = "github:nix-community/authentik-nix"; - inputs.nixpkgs.follows = "nixpkgs"; }; lix = { @@ -47,16 +46,6 @@ inputs.flake-utils.follows = "flake-utils"; }; - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; - }; - - niri = { - url = "github:sodiboo/niri-flake/main"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; - }; - tmux-yank = { url = "github:tmux-plugins/tmux-yank"; flake = false; @@ -66,11 +55,9 @@ outputs = inputs@{ authentik-nix, - home-manager, lanzaboote, lix-module, microvm, - niri, nixos-hardware, nixpkgs, nixpkgs-unstable, @@ -81,19 +68,21 @@ { nixosConfigurations = let - microvm-list = [ - "auth" + microvm-stable-list = [ "conduwuit" "forgejo" - "immich" "miniflux" "radicale" ]; + microvm-unstable-list = [ + "auth" + "immich" + ]; - microvms = builtins.listToAttrs ( + microvm-builder = (nixpkgs-ver: vm-list: builtins.listToAttrs ( map (vm: { name = vm; - value = nixpkgs.lib.nixosSystem { + value = nixpkgs-ver.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ @@ -105,8 +94,10 @@ ./modules/wg ]; }; - }) microvm-list - ); + }) vm-list + )); + microvms = (microvm-builder nixpkgs microvm-stable-list) + // (microvm-builder nixpkgs-unstable microvm-unstable-list); in microvms // { @@ -118,26 +109,19 @@ lanzaboote.nixosModules.lanzaboote nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3 lix-module.nixosModules.default - home-manager.nixosModules.home-manager - niri.nixosModules.niri - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users."0xa" = import ./hosts/toaster/0xa-home.nix; - } ./hosts/toaster ./modules/basic-tools ./modules/binary-caches.nix ./modules/devtools.nix - ./modules/niri.nix + ./modules/gnome.nix ./modules/gnupg.nix ./modules/radio.nix ./modules/science.nix ./modules/tlp.nix ./modules/virtualization.nix - ./hosts/toaster/secure-boot.nix + ./modules/emacs.nix ./modules/mail ./modules/wg ]; @@ -172,7 +156,7 @@ ./modules/wg { - config.microvm.autostart = microvm-list; + config.microvm.autostart = microvm-stable-list ++ microvm-unstable-list; } ]; }; diff --git a/hosts/forgejo/default.nix b/hosts/forgejo/default.nix index 5e02678..f6de473 100644 --- a/hosts/forgejo/default.nix +++ b/hosts/forgejo/default.nix @@ -18,7 +18,7 @@ in microvm = { hypervisor = "qemu"; mem = 3 * 1024; - balloonMem = 4 * 1024; + balloon = true; vcpu = 4; interfaces = [ { diff --git a/hosts/immich/immich.nix b/hosts/immich/immich.nix index 40243ae..11a69b6 100644 --- a/hosts/immich/immich.nix +++ b/hosts/immich/immich.nix @@ -1,12 +1,7 @@ { config, - inputs, - pkgs, ... }: -let - immich-latest = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.immich; -in { sops.secrets."immich.yaml" = { sopsFile = ./immich.yaml; @@ -16,7 +11,6 @@ in services.immich = { enable = true; - package = immich-latest; host = "10.89.88.13"; redis.enable = true; database.createDB = true; diff --git a/hosts/toaster/default.nix b/hosts/toaster/default.nix index 17f8f09..7e78114 100644 --- a/hosts/toaster/default.nix +++ b/hosts/toaster/default.nix @@ -46,6 +46,11 @@ supportedLocales = [ "all" ]; }; + # support ddc brigtness control + hardware.i2c.enable = true; + boot.kernelModules = [ "i2c-dev" ]; + environment.systemPackages = [ pkgs.ddcutil ]; + users.users."0xa" = { extraGroups = [ "wheel" @@ -55,6 +60,7 @@ "bluetooth" "libvirtd" "qemu-libvirtd" + "i2c" ]; group = "users"; home = "/home/0xa"; @@ -63,8 +69,6 @@ shell = pkgs.fish; }; - services.emacs.defaultEditor = false; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave diff --git a/hosts/toaster/network/default.nix b/hosts/toaster/network/default.nix index ee0bdbe..6d96c3c 100644 --- a/hosts/toaster/network/default.nix +++ b/hosts/toaster/network/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ lib, config, ... }: { imports = [ ./mullvad.nix @@ -6,21 +6,26 @@ ./zw.nix ]; - environment.systemPackages = with pkgs; [ - iwgtk - impala - ]; + # Networkmanager shouldn't interfere with systemd managed interfaces + networking.networkmanager.unmanaged = + let + systemd_netdevs = lib.attrsets.attrValues ( + lib.attrsets.mapAttrs (_name: value: value.netdevConfig.Name) config.systemd.network.netdevs + ); + in + systemd_netdevs; - # kick out networkmanager - networking.networkmanager.enable = lib.mkForce false; - networking.useNetworkd = true; - systemd.network.enable = true; + systemd.network = { + enable = true; + wait-online.enable = false; # uplink is managed by networkmanager + }; + + users.users."0xa".extraGroups = [ "networkmanager" ]; networking = { hostName = "toaster"; firewall.enable = true; wireguard.enable = true; - wireless.iwd.enable = true; }; services.resolved = { @@ -34,38 +39,4 @@ ]; }; - # we might have no interwebs at all - systemd.network.wait-online.enable = false; - - # uplinks - systemd.network.networks = { - "10-ether-uplink" = { - matchConfig.Name = "enp1s0f0"; - networkConfig = { - DHCP = "yes"; - IPv6AcceptRA = true; - }; - }; - "10-dock-uplink" = { - matchConfig.Name = "enp5s0f4u1u1"; - networkConfig = { - DHCP = "yes"; - IPv6AcceptRA = true; - }; - dhcpV4Config = { - RouteMetric = 666; - }; - dhcpV6Config = { - RouteMetric = 666; - }; - }; - "wlan-uplink" = { - matchConfig.Name = "wlan0"; - networkConfig = { - DHCP = "yes"; - IPv6AcceptRA = true; - }; - }; - }; - } diff --git a/hosts/toaster/network/full-networkd.nix b/hosts/toaster/network/full-networkd.nix new file mode 100644 index 0000000..ee0bdbe --- /dev/null +++ b/hosts/toaster/network/full-networkd.nix @@ -0,0 +1,71 @@ +{ lib, pkgs, ... }: +{ + imports = [ + ./mullvad.nix + ./dumpdvb.nix + ./zw.nix + ]; + + environment.systemPackages = with pkgs; [ + iwgtk + impala + ]; + + # kick out networkmanager + networking.networkmanager.enable = lib.mkForce false; + networking.useNetworkd = true; + systemd.network.enable = true; + + networking = { + hostName = "toaster"; + firewall.enable = true; + wireguard.enable = true; + wireless.iwd.enable = true; + }; + + services.resolved = { + enable = true; + dnssec = "false"; + fallbackDns = [ + "9.9.9.9" + "2620:fe::fe" + "149.112.112.112" + "2620:fe::9" + ]; + }; + + # we might have no interwebs at all + systemd.network.wait-online.enable = false; + + # uplinks + systemd.network.networks = { + "10-ether-uplink" = { + matchConfig.Name = "enp1s0f0"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + }; + "10-dock-uplink" = { + matchConfig.Name = "enp5s0f4u1u1"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + dhcpV4Config = { + RouteMetric = 666; + }; + dhcpV6Config = { + RouteMetric = 666; + }; + }; + "wlan-uplink" = { + matchConfig.Name = "wlan0"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + }; + }; + +} diff --git a/modules/desktop-software.nix b/modules/desktop-software.nix index 70287ff..cbb902e 100644 --- a/modules/desktop-software.nix +++ b/modules/desktop-software.nix @@ -4,6 +4,7 @@ ./chromium.nix ]; environment.systemPackages = with pkgs; [ + audacity blender dino ffmpeg-full diff --git a/modules/emacs.nix b/modules/emacs.nix new file mode 100644 index 0000000..8841e44 --- /dev/null +++ b/modules/emacs.nix @@ -0,0 +1,37 @@ +{ + pkgs, + lib, + ... +}: + +{ + environment.systemPackages = with pkgs; [ + direnv + mu + ]; + + services.emacs = { + install = true; + enable = false; + package = + with pkgs; + ( + (emacsPackagesFor ( + emacs-pgtk.overrideAttrs (old: { + passthru = old.passthru // { + treeSitter = true; + }; + }) + )).emacsWithPackages + ( + epkgs: with epkgs; [ + treesit-grammars.with-all-grammars + vterm + pdf-tools + mu4e + ] + ) + ); + defaultEditor = lib.mkDefault true; + }; +} diff --git a/modules/fonts.nix b/modules/fonts.nix index feaee83..32ae853 100644 --- a/modules/fonts.nix +++ b/modules/fonts.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { fonts.packages = with pkgs; [ + adwaita-fonts monoid font-awesome dejavu_fonts diff --git a/modules/gnome.nix b/modules/gnome.nix index 33aeb50..f70c270 100644 --- a/modules/gnome.nix +++ b/modules/gnome.nix @@ -8,12 +8,14 @@ environment.systemPackages = with pkgs; [ amberol celluloid + ddcutil gnome-console gnome-obfuscate gnome-boxes gnome-tweaks qbittorrent gnomeExtensions.caffeine + gnomeExtensions.brightness-control-using-ddcutil spotify ghostty fractal @@ -40,12 +42,6 @@ }; }; - qt = { - enable = true; - platformTheme = "gnome"; - style = "adwaita-dark"; - }; - services.xserver = { enable = true; desktopManager.gnome.enable = true; diff --git a/modules/radio.nix b/modules/radio.nix index 391e98b..aea167c 100644 --- a/modules/radio.nix +++ b/modules/radio.nix @@ -5,7 +5,7 @@ gnuradio gqrx cubicsdr - sdrangel + # sdrangel # broken package multimon-ng sox