diff options
| author | adikro <adikro@disroot.org> | 2025-12-24 16:21:00 +0100 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2025-12-24 16:21:00 +0100 |
| commit | 6aaa5993e4c1cfb205ed555d958702f9bba1770d (patch) | |
| tree | 3af8cf20967cf10542edd2e51232b1da70002fde /os/core/drivers.nix | |
| parent | 2ceabfd1d1dc03ca895e960048b73a82e29e45e8 (diff) | |
a bunch of changes, renames sys to os and refactored some of the logic
Diffstat (limited to 'os/core/drivers.nix')
| -rw-r--r-- | os/core/drivers.nix | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/os/core/drivers.nix b/os/core/drivers.nix new file mode 100644 index 0000000..c769786 --- /dev/null +++ b/os/core/drivers.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.sys.core.drivers; +in +{ + options.sys.core.drivers = { + enable = lib.mkEnableOption "enables hardware drivers"; + amd.enable = lib.mkEnableOption "AMD specific drivers and microcode"; + stability = lib.mkOption { + type = lib.types.enum [ "stable" "unstable" ]; + default = "stable"; + }; + }; + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + services.smartd.enable = true; + hardware.sensor.iio.enable = true; + hardware.enableAllFirmware = true; + hardware.cpu.amd.updateMicrocode = true; + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + } + + (lib.mkIf cfg.amd.enable { + services.xserver.videoDrivers = [ "amdgpu" ]; + hardware.amdgpu = { + initrd.enable = true; + overdrive.enable = true; + }; + }) + + (lib.mkIf (cfg.amd.enable && cfg.stability == "unstable") { + services.lact.enable = true; + boot.kernelPackages = pkgs.linuxPackages_cachyos-lto-znver4; + chaotic.mesa-git = { + enable = true; + extraPackages = [ pkgs.mesa_git.opencl ]; + }; + }) + + (lib.mkIf (cfg.amd.enable && cfg.stability == "stable") { + boot.kernelPackages = pkgs.linuxPackages_latest; + }) + ]); +} |
