From 2e7bd3794f37e1f7e6b0c7bab059f9096ae87001 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 4 May 2025 13:00:24 +0200 Subject: [PATCH 1/5] flake: enable flake-checker --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index 86f3827..5148d6e 100644 --- a/flake.nix +++ b/flake.nix @@ -85,6 +85,7 @@ enable = true; settings.noLambdaPatternNames = true; }; + flake-checker.enable = true; markdownlint.enable = true; nixfmt-rfc-style.enable = true; shellcheck.enable = true; From 0dbec2dda107efd40ee70c8cd7f8bbf5373f9b22 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 4 May 2025 13:05:52 +0200 Subject: [PATCH 2/5] flake: update --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index f5544a5..a2fce2c 100644 --- a/flake.lock +++ b/flake.lock @@ -207,11 +207,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1745955289, - "narHash": "sha256-mmV2oPhQN+YF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o=", + "lastModified": 1746341346, + "narHash": "sha256-WjupK5Xpc+viJlJWiyPHp/dF4aJItp1BPuFsEdv2/fI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "72081c9fbbef63765ae82bff9727ea79cc86bd5b", + "rev": "0833dc8bbc4ffa9cf9b0cbfccf1c5ec8632fc66e", "type": "github" }, "original": { @@ -222,11 +222,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1746055187, - "narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=", + "lastModified": 1746183838, + "narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5", + "rev": "bf3287dac860542719fe7554e21e686108716879", "type": "github" }, "original": { @@ -276,11 +276,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1745930157, - "narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=", + "lastModified": 1746232882, + "narHash": "sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae", + "rev": "7a2622e2c0dbad5c4493cb268aba12896e28b008", "type": "github" }, "original": { From 567a339d57f5e75fd6c416cf00041bdcec8ed17d Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 4 May 2025 13:17:37 +0200 Subject: [PATCH 3/5] core: deduplicate dm-snapshot module --- machines/core/modules.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/machines/core/modules.nix b/machines/core/modules.nix index 4977464..b608601 100644 --- a/machines/core/modules.nix +++ b/machines/core/modules.nix @@ -13,7 +13,6 @@ _: { ]; kernelModules = [ - "dm-snapshot" "e1000e" "nvme" ]; From 981c43c186308486cf0e2b432d81c3f1968a69f3 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 4 May 2025 13:19:03 +0200 Subject: [PATCH 4/5] machine/newton: deduplicate dm-snapshot module --- machines/newton/hardware-configuration.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/machines/newton/hardware-configuration.nix b/machines/newton/hardware-configuration.nix index 3c97088..45a3738 100644 --- a/machines/newton/hardware-configuration.nix +++ b/machines/newton/hardware-configuration.nix @@ -14,7 +14,6 @@ "virtio_pci" "virtio_scsi" ]; - boot.initrd.kernelModules = [ "dm-snapshot" ]; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } From ca9a3149a5388f8e48722f504832c4290e4a2142 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 4 May 2025 13:41:46 +0200 Subject: [PATCH 5/5] hardware/graphics: add AMD option --- machines/thinkman/hardware-configuration.nix | 9 ++-- modules/hardware/graphics/default.nix | 43 ++++++++++++++------ 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/machines/thinkman/hardware-configuration.nix b/machines/thinkman/hardware-configuration.nix index df207e2..af5463d 100644 --- a/machines/thinkman/hardware-configuration.nix +++ b/machines/thinkman/hardware-configuration.nix @@ -17,14 +17,15 @@ in my.hardware = { bluetooth.enable = true; debug.enable = true; - drive-monitor = { - enable = true; - }; + drive-monitor.enable = true; firmware = { enable = true; inherit cpuFlavor; }; - graphics.cpuFlavor = cpuFlavor; + graphics = { + enable = true; + inherit cpuFlavor; + }; id-card.enable = true; keychron.enable = true; monitor.enable = true; diff --git a/modules/hardware/graphics/default.nix b/modules/hardware/graphics/default.nix index a093a19..400df22 100644 --- a/modules/hardware/graphics/default.nix +++ b/modules/hardware/graphics/default.nix @@ -9,29 +9,46 @@ let in { options.my.hardware.graphics = with lib; { + enable = mkEnableOption "graphics configuration"; cpuFlavor = mkOption { - type = with types; nullOr (enum [ "intel" ]); + type = + with types; + nullOr (enum [ + "amd" + "intel" + ]); default = null; example = "intel"; description = "Which kind of GPU"; }; }; - config = lib.mkMerge [ - # Intel GPU - (lib.mkIf (cfg.cpuFlavor == "intel") { - nixpkgs.config.packageOverrides = pkgs: { - vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; - }; - hardware.graphics = { - enable = true; - extraPackages = with pkgs; [ + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + { + hardware.graphics.enable = true; + } + # Intel GPU + (lib.mkIf (cfg.cpuFlavor == "intel") { + nixpkgs.config.packageOverrides = pkgs: { + vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; + }; + hardware.graphics.extraPackages = with pkgs; [ intel-media-driver # LIBVA_DRIVER_NAME=iHD vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) vaapiVdpau libvdpau-va-gl ]; - }; - }) - ]; + }) + + (lib.mkIf (cfg.cpuFlavor == "amd") { + hardware.graphics.extraPackages = with pkgs; [ + amdvlk + ]; + hardware.graphics.extraPackages32 = with pkgs; [ + driversi686Linux.amdvlk + ]; + }) + ] + ); }