diff options
| author | 2026-05-13 13:43:26 +0100 | |
|---|---|---|
| committer | 2026-05-13 13:43:26 +0100 | |
| commit | 422dfee0ab8da4e312b7d5107dddc099bc82bb96 (patch) | |
| tree | d03588c9a00d52bb01b251ebe429f356dca319c6 /dot_config/systemd/user | |
| parent | 370139e565363e2929a3b98dbf43a8bca338114c (diff) | |
| download | dotfiles-422dfee0ab8da4e312b7d5107dddc099bc82bb96.tar.gz dotfiles-422dfee0ab8da4e312b7d5107dddc099bc82bb96.tar.bz2 dotfiles-422dfee0ab8da4e312b7d5107dddc099bc82bb96.zip | |
fix(signal): wait for StatusNotifierWatcher before launching
Without this, signal.service races with waybar at session start: if
Signal asks for the SNI watcher before waybar has registered it on
the bus, it launches with no tray icon and --start-in-tray hides the
main window with no way to bring it back. Add Requires/After=waybar
and an ExecStartPre that polls busctl for the watcher (up to 30s).
Diffstat (limited to 'dot_config/systemd/user')
| -rw-r--r-- | dot_config/systemd/user/signal.service | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/dot_config/systemd/user/signal.service b/dot_config/systemd/user/signal.service index 80d25f2..f1ea930 100644 --- a/dot_config/systemd/user/signal.service +++ b/dot_config/systemd/user/signal.service @@ -1,11 +1,16 @@ [Unit] Description=Signal Desktop (flatpak) PartOf=graphical-session.target -After=graphical-session.target +Requires=waybar.service +After=graphical-session.target waybar.service ConditionEnvironment=WAYLAND_DISPLAY [Service] Type=simple +# Wait until waybar has registered org.kde.StatusNotifierWatcher on the +# user bus, otherwise Signal launches without a tray icon and there is +# no way to raise the window. +ExecStartPre=/bin/sh -c 'for _ in $(seq 1 60); do busctl --user --timeout=1 status org.kde.StatusNotifierWatcher >/dev/null 2>&1 && exit 0; sleep 0.5; done; exit 1' ExecStart=/usr/bin/flatpak run org.signal.Signal --start-in-tray Restart=on-failure RestartSec=5s |
