diff options
Diffstat (limited to 'nixos/modules/services/hardware/amd-hybrid-graphics.nix')
-rw-r--r-- | nixos/modules/services/hardware/amd-hybrid-graphics.nix | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/nixos/modules/services/hardware/amd-hybrid-graphics.nix b/nixos/modules/services/hardware/amd-hybrid-graphics.nix new file mode 100644 index 000000000000..d938867186d0 --- /dev/null +++ b/nixos/modules/services/hardware/amd-hybrid-graphics.nix @@ -0,0 +1,39 @@ +{ config, pkgs, ... }: + +{ + + ###### interface + + options = { + + hardware.amdHybridGraphics.disable = pkgs.lib.mkOption { + default = false; + type = pkgs.lib.types.bool; + description = '' + Completely disable the AMD graphics card and use the + integrated graphics processor instead. + ''; + }; + + }; + + + ###### implementation + + config = pkgs.lib.mkIf config.hardware.amdHybridGraphics.disable { + systemd.services."amd-hybrid-graphics" = { + path = [ pkgs.bash ]; + description = "Disable AMD Card"; + after = [ "sys-kernel-debug.mount" ]; + requires = [ "sys-kernel-debug.mount" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.bash}/bin/sh -c 'echo -e \"IGD\\nOFF\" > /sys/kernel/debug/vgaswitcheroo/switch; exit 0'"; + ExecStop = "${pkgs.bash}/bin/sh -c 'echo ON >/sys/kernel/debug/vgaswitcheroo/switch; exit 0'"; + }; + }; + }; + +} |