From 4b828d974f995369b9e7b3a220ec36124e2e2a75 Mon Sep 17 00:00:00 2001 From: tux Date: Mon, 10 Aug 2026 21:59:03 +0530 Subject: [PATCH] feat(canopus): replace supergfxd with cardwire --- flake.lock | 261 +++++++++++++++++++++-------- flake.nix | 5 + modules/hosts/canopus/hardware.nix | 18 +- 3 files changed, 208 insertions(+), 76 deletions(-) diff --git a/flake.lock b/flake.lock index c6ada09..ed005ff 100644 --- a/flake.lock +++ b/flake.lock @@ -97,6 +97,28 @@ "url": "https://codeberg.org/LGFae/awww" } }, + "cardwire": { + "inputs": { + "fenix": "fenix", + "git-hooks": "git-hooks", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1786313946, + "narHash": "sha256-WuXFztiy6G2HYCu3KpKrjR8YCpcLePfGEZ+f71x1WnM=", + "owner": "opengamingcollective", + "repo": "cardwire", + "rev": "23a703e725e3309b0287e0e469f86b8ba2a9a2b1", + "type": "github" + }, + "original": { + "owner": "opengamingcollective", + "repo": "cardwire", + "type": "github" + } + }, "crane": { "locked": { "lastModified": 1781825982, @@ -134,8 +156,8 @@ }, "deploy-rs": { "inputs": { - "flake-compat": "flake-compat_2", - "nixpkgs": "nixpkgs_2", + "flake-compat": "flake-compat_3", + "nixpkgs": "nixpkgs_4", "utils": "utils" }, "locked": { @@ -172,6 +194,26 @@ "type": "github" } }, + "fenix": { + "inputs": { + "nixpkgs": "nixpkgs_2", + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1782900513, + "narHash": "sha256-GHrsl1+ysDFgmDQtQSqWS7TiYD2Q58VlwLvnf1+crJM=", + "owner": "nix-community", + "repo": "fenix", + "rev": "16810aa8f4ad89ca480b1513774e8b6f485fe368", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "monthly", + "repo": "fenix", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -189,22 +231,6 @@ } }, "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { "flake": false, "locked": { "lastModified": 1767039857, @@ -220,6 +246,22 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-compat_4": { "flake": false, "locked": { @@ -252,6 +294,22 @@ "type": "github" } }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -386,6 +444,25 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1784288435, + "narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -535,7 +612,7 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" @@ -788,7 +865,7 @@ "impermanence": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1769548169, @@ -821,7 +898,7 @@ }, "lan-mouse": { "inputs": { - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_7", "rust-overlay": "rust-overlay_2" }, "locked": { @@ -841,7 +918,7 @@ "lanzaboote": { "inputs": { "crane": "crane", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_8", "pre-commit": "pre-commit", "rust-overlay": "rust-overlay_3" }, @@ -922,7 +999,7 @@ "nixcord": { "inputs": { "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_9", "nixpkgs-nixcord": "nixpkgs-nixcord", "treefmt-nix": "treefmt-nix" }, @@ -942,7 +1019,7 @@ }, "nixos-hardware": { "inputs": { - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1785232496, @@ -1038,6 +1115,35 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1767892417, + "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1786106723, + "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { "locked": { "lastModified": 1786106723, "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", @@ -1053,7 +1159,7 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_13": { "locked": { "lastModified": 1782175435, "narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=", @@ -1069,7 +1175,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_14": { "locked": { "lastModified": 1770107345, "narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=", @@ -1086,6 +1192,38 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1782723713, + "narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1782918843, + "narHash": "sha256-ETYnV9U7Sr+A45dohzZdfCZKOss4qrTkO+wgNZNvEc0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e8273b29fe1390ec8d4603f2477357555291432e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1743014863, "narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=", @@ -1101,7 +1239,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_5": { "locked": { "lastModified": 1786106723, "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", @@ -1117,7 +1255,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_6": { "locked": { "lastModified": 1768564909, "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", @@ -1133,7 +1271,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_7": { "locked": { "lastModified": 1772963539, "narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=", @@ -1149,7 +1287,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_8": { "locked": { "lastModified": 1781577229, "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", @@ -1165,7 +1303,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_9": { "locked": { "lastModified": 1785386831, "narHash": "sha256-sPS3CaXH8RAT3FZRuy4VcV47iuYIWMMfa0GbyJKC3o4=", @@ -1181,39 +1319,10 @@ "type": "github" } }, - "nixpkgs_8": { - "locked": { - "lastModified": 1767892417, - "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", - "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" - }, - "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1786106723, - "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nur": { "inputs": { "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_10" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1786300301, @@ -1231,7 +1340,7 @@ }, "pre-commit": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "gitignore": "gitignore", "nixpkgs": [ "lanzaboote", @@ -1254,7 +1363,7 @@ }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "nixpkgs": [ "hyprland", "nixpkgs" @@ -1277,6 +1386,7 @@ "root": { "inputs": { "awww": "awww", + "cardwire": "cardwire", "cyber-tux": "cyber-tux", "deploy-rs": "deploy-rs", "disko": "disko", @@ -1291,7 +1401,7 @@ "nix-index-database": "nix-index-database", "nixcord": "nixcord", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs_11", "nixpkgs-stable": "nixpkgs-stable", "nur": "nur", "sops-nix": "sops-nix", @@ -1302,6 +1412,23 @@ "wezterm-flake": "wezterm-flake" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1782864348, + "narHash": "sha256-NVYhLbaefeIUftPlo3kS6qr0xd8eFJRodEiaHrvFKR4=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "0d381ca097a8e0375a19387874d952c0a230ac4f", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "rust-overlay": { "inputs": { "nixpkgs": [ @@ -1411,7 +1538,7 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_13" }, "locked": { "lastModified": 1783174389, @@ -1566,7 +1693,7 @@ }, "treefmt-nix_2": { "inputs": { - "nixpkgs": "nixpkgs_12" + "nixpkgs": "nixpkgs_14" }, "locked": { "lastModified": 1785945821, @@ -1627,7 +1754,7 @@ }, "vicinae-extensions": { "inputs": { - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_6", "nixpkgs": [ "nixpkgs" ], diff --git a/flake.nix b/flake.nix index 8da324d..fa8ddab 100644 --- a/flake.nix +++ b/flake.nix @@ -54,6 +54,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + cardwire = { + url = "github:opengamingcollective/cardwire"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + import-tree.url = "github:vic/import-tree"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11-small"; diff --git a/modules/hosts/canopus/hardware.nix b/modules/hosts/canopus/hardware.nix index 0db473e..422e375 100644 --- a/modules/hosts/canopus/hardware.nix +++ b/modules/hosts/canopus/hardware.nix @@ -13,7 +13,10 @@ [ hardware ] - ++ [ inputs.nixos-hardware.nixosModules.asus-zephyrus-ga503 ]; + ++ [ + inputs.nixos-hardware.nixosModules.asus-zephyrus-ga503 + inputs.cardwire.nixosModules.default + ]; boot.kernelParams = [ "nvidia-drm.modeset=1" ]; boot.initrd.availableKernelModules = [ @@ -43,16 +46,13 @@ power-profiles-daemon.enable = true; upower.enable = true; - supergfxd = { + cardwire = { enable = true; settings = { - mode = "Hybrid"; - vfio_enable = false; - vfio_save = false; - always_reboot = false; - no_logind = false; - logout_timeout_s = 180; - hotplug_type = "None"; + auto_apply_gpu_state = true; + experimental_nvidia_block = true; + battery_auto_switch = true; + battery_auto_switch_mode = "hybrid"; }; };