diff --git a/internal/installer/installer_linux.go b/internal/installer/installer_linux.go index 100fb4d..c3d8bc8 100644 --- a/internal/installer/installer_linux.go +++ b/internal/installer/installer_linux.go @@ -60,13 +60,15 @@ func Install(opts InstallOptions) error { unit := `[Unit] Description=luxtools-client (local folder opener helper) -After=graphical-session.target +After=graphical-session.target dbus.service +Wants=dbus.service PartOf=graphical-session.target [Service] Type=simple EnvironmentFile=%h/.config/luxtools-client/luxtools-client.env Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=%t/bus +ExecStartPre=/bin/sh -lc 'for i in $(seq 1 150); do systemctl --user show-environment | grep -qE "^(DISPLAY|WAYLAND_DISPLAY)=" && exit 0; sleep 0.2; done; echo "Timed out waiting for DISPLAY/WAYLAND_DISPLAY in systemd --user environment" >&2; systemctl --user show-environment >&2; exit 1' ExecStart=/bin/sh -lc '%h/.local/share/luxtools-client/luxtools-client -listen "$LISTEN" $ALLOW_ARGS' Restart=on-failure RestartSec=1