about summary refs log tree commit diff
path: root/pkgs/desktops/plasma-5
diff options
context:
space:
mode:
authorAlper Çelik <dev.alpercelik@gmail.com>2023-07-12 15:55:30 +0300
committerAlper Çelik <dev.alpercelik@gmail.com>2023-08-14 16:13:39 +0300
commita37e23c8caeff04f32ac0d98b6f53d5910d86a45 (patch)
treedfac4dd3821f4fdcd5b9b44d4cf247d6fd3ff2a1 /pkgs/desktops/plasma-5
parent3c7487575d9445185249a159046cc02ff364bff8 (diff)
plasma-desktop: add missing gsettings schemas on kaccess
this commit lets kaccess to read screen reader settings[1] using
gsettings by adding required gsettings schemas dirs to the $XDG_DATA_DIRS

this commit also refactors previus gsettings schemas fix of kcm_access
for allowing reuse of wrapped gsettings between kaccess and kcm_access
Diffstat (limited to 'pkgs/desktops/plasma-5')
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix20
1 files changed, 12 insertions, 8 deletions
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index f4ab7969cfead..28dfa434f7b0a 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -58,7 +58,14 @@
 , runCommandLocal
 , makeWrapper
 }:
-
+let
+  # run gsettings with desktop schemas for using in "kcm_access" kcm
+  # and in kaccess
+  gsettings-wrapper = runCommandLocal "gsettings-wrapper" { nativeBuildInputs = [ makeWrapper ]; } ''
+    mkdir -p $out/bin
+    makeWrapper ${glib}/bin/gsettings $out/bin/gsettings --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas.out}/share/gsettings-schemas/${gsettings-desktop-schemas.name}
+  '';
+in
 mkDerivation {
   pname = "plasma-desktop";
   nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ];
@@ -122,19 +129,16 @@ mkDerivation {
     ./kcm-access.patch
   ];
   CXXFLAGS =
-    let
-      # run gsettings with desktop schemas for using in kcm_accces kcm
-      gsettings-wrapper = runCommandLocal "gsettings-wrapper" { nativeBuildInputs = [ makeWrapper ]; } ''
-        makeWrapper ${glib}/bin/gsettings $out --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas.out}/share/gsettings-schemas/${gsettings-desktop-schemas.name}
-      '';
-    in
     [
       ''-DNIXPKGS_HWCLOCK=\"${lib.getBin util-linux}/bin/hwclock\"''
-      ''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}\"''
+      ''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}/bin/gsettings\"''
     ];
   postInstall = ''
     # Display ~/Desktop contents on the desktop by default.
     sed -i "''${!outputBin}/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \
         -e 's/Containment=org.kde.desktopcontainment/Containment=org.kde.plasma.folder/'
   '';
+
+  # wrap kaccess with wrapped gsettings so it can access accessibility schemas
+  qtWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ gsettings-wrapper ]}" ];
 }