From 5e6ac5fcf30be007ab38c1b5588a24d8ed048db6 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Fri, 5 Aug 2016 18:29:02 +0200 Subject: [PATCH] nixos/x11: output sections for modesetting driver See #17487. --- nixos/modules/services/x11/xserver.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index e7df2e6b469..51f55322ca6 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -14,6 +14,9 @@ let # Map video driver names to driver packages. FIXME: move into card-specific modules. knownVideoDrivers = { virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; }; + + # modesetting does not have a xf86videomodesetting package as it is included in xorgserver + modesetting = {}; }; fontsForXServer = @@ -435,15 +438,14 @@ in services.xserver.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ]; - # FIXME: somehow check for unknown driver names. - services.xserver.drivers = flip concatMap cfg.videoDrivers (name: + services.xserver.drivers = flip map cfg.videoDrivers (name: let driver = attrByPath [name] (if xorg ? ${"xf86video" + name} then { modules = [xorg.${"xf86video" + name}]; } - else null) + else throw "Unknown video driver: ${name}") knownVideoDrivers; - in optional (driver != null) ({ inherit name; driverName = name; } // driver)); + in { inherit name; modules = []; driverName = name; } // driver); assertions = [ { assertion = config.security.polkit.enable;