Bug 2241173
| Summary: | File chooser dialog is not showing with sway | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | benjgentil |
| Component: | xdg-desktop-portal | Assignee: | David King <amigadave> |
| Status: | CLOSED EOL | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 38 | CC: | alciregi, alebastr89, amigadave, debarshir, dpgraham4401, gnome-sig, grumpey0, ignacio_taranto, jadahl, joep, kparal, me, plautrba, sj, sway-sig, zsvetlik |
| Target Milestone: | --- | Keywords: | Desktop |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2024-05-31 08:35:30 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
benjgentil
2023-09-28 11:58:56 UTC
When you say "install sway", what exactly do you mean? Which package are you installing? Also, please, provide the output of `rpm -qa|grep sway`. The file /usr/share/xdg-desktop-portal/portals/gtk.portal is owned by xdg-desktop-portal-gtk, so if the correct solution is the one you are suggesting, a bug against xdg-desktop-portal-gtk should be opened. Thanks Thank you for the fast response! I installed sway quite a while ago so to be honest I don't remember the exact packages I installed, I just know that I have `sudo dnf install sway` in my shell history and my current packages are: ``` swaylock-1.7.2-1.fc38.x86_64 swayidle-1.8.0-2.fc38.x86_64 swaybg-1.2.0-2.fc38.x86_64 sway-wallpapers-1.8.1-1.fc38.noarch sway-1.8.1-1.fc38.x86_64 sway-config-upstream-1.8.1-1.fc38.noarch sway-systemd-0.4.0-1.fc38.noarch ``` I filed the bug against sway because the issue is sway-specific and I don't know how those dialogs should be displayed when using sway, maybe xdg-desktop-portal shouldn't be used with sway, I wish I could select multiple components in the bug tracker as it is more of an interface issue between 2 components rather than a bug on a single one. Lovely. And 100% reproducible - just take up-to-date F38 Sway spin installation and add `xdg-desktop-portal-gnome`.
`xdg-desktop-portal` picks `xdg-desktop-portal-gnome` for all the portals provided by the backend. Completely ignoring the fact that GNOME portal backend is running in a degraded Settings-only mode and refuses to serve any other impls.
It should be fixed with `xdg-desktop-portal-1.18.0` and new `portals.conf` configuration, but we don't have that in Fedora 38 :(
> If I set `UseIn` to `gnome;sway` instead of `gnome` in /usr/share/xdg-desktop-portal/portals/gtk.portal, everything works as expected.
Yep. That seems to work, because it goes straight to the -gtk backend instead of checking all available implementations in alphabetic order.
Doesn't really help on Silverblue with layered Sway (/usr is readonly), but `Environment=XDG_DESKTOP_PORTAL_DIR=%h/.config/xdg-desktop-portal/portals` in the systemd unit override may solve that.
Anyways, the bug goes to the rightful owner at `xdg-desktop-portal`.
```
systemd[890]: Starting xdg-desktop-portal-gnome.service - Portal service (GNOME implementation)...
xdg-desktop-portal-gnome[11157]: Non-compatible display server, exposing settings only.
systemd[890]: Started xdg-desktop-portal-gnome.service - Portal service (GNOME implementation).
...
xdg-desktop-portal[11131]: XDP: load portals from /usr/share/xdg-desktop-portal/portals
systemd[890]: Starting xdg-desktop-portal.service - Portal service...
xdg-desktop-portal[11131]: XDP: loading /usr/share/xdg-desktop-portal/portals/wlr.portal
xdg-desktop-portal[11131]: XDP: portal implementation for wlroots, sway, Wayfire, river, phosh, Hyprland
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Screenshot
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.ScreenCast
xdg-desktop-portal[11131]: XDP: loading /usr/share/xdg-desktop-portal/portals/gnome.portal
xdg-desktop-portal[11131]: XDP: portal implementation for gnome
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Account
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Screenshot
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.ScreenCast
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.RemoteDesktop
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Lockdown
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Background
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Settings
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Wallpaper
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Print
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
xdg-desktop-portal[11131]: XDP: loading /usr/share/xdg-desktop-portal/portals/gtk.portal
xdg-desktop-portal[11131]: XDP: portal implementation for gnome
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Print
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Notification
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Inhibit
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Access
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Account
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Email
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
xdg-desktop-portal[11131]: XDP: portal implementation supports org.freedesktop.impl.portal.Settings
xdg-desktop-portal[11131]: XDP: Creating dummy proxy for org.freedesktop.impl.portal.Lockdown on org.freedesktop.impl.portal.desktop.gnome
xdg-desktop-portal[11131]: XDP: Dummy proxy created
xdg-desktop-portal[11131]: XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Lockdown
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.MemoryMonitor
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.PowerProfileMonitor
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.NetworkMonitor
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.ProxyResolver
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.Trash
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.GameMode
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.Realtime
xdg-desktop-portal[11131]: XDP: Using gnome.portal for org.freedesktop.impl.portal.Settings
xdg-desktop-portal[11131]: XDP: Using gtk.portal for org.freedesktop.impl.portal.Settings
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.Settings
xdg-desktop-portal[11131]: XDP: Creating dummy proxy for org.freedesktop.impl.portal.FileChooser on org.freedesktop.impl.portal.desktop.gnome
xdg-desktop-portal[11131]: XDP: Dummy proxy created
xdg-desktop-portal[11131]: XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.FileChooser <= this.
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.FileChooser
xdg-desktop-portal[11131]: XDP: Creating dummy proxy for org.freedesktop.impl.portal.AppChooser on org.freedesktop.impl.portal.desktop.gnome
xdg-desktop-portal[11131]: XDP: Dummy proxy created
xdg-desktop-portal[11131]: XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.AppChooser
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.OpenURI
xdg-desktop-portal[11131]: XDP: Creating dummy proxy for org.freedesktop.impl.portal.Print on org.freedesktop.impl.portal.desktop.gnome
xdg-desktop-portal[11131]: XDP: Dummy proxy created
xdg-desktop-portal[11131]: XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Print
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.Print
xdg-desktop-portal[11131]: XDP: Creating dummy proxy for org.freedesktop.impl.portal.Notification on org.freedesktop.impl.portal.desktop.gtk
xdg-desktop-portal[11131]: XDP: Dummy proxy created
xdg-desktop-portal[11131]: XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Notification
xdg-desktop-portal[11131]: XDP: providing portal org.freedesktop.portal.Notification
```
after upgrading to fedora 39 i ran into the same bug, i am using Enlightenment. ``` enlightenment-data-0.25.4-3.fc39.noarch enlightenment-0.25.4-3.fc39.x86_64 ``` ctrl+o in brave-browser / firefox does not work. workaround with adding enlightenment to UseIn in file /usr/share/xdg-desktop-portal/portals/gtk.portal does not seem to work. I fixed by creating /usr/libexec/xdg-desktop-portal as personal application launcher and adding it to startup applications, that way it's started with enlightenment environment. i am unable to remove xdg-desktop-portal-gnome as it's used by gnome-shell which protected. ``` Problem: The operation would result in removing the following protected packages: gnome-shell ``` thanks for helping out. for xdg-desktop-portal-gtk (amongst others) to show the file picker systemd needs to have a (default) DISPLAY env variable in it's own systemd environment this default behaviour no longer exists?! fix therefor: make sure DISPLAY=:0 in the (sway) user environment to check: env | grep DISPLAY then import this in the --user environment of systemd systemctl --user import-environment DISPLAY Fedora Linux 38 entered end-of-life (EOL) status on 2024-05-21. Fedora Linux 38 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora Linux please feel free to reopen this bug against that version. Note that the version field may be hidden. Click the "Show advanced fields" button if you do not see the version field. If you are unable to reopen this bug, please file a new report against an active release. Thank you for reporting this bug and we are sorry it could not be fixed. Based on this discussion: https://discussion.fedoraproject.org/t/131018 the problem is that people affected don't have sway-systemd package installed, perhaps because they disabled weak deps support. Please check. It could be argued that this could be a hard dependency (in that case feel free to report it against sway-config-fedora and discuss) or that it should be explicitly listed in the "Sway Desktop" dnf group (in that case file a ticket against fedora-comps [1]). [1] https://pagure.io/fedora-comps |