ego
ego copied to clipboard
GTK applications (including Firefox) are slow to start with GNOME 44
If you also experience this bug, please add a :+1: reaction.
With some recent-ish updates, GTK applications are quite slow to start up, waiting for 25+ seconds before opening any Windows appear.
Sorry, I haven't had time to finish investigating this. But it looks related to xdg-desktop-portal changes in GNOME version 44.
% G_MESSAGES_DEBUG=all gedit
[...]
(gedit:254958): Gtk-DEBUG: 20:29:55.622: Connecting to session manager
(gedit:254958): Gtk-DEBUG: 20:29:55.622: Failed to get the GNOME session proxy: The name org.gnome.SessionManager is not owned
(gedit:254958): Gtk-DEBUG: 20:29:55.623: Failed to get the Xfce session proxy: The name org.xfce.SessionManager is not owned
[---- 25 s delay ----]
(gedit:254958): Gtk-DEBUG: 20:30:20.641: Failed to get an inhibit portal proxy: Error calling StartServiceByName for org.freedesktop.portal.Desktop: Timeout was reached
journal output:
systemd[251317]: Current graphical user session is inactive.
systemd[251317]: Dependency failed for Portal service (GNOME implementation).
systemd[251317]: xdg-desktop-portal-gnome.service: Job xdg-desktop-portal-gnome.service/start failed with result 'dependency'.
Related links:
- https://bbs.archlinux.org/viewtopic.php?id=285590
- https://bugzilla.redhat.com/show_bug.cgi?id=2176759
- https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/issues/74
One hack fix for this is commenting out the Requisite=graphical-session.target line in the xdg-desktop-portal-gnome.service unit.
But there has to be a better way to fix this...
For example, run as the ego target user:
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/xdg-desktop-portal-gnome.service <<EOF
[Unit]
Description=Portal service (GNOME implementation)
After=graphical-session.target
# Requisite=graphical-session.target
PartOf=graphical-session.target
[Service]
Type=dbus
BusName=org.freedesktop.impl.portal.desktop.gnome
ExecStart=/usr/lib/xdg-desktop-portal-gnome
EOF
systemctl --user daemon-reload