big great refactor

This commit is contained in:
elwrcl committed 2026-05-29 18:33:58 +03:00
1 parent 596bcb4a94
commit 5a7501eec0
73 files changed
+537 -644

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
hardware.bluetooth.enable = true;
}
+9
View File
@@ -0,0 +1,9 @@
{ ... }:
{
imports = [
./bluetooth
./graphics
./udev
];
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
...
}:
{
hardware.graphics.extraPackages = with pkgs; [
amdvlk
rocmPackages.clr.icd
];
services.xserver.videoDrivers = [ "amdgpu" ];
}
+41
View File
@@ -0,0 +1,41 @@
{
config,
lib,
pkgs,
...
}:
let
driver = config.elars.hardware.graphics.driver;
in
{
options.elars.hardware.graphics.driver = lib.mkOption {
type = lib.types.enum [
"intel"
"amd"
"nvidia"
"hybrid-amd-nvidia"
];
default = "intel";
};
config = lib.mkMerge [
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
}
(lib.mkIf (driver == "intel") (import ./intel.nix { inherit config lib pkgs; }))
(lib.mkIf (driver == "amd") (import ./amd.nix { inherit config lib pkgs; }))
(lib.mkIf (driver == "nvidia") (import ./nvidia.nix { inherit config lib pkgs; }))
(lib.mkIf (driver == "hybrid-amd-nvidia") (
lib.mkMerge [
(import ./amd.nix { inherit config lib pkgs; })
(import ./nvidia.nix { inherit config lib pkgs; })
(import ./prime.nix { inherit config lib pkgs; })
]
))
];
}
+45
View File
@@ -0,0 +1,45 @@
{
pkgs,
...
}:
let
wayland-intel-vaapi-driver = pkgs.intel-vaapi-driver.overrideAttrs (oldAttrs: {
version = "2.4.4-wayland-fix";
src = pkgs.fetchFromGitHub {
owner = "irql-notlessorequal";
repo = "intel-vaapi-driver";
rev = "929e936ec1f451a5daa12b0c7367687b712b8c2c";
hash = "sha256-tZ1rZ+4bRxarcFQhP8V2Mfz0sJ5rBgHYLu2ulrQwL+U=";
};
});
wayland-intel-vaapi-driver-32 = pkgs.pkgsi686Linux.intel-vaapi-driver.overrideAttrs (oldAttrs: {
version = "2.4.4-wayland-fix";
src = pkgs.fetchFromGitHub {
owner = "irql-notlessorequal";
repo = "intel-vaapi-driver";
rev = "929e936ec1f451a5daa12b0c7367687b712b8c2c";
hash = "sha256-tZ1rZ+4bRxarcFQhP8V2Mfz0sJ5rBgHYLu2ulrQwL+U=";
};
});
in
{
hardware.graphics.extraPackages = [
wayland-intel-vaapi-driver
pkgs.libvdpau-va-gl
pkgs.mesa
];
hardware.graphics.extraPackages32 = [
wayland-intel-vaapi-driver-32
pkgs.pkgsi686Linux.libvdpau-va-gl
pkgs.pkgsi686Linux.mesa
];
services.xserver.videoDrivers = [ "modesetting" ];
environment.variables = {
LIBVA_DRIVER_NAME = "i965";
};
}
+15
View File
@@ -0,0 +1,15 @@
{
config,
...
}:
{
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
}
+9
View File
@@ -0,0 +1,9 @@
{ ... }:
{
hardware.nvidia.prime = {
offload.enable = true;
amdgpuBusId = "PCI:X:X:X";
nvidiaBusId = "PCI:X:X:X";
};
}
+20
View File
@@ -0,0 +1,20 @@
{ ... }:
{
services.udev.extraRules = ''
KERNEL=="ttyACM[0-9]*", MODE="0666"
KERNEL=="ttyUSB[0-9]*", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
'';
services.udisks2.enable = true;
services.tumbler.enable = true;
services.gvfs.enable = true;
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (action.id.match("org.freedesktop.udisks2.") &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
'';
}