diff --git a/README.md b/README.md index 232a7d8..ddef0ff 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ Notes: - Installs to `~/.local/share/luxtools-client/luxtools-client` - Creates a systemd *user* unit at `~/.config/systemd/user/luxtools-client.service` +- Enables the unit under `graphical-session.target` (so it starts with the GUI session) - Stores config in `~/.config/luxtools-client/luxtools-client.env` ### Windows (Scheduled Task at logon) diff --git a/internal/installer/installer_linux.go b/internal/installer/installer_linux.go index 481dbab..100fb4d 100644 --- a/internal/installer/installer_linux.go +++ b/internal/installer/installer_linux.go @@ -60,10 +60,13 @@ func Install(opts InstallOptions) error { unit := `[Unit] Description=luxtools-client (local folder opener helper) +After=graphical-session.target +PartOf=graphical-session.target [Service] Type=simple EnvironmentFile=%h/.config/luxtools-client/luxtools-client.env +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=%t/bus ExecStart=/bin/sh -lc '%h/.local/share/luxtools-client/luxtools-client -listen "$LISTEN" $ALLOW_ARGS' Restart=on-failure RestartSec=1 @@ -72,7 +75,7 @@ NoNewPrivileges=true PrivateTmp=true [Install] -WantedBy=default.target +WantedBy=graphical-session.target ` if err := os.WriteFile(unitFile, []byte(unit), 0o644); err != nil { return err