gdm needs the "/share" subdirectory of these packages present in XDG_DATA_DIRS such that the accessibility settings work: - at-spi2-core: contains accessibility dbus service. - dconf: To be able to change settings. - gnome-control-center: icon.
* gnu/packages/gnome.scm (gdm)[inputs]: Add at-spi2-core, dconf, gnome-control-center. [phases]: Add wrap-accessibility-dependencies phase. Change-Id: Ibfe8f1aee9c8fe0c06f895de121f0f84defe4773 --- Hi everyone, Here is v3 of gdm accessibility issue which adds the wrapper phase we've been discussing. I added the extra inputs under a seperate section in the inputs. If you'd like to keep them in alphabetical order feel free to adjust this. ALso I am not sure if the format of my commit message is ok. I've tested on both master and gnome-team and it works on both. To ennable the screenreader it is enough for orca to be in the system profile (and orca working i.e. on gnome-team branch). dconf is both a native and normal input: Based on the fedora gdm.spec it seems like a build dependency however i was not able to verify this as cross-compiling (for i686-linux-gnu) requries me to bootstrap gcc. At leeast the default tests do not seem to require it. Adding gnome-control-center, which is used for the icon, pulls in python dependencies which breaks cross compiling. Maybe you have some ideas for this. Also some other thing that I notices is that because /var/lib/gdm is mounted as tmpfs this makes the changes in the gdm accessibility settings not persist through reboots which is annoying. These will get stored in /var/lib/gdm/.config/dconf/. gnu/packages/gnome.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 953bd817ed..a967c9cb16 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -77,6 +77,7 @@ ;;; Copyright © 2023 Juliana Sims <[email protected]> ;;; Copyright © 2023 Dominik Delgado Steuter <[email protected]> ;;; Copyright © 2023 Zhu Zihao <[email protected]> +;;; Copyright © 2024 Dariqq <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -9007,7 +9008,18 @@ (define-public gdm (for-each (lambda (desktop) (symlink desktop (basename desktop))) (find-files - (string-append settings "/etc/xdg")))))))))) + (string-append settings "/etc/xdg"))))))) + ;; GDM needs some additional programs available via XDG_DATA_DIRS, + ;; to make accessibility settings and related services available. + (add-after 'install 'wrap-accessibility-dependencies + (lambda _ + (wrap-program (string-append #$output "/bin/gdm") + `("XDG_DATA_DIRS" ":" prefix + #$(map (lambda (input) + (file-append (this-package-input input) "/share")) + '("at-spi2-core" + "dconf" + "gnome-control-center"))))))))) (native-inputs (list `(,glib "bin") ;for glib-compile-schemas, etc. dconf @@ -9029,7 +9041,12 @@ (define-public gdm iso-codes libcanberra libgudev - linux-pam)) + linux-pam + + ;; accessibility dependencies + at-spi2-core + dconf + gnome-control-center)) (synopsis "Display manager for GNOME") (home-page "https://wiki.gnome.org/Projects/GDM/") (description base-commit: ffcce77ec488e3c89401ad77fafa65fcd9e9f5be -- 2.41.0
