diff --git a/flake.lock b/flake.lock index 59f2448..7b8d725 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1714136352, - "narHash": "sha256-BtWQ2Th/jamO1SlD+2ASSW5Jaf7JhA/JLpQHk0Goqpg=", + "lastModified": 1715290355, + "narHash": "sha256-2T7CHTqBXJJ3ZC6R/4TXTcKoXWHcvubKNj9SfomURnw=", "owner": "ryantm", "repo": "agenix", - "rev": "24a7ea390564ccd5b39b7884f597cfc8d7f6f44e", + "rev": "8d37c5bdeade12b6479c85acd133063ab53187a0", "type": "github" }, "original": { @@ -39,11 +39,11 @@ ] }, "locked": { - "lastModified": 1714553086, - "narHash": "sha256-iIKIF0nj/4KxiuQKDwq4kY1zZmWdfwiyetR6M8D58Vk=", + "lastModified": 1715468401, + "narHash": "sha256-JYDr4Pg7orKXOTc/3BLAaCl5wtcIq9UU+Aku39D7xos=", "ref": "refs/heads/master", - "rev": "113f4faa4fe71673256558323e24e5d87b10a22e", - "revCount": 180, + "rev": "cd9fc69f3d2dbd1799953c6a22eb679113baec93", + "revCount": 182, "type": "git", "url": "https://git.aciceri.dev/aciceri/emacs.git" }, @@ -81,11 +81,11 @@ ] }, "locked": { - "lastModified": 1714959124, - "narHash": "sha256-oYmauPDpSgWjY9hvzwd815igGfP8Ds5Bk6bTo5JrBRk=", + "lastModified": 1715822638, + "narHash": "sha256-Z4ZoyK8jYRmBZwMaEZLEmAilrfdpekwwwohliqC14/E=", "owner": "nix-community", "repo": "disko", - "rev": "e1b3ae2b4ebc3c7b83154b9361e3d154e64e362d", + "rev": "476eef8d85aa09389ae7baf6e6b60357f6a01432", "type": "github" }, "original": { @@ -101,11 +101,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1714761157, - "narHash": "sha256-4q88s1MwHtJJwH1bWgAozihH54miGZSVFrO+2bxtTiY=", + "lastModified": 1715711628, + "narHash": "sha256-MwkdhFpFBABp6IZWy/A2IwDe5Y1z0qZXInTO6AtvGZY=", "owner": "nix-community", "repo": "dream2nix", - "rev": "07bd44a3365efdbf4d17a14190636667e5fd3d48", + "rev": "995e831dac8c2c843f1289d15dfec526cb84afdd", "type": "github" }, "original": { @@ -310,11 +310,11 @@ ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1714641030, + "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", "type": "github" }, "original": { @@ -487,6 +487,24 @@ "type": "github" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flakeParts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" @@ -505,6 +523,21 @@ "type": "github" } }, + "flakey-profile": { + "locked": { + "lastModified": 1712898590, + "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", + "owner": "lf-", + "repo": "flakey-profile", + "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", + "type": "github" + }, + "original": { + "owner": "lf-", + "repo": "flakey-profile", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -549,11 +582,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1714945275, - "narHash": "sha256-eU1BHmSp3SGFZhciKtscdslN+ceKQJZ0K/S/XSPXY5w=", + "lastModified": 1715626852, + "narHash": "sha256-ig33Osi+Kp36TyGS1S4eu1K9FEXJXCh5CdU+eHekTPI=", "owner": "hercules-ci", "repo": "hercules-ci-agent", - "rev": "a8c035b947f0341beb621880f32ee18537ff3cf7", + "rev": "eb5298b1b57e8e817f7c2a05a09c17bf98ffe329", "type": "github" }, "original": { @@ -668,11 +701,11 @@ ] }, "locked": { - "lastModified": 1714981474, - "narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=", + "lastModified": 1715486357, + "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", "owner": "nix-community", "repo": "home-manager", - "rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f", + "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", "type": "github" }, "original": { @@ -719,6 +752,47 @@ "type": "github" } }, + "lix": { + "flake": false, + "locked": { + "lastModified": 1715824080, + "narHash": "sha256-kWC51F+F2sRVoVP2KuBGnHMM4Dq+vgU1Jqd/zVSbMs8=", + "ref": "refs/heads/main", + "rev": "9249c89dc617084640848d4b429311ed3dc152d9", + "revCount": 15572, + "type": "git", + "url": "https://git@git.lix.systems/lix-project/lix" + }, + "original": { + "type": "git", + "url": "https://git@git.lix.systems/lix-project/lix" + } + }, + "lix-module": { + "inputs": { + "flake-utils": "flake-utils_2", + "flakey-profile": "flakey-profile", + "lix": [ + "lix" + ], + "nixpkgs": [ + "nixpkgsUnstable" + ] + }, + "locked": { + "lastModified": 1715825027, + "narHash": "sha256-S13A4wjZ/3TH3x8UmSqojVs9o67eh6yL3gCt7omT5DU=", + "ref": "refs/heads/main", + "rev": "fbc1c1c4daaefa601e2042c97927e540e9f4467d", + "revCount": 79, + "type": "git", + "url": "https://git.lix.systems/lix-project/nixos-module" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/nixos-module" + } + }, "nix-fast-build": { "inputs": { "flake-parts": "flake-parts_5", @@ -728,11 +802,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1714663357, - "narHash": "sha256-2D2UVkXHivtNUohlJy3GjMaiE7efozJCRgnYOkBbZlY=", + "lastModified": 1715803356, + "narHash": "sha256-wvsg/UMM/jekzgbggH56KLZJzRmwrB9ErevaXXyWyqc=", "owner": "Mic92", "repo": "nix-fast-build", - "rev": "071d44681486271060f938a354ef9ba82ee4f9ea", + "rev": "cfff239d93716e92f6467f8953d8f8c12da1892a", "type": "github" }, "original": { @@ -794,11 +868,11 @@ ] }, "locked": { - "lastModified": 1713946171, - "narHash": "sha256-lc75rgRQLdp4Dzogv5cfqOg6qYc5Rp83oedF2t0kDp8=", + "lastModified": 1715653378, + "narHash": "sha256-6kbg/PI3+SBP17f4T0js3CBsMLVtlD0JqJhDKgzk1mQ=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "230a197063de9287128e2c68a7a4b0cd7d0b50a7", + "rev": "de8b0d60d6fd34f35abffc46adc94ebaa6996ce2", "type": "github" }, "original": { @@ -853,11 +927,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1714984131, - "narHash": "sha256-kjIvFbbKb6RGIJyOgcF+BBWHNzhNSNqRTxX/SkrkRno=", + "lastModified": 1715148395, + "narHash": "sha256-lRxjTxY3103LGMjWdVqntKZHhlmMX12QUjeFrQMmGaE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "e148ccbecbd2fe4dc4768fba67f6db828466ad06", + "rev": "a4e2b7909fc1bdf30c30ef21d388fde0b5cdde4a", "type": "github" }, "original": { @@ -1044,11 +1118,11 @@ }, "nixpkgsStable": { "locked": { - "lastModified": 1714782413, - "narHash": "sha256-tbg0MEuKaPcUrnmGCu4xiY5F+7LW2+ECPKVAJd2HLwM=", + "lastModified": 1715668745, + "narHash": "sha256-xp62OkRkbUDNUc6VSqH02jB0FbOS+MsfMb7wL1RJOfA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "651b4702e27a388f0f18e1b970534162dec09aff", + "rev": "9ddcaffecdf098822d944d4147dd8da30b4e6843", "type": "github" }, "original": { @@ -1060,11 +1134,11 @@ }, "nixpkgsUnstable": { "locked": { - "lastModified": 1714906307, - "narHash": "sha256-UlRZtrCnhPFSJlDQE7M0eyhgvuuHBTe1eJ9N9AQlJQ0=", + "lastModified": 1715787315, + "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "25865a40d14b3f9cf19f19b924e2ab4069b09588", + "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "type": "github" }, "original": { @@ -1140,11 +1214,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1714656196, - "narHash": "sha256-kjQkA98lMcsom6Gbhw8SYzmwrSo+2nruiTcTZp5jK7o=", + "lastModified": 1715653339, + "narHash": "sha256-7lR9tpVXviSccl07GXI0+ve/natd24HAkuy1sQp0OlI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "94035b482d181af0a0f8f77823a790b256b7c3cc", + "rev": "abd6d48f8c77bea7dc51beb2adfa6ed3950d2585", "type": "github" }, "original": { @@ -1156,11 +1230,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1714253743, - "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", + "lastModified": 1714906307, + "narHash": "sha256-UlRZtrCnhPFSJlDQE7M0eyhgvuuHBTe1eJ9N9AQlJQ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", + "rev": "25865a40d14b3f9cf19f19b924e2ab4069b09588", "type": "github" }, "original": { @@ -1289,16 +1363,17 @@ }, "nur": { "locked": { - "lastModified": 1714998905, - "narHash": "sha256-E681Yw09lX4FOxaTauVL4oIiiJ34r6YyZwrmlHGUNq4=", + "lastModified": 1715146663, + "narHash": "sha256-SiCdZF3dwRBgTlHOSB5GCKBcTmkGmyDmVRwr6cHCdgE=", "owner": "nix-community", "repo": "NUR", - "rev": "ef30d0069c3c60af06abad41ddc03c1f220bae1a", + "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", "type": "github" }, "original": { "owner": "nix-community", "repo": "NUR", + "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", "type": "github" } }, @@ -1337,7 +1412,7 @@ "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "gitignore": "gitignore", "nixpkgs": [ "nixpkgsUnstable" @@ -1347,11 +1422,11 @@ ] }, "locked": { - "lastModified": 1714478972, - "narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=", + "lastModified": 1715850717, + "narHash": "sha256-HGY8w2Glb5xe4/l69Auv6R1kxbAQehB1vWFGnvzvSR8=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "2849da033884f54822af194400f8dff435ada242", + "rev": "963646978438e31c0925e16c4eca089fda69bac2", "type": "github" }, "original": { @@ -1435,6 +1510,8 @@ "hercules-ci-effects": "hercules-ci-effects_2", "homeManager": "homeManager", "homeManagerGitWorkspace": "homeManagerGitWorkspace", + "lix": "lix", + "lix-module": "lix-module", "nix-fast-build": "nix-fast-build", "nix-on-droid": "nix-on-droid", "nixDarwin": "nixDarwin", @@ -1533,6 +1610,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tow-boot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 62908f4..81cb6b3 100644 --- a/flake.nix +++ b/flake.nix @@ -27,7 +27,8 @@ nixpkgs-stable.follows = "nixpkgsStable"; }; }; - nur.url = "github:nix-community/NUR"; + # FIXME go back to master after nltch's repository is re-added + nur.url = "github:nix-community/NUR/324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d"; agenix.url = "github:ryantm/agenix"; rock5b.url = "github:aciceri/rock5b-nixos"; ccrEmacs.url = "git+https://git.aciceri.dev/aciceri/emacs.git"; @@ -52,6 +53,16 @@ }; nix-on-droid.url = "github:nix-community/nix-on-droid"; nixd.url = "github:nix-community/nixd"; + lix = { + # url = "git+https://git@git.lix.systems/lix-project/lix?ref=refs/tags/2.90-beta.1"; + url = "git+https://git@git.lix.systems/lix-project/lix"; + flake = false; + }; + lix-module = { + url = "git+https://git.lix.systems/lix-project/nixos-module"; + inputs.lix.follows = "lix"; + inputs.nixpkgs.follows = "nixpkgsUnstable"; + }; }; outputs = inputs @ {flakeParts, ...}: diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index e277422..2e3e044 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -48,7 +48,6 @@ }; home.sessionVariables = { MOZ_ENABLE_WAYLAND = 1; - XDG_CURRENT_DESKTOP = "sway"; NIXOS_OZONE_WL = 1; }; } diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 14e81c2..bc332a4 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -30,6 +30,7 @@ in { ../gammastep # ../kitty ../wezterm + ../wayvnc ]; home.packages = with pkgs; [wl-clipboard waypipe]; diff --git a/hmModules/teams/default.nix b/hmModules/teams/default.nix new file mode 100644 index 0000000..217685e --- /dev/null +++ b/hmModules/teams/default.nix @@ -0,0 +1,3 @@ +{pkgs, ...}: { + home.packages = [pkgs.teams-for-linux]; +} diff --git a/hmModules/wayvnc/default.nix b/hmModules/wayvnc/default.nix new file mode 100644 index 0000000..5f9e090 --- /dev/null +++ b/hmModules/wayvnc/default.nix @@ -0,0 +1,22 @@ +{ + pkgs, + lib, + vpn, + hostname, + ... +}: { + systemd.user.services.wayvnc = { + Install.WantedBy = ["graphical-session.target"]; + + Unit = { + Description = "WayVNC"; + PartOf = ["graphical-session.target"]; + }; + + Service = { + ExecStart = "${lib.getExe' pkgs.wayvnc "wayvnc"} ${vpn.${hostname}.ip} 5900"; + Restart = "on-failure"; + RestartSec = 3; + }; + }; +} diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 896a801..98d65c3 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -2,6 +2,7 @@ fleetModules, lib, pkgs, + config, ... }: { imports = @@ -62,6 +63,8 @@ "email" "digikam" "discord" + "remmina" + "zulip" ]; extraGroups = []; backupPaths = []; @@ -78,7 +81,7 @@ "kvm-intel" ]; - boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_7; + boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { diff --git a/hosts/module.nix b/hosts/module.nix index 507d279..8a4f3b6 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -206,6 +206,7 @@ in { nixpkgs.overlays = config.overlays; }) "${self.outPath}/hosts/${hostname}" + inputs.lix-module.nixosModules.default ] ++ (lib.optionals (config.secrets != []) [ inputs.agenix.nixosModules.default diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 624d03f..c3c2798 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -40,6 +40,7 @@ # "sunshine" "mount-rock5b" "adb" + "guix" ] ++ [ ./disko.nix @@ -75,6 +76,8 @@ "kicad" "monero" "zulip" + "teams" + "obs-studio" ]; extraGroups = []; backupPaths = []; @@ -91,27 +94,16 @@ ]; boot.kernelModules = [ "kvm-amd" - "ddci" + "ddcci" "ddcci-backlight" + "i2c-dev" # needed? ]; - # fix to support linux 6.8 - # FIXME check https://github.com/NixOS/nixpkgs/pull/297430 - boot.extraModulePackages = let - ddci-driver = config.boot.kernelPackages.ddcci-driver.overrideAttrs (_: { - patches = [ - (pkgs.fetchpatch { - url = "https://gitlab.com/Sweenu/ddcci-driver-linux/-/commit/7f851f5fb8fbcd7b3a93aaedff90b27124e17a7e.patch"; - sha256 = "sha256-Y1ktYaJTd9DtT/mwDqtjt/YasW9cVm0wI43wsQhl7Bg="; - }) - ]; - }); - in [ddci-driver]; + boot.extraModulePackages = [config.boot.kernelPackages.ddcci-driver]; systemd.services.ddcci = { serviceConfig.Type = "oneshot"; script = '' - sleep 20 echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device ''; }; diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index 6966981..68b5c84 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -4,6 +4,7 @@ pkgs, fleetHmModules, fleetFlake, + vpn, ... }: let cfg = config.ccr; @@ -100,6 +101,8 @@ in { _module.args = { inherit (config.age) secrets; inherit (cfg) username; + inherit vpn; + hostname = config.networking.hostName; }; } ] diff --git a/modules/guix/default.nix b/modules/guix/default.nix new file mode 100644 index 0000000..5b8a372 --- /dev/null +++ b/modules/guix/default.nix @@ -0,0 +1,6 @@ +{ + services.guix = { + enable = true; + gc.enable = true; + }; +} diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 9ee18a5..db4ab4f 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -8,7 +8,8 @@ nix = { optimise.automatic = true; - package = pkgs.nixVersions.latest; + # Commented out otherwise Lix is not set + # package = pkgs.nixVersions.latest; settings = { auto-optimise-store = true; @@ -21,10 +22,12 @@ substituters = [ # "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" "https://cache.iog.io" + "https://cache.lix.systems" ]; trusted-public-keys = [ # "cache.aciceri.dev~1:nJMfcBnYieY2WMbYDG0s9S5qUhU+V4RPL+X9zcxXxZY=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" ]; }; diff --git a/modules/printing/default.nix b/modules/printing/default.nix index f53f429..10c1539 100644 --- a/modules/printing/default.nix +++ b/modules/printing/default.nix @@ -1,8 +1,11 @@ {pkgs, ...}: { - services.avahi.enable = true; - # Important to resolve .local domains of printers, otherwise you get an error - # like "Impossible to connect to XXX.local: Name or service not known" - services.avahi.nssmdns4 = true; + services.avahi = { + enable = true; + # Important to resolve .local domains of printers, otherwise you get an error + # like "Impossible to connect to XXX.local: Name or service not known" + nssmdns4 = true; + openFirewall = true; + }; hardware.sane.enable = true; services.printing = {