diff --git a/flake.lock b/flake.lock index 155fe96..867bc83 100644 --- a/flake.lock +++ b/flake.lock @@ -81,11 +81,11 @@ ] }, "locked": { - "lastModified": 1715756862, - "narHash": "sha256-cNGZK/RNvb29giR2KtnbwU5lx2Kw+wWqAaeWqfYlPts=", + "lastModified": 1715822638, + "narHash": "sha256-Z4ZoyK8jYRmBZwMaEZLEmAilrfdpekwwwohliqC14/E=", "owner": "nix-community", "repo": "disko", - "rev": "cb1d6fba694ab3887600d606106f5a044ba1712c", + "rev": "476eef8d85aa09389ae7baf6e6b60357f6a01432", "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": 1715626852, - "narHash": "sha256-ig33Osi+Kp36TyGS1S4eu1K9FEXJXCh5CdU+eHekTPI=", + "lastModified": 1715863700, + "narHash": "sha256-08giWrlIb9iWDRWW1wBPq+oC6o5VE9Wov8DHkZFVzc8=", "owner": "hercules-ci", "repo": "hercules-ci-agent", - "rev": "eb5298b1b57e8e817f7c2a05a09c17bf98ffe329", + "rev": "728945aa73ddc9896b6dc0c2bb4660887fc241bb", "type": "github" }, "original": { @@ -719,6 +752,48 @@ "type": "github" } }, + "lix": { + "flake": false, + "locked": { + "lastModified": 1714955862, + "narHash": "sha256-REWlo2RYHfJkxnmZTEJu3Cd/2VM+wjjpPy7Xi4BdDTQ=", + "ref": "refs/tags/2.90-beta.1", + "rev": "b6799ab0374a8e1907a48915d3187e07da41d88c", + "revCount": 15501, + "type": "git", + "url": "https://git@git.lix.systems/lix-project/lix" + }, + "original": { + "ref": "refs/tags/2.90-beta.1", + "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": 1715863402, + "narHash": "sha256-WbNIHMe+NPRtn7AwFhIDYwMWwgTNJ5pVUXfcdhxv8ek=", + "ref": "refs/heads/main", + "rev": "36dbb9dbfbac2b72c431a3a934258079931d0065", + "revCount": 80, + "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 +803,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": { @@ -1060,11 +1135,11 @@ }, "nixpkgsUnstable": { "locked": { - "lastModified": 1715534503, - "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", + "lastModified": 1715787315, + "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", + "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "type": "github" }, "original": { @@ -1289,16 +1364,17 @@ }, "nur": { "locked": { - "lastModified": 1715777889, - "narHash": "sha256-Ano+4M2xb91QjQ8Ymx4aAIZ1XjhPULSpwd/S2yEvDds=", + "lastModified": 1715146663, + "narHash": "sha256-SiCdZF3dwRBgTlHOSB5GCKBcTmkGmyDmVRwr6cHCdgE=", "owner": "nix-community", "repo": "NUR", - "rev": "2d6fba7ccd75b46ef12b797fd888f4d9ad80cbc6", + "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", "type": "github" }, "original": { "owner": "nix-community", "repo": "NUR", + "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", "type": "github" } }, @@ -1337,7 +1413,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 +1423,11 @@ ] }, "locked": { - "lastModified": 1715609711, - "narHash": "sha256-/5u29K0c+4jyQ8x7dUIEUWlz2BoTSZWUP2quPwFCE7M=", + "lastModified": 1715850717, + "narHash": "sha256-HGY8w2Glb5xe4/l69Auv6R1kxbAQehB1vWFGnvzvSR8=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "c182c876690380f8d3b9557c4609472ebfa1b141", + "rev": "963646978438e31c0925e16c4eca089fda69bac2", "type": "github" }, "original": { @@ -1435,6 +1511,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 +1611,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..6e38e0b 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,15 @@ }; 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"; + 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 = {