default=gtk is used for org.freedesktop.impl.portal.Inhibit. However,
xdg-desktop-portal-gtk's implementation of this interface tries to use
the DBus interfaces org.gnome.SessionManager and
org.freedesktop.ScreenSaver, neither of which is implemented by Sway.
One way this manifests is that newer versions of Firefox will not
idle-inhibit when playing videos.
Adding org.freedesktop.impl.portal.Inhibit=none to sway-portals.conf
will cause at least Firefox to use wayland's idle-inhibit protocol
instead, which sway does implement.
Fixes#2
The ScreenCast portal was misspelled as Screencast, which causes
xdg-desktop-portal to fall back to using the deprecated UseIn key from
the portal definitions, leading to a different portal being used if
multiple portals providing ScreenCast are installed.
Fixes#1
(cherry picked from commit e6a592c9d59ecbec5b5f89be989b8cc6e1072822)
As of version 1.17, xdg-desktop-portal requires desktops to declare
which portals should be used. For Sway, this requires a file
/usr/share/xdg-desktop-portal/sway-portals.conf (or a local user
config).
A reasonable default is to use GTK for the file picker (as wlr doesn't
have file picker support) and wlr for screencast/screenshot support.
Fedora does this similarly. [1]
Upstream is not interested in shipping a configuration file [2] so we
need to do it downstream.
Fixes#72297Fixes#79883
[1] https://src.fedoraproject.org/rpms/sway/blob/rawhide/f/sway-portals.conf
[2] https://github.com/swaywm/sway/issues/7773
The new CAP_SYS_NICE capability granted to sway interferes with user xkb
configs. A patch has been introduced/merged [1] but has yet to see release.
[1] 2f2cdd60de
These might have been intended for some custom downstream use but were never
actually packaged. Seeing as upstream does not approve of these and instead
wishes users to implement their own setup using their Wiki, I think it best to
have the user do just that without downstream fragmentation.
Since seatd has become a requirement for sway's logind support, we can leverage
this package to also obtain elevated system privileges instead of polkit.
Note that using seatd instead of polkit means that a user must be a part of the
"seat" group: Otherwise, the user will not be able to achieve the appropriate
privileged actions.
Also remove a few unnecessary extra packages from the optdepends to give polkit
a bit more visibility.
Without polkit Sway fails to obtain CAP_SYS_ADMIN to become a DRM master. This ensures that a base Arch installation + pacman -S sway gives a working session.