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
This commit is contained in:
Alper Çelik 2023-07-12 15:55:30 +03:00
parent 3c7487575d
commit a37e23c8ca
No known key found for this signature in database
GPG key ID: FA90C0AB738AB873

View file

@ -58,7 +58,14 @@
, runCommandLocal , runCommandLocal
, makeWrapper , 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 { mkDerivation {
pname = "plasma-desktop"; pname = "plasma-desktop";
nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ]; nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ];
@ -122,19 +129,16 @@ mkDerivation {
./kcm-access.patch ./kcm-access.patch
]; ];
CXXFLAGS = 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_HWCLOCK=\"${lib.getBin util-linux}/bin/hwclock\"''
''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}\"'' ''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}/bin/gsettings\"''
]; ];
postInstall = '' postInstall = ''
# Display ~/Desktop contents on the desktop by default. # Display ~/Desktop contents on the desktop by default.
sed -i "''${!outputBin}/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \ sed -i "''${!outputBin}/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \
-e 's/Containment=org.kde.desktopcontainment/Containment=org.kde.plasma.folder/' -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 ]}" ];
} }