diff --git a/nixos/modules/config/power-management.nix b/nixos/modules/config/power-management.nix index 7299136235e..c80b1ec3ddc 100644 --- a/nixos/modules/config/power-management.nix +++ b/nixos/modules/config/power-management.nix @@ -65,9 +65,6 @@ in config = mkIf cfg.enable { - # Enable the ACPI daemon. Not sure whether this is essential. - services.acpid.enable = true; - boot.kernelModules = [ "acpi_cpufreq" "powernow-k8" "cpufreq_performance" "cpufreq_powersave" "cpufreq_ondemand" "cpufreq_conservative" diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 2677f758456..206cf128a9b 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -24,6 +24,11 @@ let driverNames = config.hardware.opengl.videoDrivers; + needsAcpid = + (elem "nvidia" driverNames) || + (elem "nvidiaLegacy173" driverNames) || + (elem "nvidiaLegacy304" driverNames); + drivers = flip map driverNames (name: { inherit name; driverName = name; } // attrByPath [name] (if (hasAttr ("xf86video" + name) xorg) then { modules = [(getAttr ("xf86video" + name) xorg) ]; } else throw "unknown video driver `${name}'") knownVideoDrivers); @@ -428,6 +433,8 @@ in ++ optional (elem "virtualbox" driverNames) xorg.xrefresh ++ optional (elem "ati_unfree" driverNames) kernelPackages.ati_drivers_x11; + services.acpid.enable = mkIf needsAcpid true; + environment.pathsToLink = [ "/etc/xdg" "/share/xdg" "/share/applications" "/share/icons" "/share/pixmaps" ]; @@ -436,7 +443,8 @@ in systemd.services."display-manager" = { description = "X11 Server"; - after = [ "systemd-udev-settle.service" "local-fs.target" ]; + after = [ "systemd-udev-settle.service" "local-fs.target" ] + ++ optional needsAcpid "acpid.service"; restartIfChanged = false;