aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/systemd
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:26 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:26 +0100
commit422dfee0ab8da4e312b7d5107dddc099bc82bb96 (patch)
treed03588c9a00d52bb01b251ebe429f356dca319c6 /dot_config/systemd
parent370139e565363e2929a3b98dbf43a8bca338114c (diff)
downloaddotfiles-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')
-rw-r--r--dot_config/systemd/user/signal.service7
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