about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGabriel Ebner <gebner@gebner.org>2016-08-06 07:22:33 +0200
committerGabriel Ebner <gebner@gebner.org>2016-08-06 07:26:25 +0200
commit22088b4b25119083d8adfc055073f563b9cd8115 (patch)
tree4796dfe2c730ff4d9f127af3f10a2a6b7c16185d
parentaf8b7d3a28009569c90901008b78bd339fe57927 (diff)
downloadnixlib-22088b4b25119083d8adfc055073f563b9cd8115.tar
nixlib-22088b4b25119083d8adfc055073f563b9cd8115.tar.gz
nixlib-22088b4b25119083d8adfc055073f563b9cd8115.tar.bz2
nixlib-22088b4b25119083d8adfc055073f563b9cd8115.tar.lz
nixlib-22088b4b25119083d8adfc055073f563b9cd8115.tar.xz
nixlib-22088b4b25119083d8adfc055073f563b9cd8115.tar.zst
nixlib-22088b4b25119083d8adfc055073f563b9cd8115.zip
nixos/x11: make nvidia driver work again
The nvidia driver module directly sets the services.xserver.drivers
option, while still having nvidia/nvidiaBeta/... etc. in the
videoDrivers option.
-rw-r--r--nixos/modules/services/x11/xserver.nix7
1 files changed, 4 insertions, 3 deletions
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 51f55322ca61..b03f70385b1f 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -438,14 +438,15 @@ in
 
     services.xserver.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ];
 
-    services.xserver.drivers = flip map cfg.videoDrivers (name:
+    # FIXME: somehow check for unknown driver names.
+    services.xserver.drivers = flip concatMap cfg.videoDrivers (name:
       let driver =
         attrByPath [name]
           (if xorg ? ${"xf86video" + name}
            then { modules = [xorg.${"xf86video" + name}]; }
-           else throw "Unknown video driver: ${name}")
+           else null)
           knownVideoDrivers;
-      in { inherit name; modules = []; driverName = name; } // driver);
+      in optional (driver != null) ({ inherit name; modules = []; driverName = name; } // driver));
 
     assertions =
       [ { assertion = config.security.polkit.enable;