ego icon indicating copy to clipboard operation
ego copied to clipboard

GTK applications (including Firefox) are slow to start with GNOME 44

Open intgr opened this issue 2 years ago • 2 comments

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'.

intgr avatar Jul 24 '23 12:07 intgr

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

intgr avatar Jul 24 '23 12:07 intgr

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

intgr avatar Oct 08 '23 19:10 intgr