diff options
author | Josselin Poiret <josselin.poiret@protonmail.ch> | 2021-09-13 07:45:06 +0000 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2021-10-02 17:17:44 +0000 |
commit | 5c3f0c3e03757b6653f4c2386a526a2d9d6532f7 (patch) | |
tree | 198208aa5bf83200d37abee56ce724e2b78d8ea4 /gnu | |
parent | fc24bcb86fb68e1e69c168d5de7d94f01148c9cd (diff) |
gnu: Add Wayland support for GDM.
Add the optional flag `wayland?` in `gdm-configuration` to launch GDM with
Wayland, enabling the use of Wayland sessions with GDM.
* gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnome.scm (gdm): Use it.
* gnu/services/xorg.scm (<gdm-configuration>)[wayland?]: New field.
(gdm-configuration): Honor it.
(gdm-shepherd-service): Add the XCURSOR_PATH environment variable.
* doc/guix.texi (X Window): Document it
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 4 | ||||
-rw-r--r-- | gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch | 22 | ||||
-rw-r--r-- | gnu/services/xorg.scm | 15 |
4 files changed, 37 insertions, 5 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 160e651624..cc2a634d37 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1101,6 +1101,7 @@ dist_patch_DATA = \ %D%/packages/patches/gd-Revert-fix-303-gdlib.pc-use-Requires-instead-of-Libs.patch \ %D%/packages/patches/gdm-default-session.patch \ %D%/packages/patches/gdm-elogind-support.patch \ + %D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch \ %D%/packages/patches/geary-CVE-2020-24661.patch \ %D%/packages/patches/genimage-signedness.patch \ %D%/packages/patches/geoclue-config.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cf3a4e79fa..f0a8a4265d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -63,6 +63,7 @@ ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch> ;;; ;;; This file is part of GNU Guix. ;;; @@ -8148,7 +8149,8 @@ library.") (patches (search-patches "gdm-default-session.patch" - "gdm-elogind-support.patch")))) + "gdm-elogind-support.patch" + "gdm-remove-hardcoded-xwayland-path.patch")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t diff --git a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch new file mode 100644 index 0000000000..366fb91668 --- /dev/null +++ b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch @@ -0,0 +1,22 @@ +Remove check for hardcoded Xwayland path in gdm. + +--- + daemon/gdm-local-display-factory.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c +index da1093bb..37355c06 100644 +--- a/daemon/gdm-local-display-factory.c ++++ b/daemon/gdm-local-display-factory.c +@@ -203,7 +203,7 @@ gdm_local_display_factory_use_wayland (void) + #ifdef ENABLE_WAYLAND_SUPPORT + gboolean wayland_enabled = FALSE; + if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) { +- if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) ++ if (wayland_enabled) + return TRUE; + } + #endif +-- +2.33.0 + diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index d5c5316d3f..30b261453b 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch> ;;; ;;; This file is part of GNU Guix. ;;; @@ -883,7 +884,8 @@ the GNOME desktop environment.") (xorg-configuration gdm-configuration-xorg (default (xorg-configuration))) (x-session gdm-configuration-x-session - (default (xinitrc)))) + (default (xinitrc))) + (wayland? gdm-configuration-wayland? (default #f))) (define (gdm-configuration-file config) (mixed-text-file "gdm-custom.conf" @@ -909,8 +911,9 @@ the GNOME desktop environment.") ;; See also ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=39281>. "InitialSetupEnable=false\n" - ;; Enable me once X is working. - "WaylandEnable=false\n" + "WaylandEnable=" (if (gdm-configuration-wayland? config) + "true" + "false") "\n" "\n" "[debug]\n" "Enable=" (if (gdm-configuration-debug? config) @@ -976,7 +979,11 @@ the GNOME desktop environment.") ;; can depend on GNOME Shell directly. (cons #$gnome-shell '#$(gdm-configuration-gnome-shell-assets - config))))))))) + config))))) + ;; Add XCURSOR_PATH so that mutter can find its + ;; cursors. gdm doesn't login so doesn't source + ;; the corresponding line in /etc/profile. + "XCURSOR_PATH=/run/current-system/profile/share/icons")))) (stop #~(make-kill-destructor)) (respawn? #t)))) |