diff --git a/modules/services/x11/display-managers/default.nix b/modules/services/x11/display-managers/default.nix index 1f842c0c9534..42b5ce4aac5c 100644 --- a/modules/services/x11/display-managers/default.nix +++ b/modules/services/x11/display-managers/default.nix @@ -16,6 +16,17 @@ let cfg = config.services.xserver; xorg = pkgs.xorg; + vaapiDrivers = pkgs.buildEnv { + name = "vaapi-drivers"; + paths = cfg.vaapiDrivers; + pathsToLink = "/lib/dri"; + + # To admit zero-length 'paths' + postBuild = " + ensureDir $out/lib/dri + "; + }; + # file provided by services.xserver.displayManager.session.script xsession = wm: dm: pkgs.writeScript "xsession" '' @@ -80,6 +91,8 @@ let ${xorg.xrdb}/bin/xrdb -merge ~/.Xdefaults fi + export LIBVA_DRIVERS_PATH=${vaapiDrivers}/lib/dri; + source /etc/profile ${cfg.displayManager.sessionCommands} diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix index d4dc8b761bfd..c93c443287b1 100644 --- a/modules/services/x11/xserver.nix +++ b/modules/services/x11/xserver.nix @@ -30,7 +30,6 @@ let (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); - fontsForXServer = config.fonts.fonts ++ # We don't want these fonts in fonts.conf, because then modern, @@ -204,6 +203,15 @@ in ''; }; + vaapiDrivers = mkOption { + default = [ pkgs.vaapiIntel pkgs.vaapiVdpau ]; + defaultText = "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]"; + example = "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]"; + description = '' + Names of the packages providing libva acceleration drivers. + ''; + }; + driSupport = mkOption { default = true; description = ''