summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2017-02-11 17:11:18 +0300
committerNikolay Amiantov <ab@fmap.me>2017-02-19 19:46:01 +0300
commit22750b36fdd96f0b88a8048e00e6ef4c31106f81 (patch)
treed83cd4c1988cc876661812bee3a796610250481a /pkgs/os-specific
parentf6eedf08674769a0bf12ec0ce8e3e7d6a8dc3c1b (diff)
downloadnixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.tar
nixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.tar.gz
nixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.tar.bz2
nixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.tar.lz
nixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.tar.xz
nixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.tar.zst
nixlib-22750b36fdd96f0b88a8048e00e6ef4c31106f81.zip
nvidia: support application profiles
Closes #22666.
Diffstat (limited to 'pkgs/os-specific')
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh7
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix1
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix3
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy173.nix1
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/settings.nix4
5 files changed, 15 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 7dee6b4776c1..24a2e2cf06ff 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -68,6 +68,13 @@ installPhase() {
             nuke-refs $i
             cp $i $bin/lib/modules/$kernelVersion/misc/
         done
+
+        # Install application profiles.
+        if [ "$useProfiles" = "1" ]; then
+            mkdir -p $bin/share/nvidia
+            cp nvidia-application-profiles-*-rc $bin/share/nvidia/nvidia-application-profiles-rc
+            cp nvidia-application-profiles-*-key-documentation $bin/share/nvidia/nvidia-application-profiles-key-documentation
+        fi
     fi
 
     # All libs except GUI-only are installed now, so fixup them.
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 204ef62138a1..5e26fef6e19d 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -37,6 +37,7 @@ in
     settingsSha256 = "0q92xw4fr9p5nbhj1plynm50d32881861daxfwrisywszqijhmlf";
     persistencedSha256 = null;
     useGLVND = false;
+    useProfiles = false;
   };
 
   legacy_173 = callPackage ./legacy173.nix { };
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index 1398dae0e64f..9e39a6df09c1 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -4,6 +4,7 @@
 , settingsSha256
 , persistencedSha256
 , useGLVND ? true
+, useProfiles ? true
 , preferGtk2 ? false
 }:
 
@@ -41,7 +42,7 @@ let
         }
       else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
-    inherit version useGLVND;
+    inherit version useGLVND useProfiles;
     inherit (stdenv) system;
 
     outputs = [ "out" ] ++ optional (!libsOnly) "bin";
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy173.nix b/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
index 19199579e77f..6e5b412a9b8f 100644
--- a/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation {
     settings = null;
     persistenced = null;
     useGLVND = false;
+    useProfiles = false;
   };
 
   meta = {
diff --git a/pkgs/os-specific/linux/nvidia-x11/settings.nix b/pkgs/os-specific/linux/nvidia-x11/settings.nix
index abf208cff93b..f89997441649 100644
--- a/pkgs/os-specific/linux/nvidia-x11/settings.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/settings.nix
@@ -24,6 +24,10 @@ stdenv.mkDerivation rec {
   makeFlags = [ "NV_USE_BUNDLED_LIBJANSSON=0" ];
   installFlags = [ "PREFIX=$(out)" ];
 
+  postPatch = lib.optionalString nvidia_x11.useProfiles ''
+    sed -i 's,/usr/share/nvidia/,${nvidia_x11.bin}/share/nvidia/,g' src/gtk+-2.x/ctkappprofile.c
+  '';
+
   preBuild = ''
     if [ -e src/libXNVCtrl/libXNVCtrl.a ]; then
       ( cd src/libXNVCtrl