diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-05-30 22:00:52 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-05-30 22:00:52 +0000 |
commit | eb4c33eecabf30b9e5dd298e396d3046daa60001 (patch) | |
tree | e1f188391081f3ab367ead1f7f3106ddfcf3a5fd /modules/services/x11/xserver.nix | |
parent | 540c673364ecef13bd0b810d8d7b0dde901bbf78 (diff) | |
download | nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.tar nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.tar.gz nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.tar.bz2 nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.tar.lz nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.tar.xz nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.tar.zst nixlib-eb4c33eecabf30b9e5dd298e396d3046daa60001.zip |
* Added an option to enable support for 32-bit binaries (such as Wine
or Google Earth) on 64-bit NixOS on NVIDIA hardware. The 32-bit OpenGL library is symlinked from /var/run/opengl-driver-32, which is added to the LD_LIBRARY_PATH so that 32-bit binaries can find it. svn path=/nixos/trunk/; revision=22062
Diffstat (limited to 'modules/services/x11/xserver.nix')
-rw-r--r-- | modules/services/x11/xserver.nix | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix index 34eefd3023d8..a5a4c908befa 100644 --- a/modules/services/x11/xserver.nix +++ b/modules/services/x11/xserver.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, pkgs_i686, ... }: with pkgs.lib; @@ -199,6 +199,15 @@ in ''; }; + driSupport32Bit = mkOption { + default = false; + description = '' + On 64-bit systems, whether to support Direct Rendering for + 32-bit applications (such as Wine). This is currently only + supported for the <literal>nvidia</literal> driver. + ''; + }; + startOpenSSHAgent = mkOption { default = true; description = '' @@ -420,16 +429,18 @@ in '' rm -f /var/run/opengl-driver ${# !!! The OpenGL driver depends on what's detected at runtime. - if elem "nvidia" driverNames then '' - ln -sf ${kernelPackages.nvidia_x11} /var/run/opengl-driver - '' - else if elem "nvidiaLegacy" driverNames then '' - ln -sf ${kernelPackages.nvidia_x11_legacy} /var/run/opengl-driver - '' + if elem "nvidia" driverNames then + '' + ln -sf ${kernelPackages.nvidia_x11} /var/run/opengl-driver + ${optionalString (pkgs.stdenv.system == "x86_64-linux" && cfg.driSupport32Bit) + "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11.override { libsOnly = true; kernel = null; } } /var/run/opengl-driver-32"} + '' + else if elem "nvidiaLegacy" driverNames then + "ln -sf ${kernelPackages.nvidia_x11_legacy} /var/run/opengl-driver" else if cfg.driSupport then "ln -sf ${pkgs.mesa} /var/run/opengl-driver" else "" - } + } ${cfg.displayManager.job.preStart} |