diff --git a/flake.lock b/flake.lock index 6f5bb51..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": { @@ -253,11 +253,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1742834248, - "narHash": "sha256-Vy2AT/R33tX7GihmKsEWoK05HWO/rRKg+EV2WTKcobM=", - "rev": "4181796ed24e4c9c1c9c0d38986880d8c6407e5d", + "lastModified": 1747347117, + "narHash": "sha256-wsPOuwczt+kJ4vuf3mm6uMv4wnfWP/RNV5Cp/P5nqQw=", + "rev": "3f355b8fd1ffbe670d756bcf976a38cbe80bb77b", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/4181796ed24e4c9c1c9c0d38986880d8c6407e5d.tar.gz?rev=4181796ed24e4c9c1c9c0d38986880d8c6407e5d" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/3f355b8fd1ffbe670d756bcf976a38cbe80bb77b.tar.gz?rev=3f355b8fd1ffbe670d756bcf976a38cbe80bb77b" }, "original": { "type": "tarball", @@ -276,11 +276,11 @@ ] }, "locked": { - "lastModified": 1742709496, - "narHash": "sha256-6rWA8QlVe3HTCVHyI/gJ5IULyvHkT9d8fMpYC0Kyeh8=", - "rev": "d8e4fee796342636f345e358f33583c8b2fa496e", + "lastModified": 1746839253, + "narHash": "sha256-pRwi8Wn8Yofj459gq+3oIRy8F3SXeEJ6mzfIAUgM9nA=", + "rev": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/d8e4fee796342636f345e358f33583c8b2fa496e.tar.gz?rev=d8e4fee796342636f345e358f33583c8b2fa496e" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/58baedd53f9da81fd728a4f3b08c378e5ba9ae58.tar.gz?rev=58baedd53f9da81fd728a4f3b08c378e5ba9ae58" }, "original": { "type": "tarball", @@ -298,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" } @@ -338,35 +337,13 @@ "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": 1742806253, - "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=", + "lastModified": 1747129300, + "narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726", + "rev": "e81fd167b33121269149c57806599045fd33eeed", "type": "github" }, "original": { @@ -378,30 +355,33 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742751704, - "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=", + "lastModified": 1746141548, + "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092", + "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": { @@ -422,11 +402,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1742669843, - "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", + "lastModified": 1747179050, + "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1e5b653dff12029333a6546c11e108ede13052eb", + "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "type": "github" }, "original": { @@ -436,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" } }, @@ -494,6 +459,56 @@ "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", @@ -503,7 +518,7 @@ "lix-module": "lix-module", "microvm": "microvm", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", "sops-nix": "sops-nix", "tmux-yank": "tmux-yank", @@ -538,11 +553,11 @@ ] }, "locked": { - "lastModified": 1742700801, - "narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=", + "lastModified": 1746485181, + "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", "owner": "Mic92", "repo": "sops-nix", - "rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852", + "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", "type": "github" }, "original": { @@ -554,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" }, @@ -628,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" } }, diff --git a/flake.nix b/flake.nix index 47d5d29..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 = { @@ -69,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 = [ @@ -93,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,7 +121,7 @@ ./modules/science.nix ./modules/tlp.nix ./modules/virtualization.nix - ./hosts/toaster/secure-boot.nix + ./modules/emacs.nix ./modules/mail ./modules/wg ]; @@ -153,7 +156,7 @@ ./modules/wg { - config.microvm.autostart = microvm-list; + config.microvm.autostart = microvm-stable-list ++ microvm-unstable-list; } ]; }; diff --git a/hosts/cloud/proxy/caddy.nix b/hosts/cloud/proxy/caddy.nix deleted file mode 100644 index 35c117b..0000000 --- a/hosts/cloud/proxy/caddy.nix +++ /dev/null @@ -1,6 +0,0 @@ -{}: -{ - services.caddy = { - enable = true; - }; -} 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 b075f6f..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,16 +60,15 @@ "bluetooth" "libvirtd" "qemu-libvirtd" + "i2c" ]; group = "users"; home = "/home/0xa"; isNormalUser = true; uid = 1000; - shell = pkgs.zsh; + 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/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/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