From 5b774e6e99379b3d0e8e652c452fc51fa421b42f Mon Sep 17 00:00:00 2001 From: Rick Calixte <10281587+rcalixte@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:33:45 -0400 Subject: [PATCH] Add labwc to XDG_CURRENT_DESKTOP to support a portals.conf (#1716) The previous `UseIn` key was deprecated in xdg-desktop-portal 1.17/1.18. It has been superceded by the portals.conf structure so that each desktop can configure the precise desired structure for portals. In addition, support was added to the Desktop Entry Specifications to support a `DesktopNames` key that login managers will use to set XDG_CURRENT_DESKTOP. * [portals.conf Documentation](https://github.com/flatpak/xdg-desktop-portal/blob/main/doc/portals.conf.rst.in) * [Example sway-portals.conf](https://salsa.debian.org/swaywm-team/sway/-/blob/debian/sid/debian/sway-portals.conf) * [Desktop Entry Specifications](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html) Ref: flatpak/xdg-desktop-portal#955 --- data/labwc-portals.conf | 2 ++ data/labwc.desktop | 2 +- docs/environment | 4 ++-- meson.build | 2 ++ src/config/session.c | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 data/labwc-portals.conf diff --git a/data/labwc-portals.conf b/data/labwc-portals.conf new file mode 100644 index 00000000..1a45f719 --- /dev/null +++ b/data/labwc-portals.conf @@ -0,0 +1,2 @@ +[preferred] +default=wlr;* diff --git a/data/labwc.desktop b/data/labwc.desktop index 63ffcfff..5b25c814 100644 --- a/data/labwc.desktop +++ b/data/labwc.desktop @@ -4,4 +4,4 @@ Comment=A wayland stacking compositor Exec=labwc Icon=labwc Type=Application -DesktopNames=wlroots +DesktopNames=labwc;wlroots diff --git a/docs/environment b/docs/environment index ad574bd9..90d7456a 100644 --- a/docs/environment +++ b/docs/environment @@ -60,13 +60,13 @@ ## ## This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording). -## It is automatically set to "wlroots" by labwc though, so it is only +## It is automatically set to "labwc:wlroots" by labwc though, so it is only ## included here for completeness. Again, labwc will not over-write an ## already set environment variable, so if you need it set to something else, ## then uncomment and adjust. ## -# XDG_CURRENT_DESKTOP=wlroots +# XDG_CURRENT_DESKTOP=labwc:wlroots ## ## This causes a virtual output to be created automatically whenever there diff --git a/meson.build b/meson.build index e5ccae58..249c6e68 100644 --- a/meson.build +++ b/meson.build @@ -174,6 +174,8 @@ executable( install_data('data/labwc.desktop', install_dir: get_option('datadir') / 'wayland-sessions') +install_data('data/labwc-portals.conf', install_dir: get_option('datadir') / 'xdg-desktop-portal') + icons = ['labwc-symbolic.svg', 'labwc.svg'] foreach icon : icons icon_path = join_paths('data', icon) diff --git a/src/config/session.c b/src/config/session.c index b52b717a..3238369f 100644 --- a/src/config/session.c +++ b/src/config/session.c @@ -227,7 +227,7 @@ session_environment_init(void) * May be overridden either by already having a value set or by the user * supplied environment file. */ - setenv("XDG_CURRENT_DESKTOP", "wlroots", 0); + setenv("XDG_CURRENT_DESKTOP", "labwc:wlroots", 0); /* * Set default for _JAVA_AWT_WM_NONREPARENTING so that Java applications