From 338b2eabdfde14a79755341ea472e2c55d1064c4 Mon Sep 17 00:00:00 2001 From: Alex Epelde Date: Tue, 25 Mar 2025 19:48:07 -0400 Subject: [PATCH] waybar: integrate with tray.target (#6675) Inspired by [#3432][0], but with a smaller footprint. This change makes it so that services with `Requires=tray.target` and `After=tray.target`, such as [`blueman-applet`][1] or [`network-manager-applet`][2] get started *after* waybar is ready. [0]: https://github.com/nix-community/home-manager/pull/3432 [1]: https://github.com/nix-community/home-manager/blob/6c2b79403e9ae852fbf1d55b29f2ea4d2aa43255/modules/services/blueman-applet.nix [2]: https://github.com/nix-community/home-manager/blob/6c2b79403e9ae852fbf1d55b29f2ea4d2aa43255/modules/services/network-manager-applet.nix --- modules/programs/waybar.nix | 6 +++--- .../waybar/systemd-with-graphical-session-target.service | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/programs/waybar.nix b/modules/programs/waybar.nix index 0d7294d0..c0ce4c16 100644 --- a/modules/programs/waybar.nix +++ b/modules/programs/waybar.nix @@ -321,7 +321,7 @@ in { Description = "Highly customizable Wayland bar for Sway and Wlroots based compositors."; Documentation = "https://github.com/Alexays/Waybar/wiki"; - PartOf = [ cfg.systemd.target ]; + PartOf = [ cfg.systemd.target "tray.target" ]; After = [ cfg.systemd.target ]; ConditionEnvironment = "WAYLAND_DISPLAY"; X-Restart-Triggers = optional (settings != [ ]) @@ -339,8 +339,8 @@ in { Environment = [ "GTK_DEBUG=interactive" ]; }; - Install.WantedBy = - lib.optional (cfg.systemd.target != null) cfg.systemd.target; + Install.WantedBy = [ "tray.target" ] + ++ lib.optional (cfg.systemd.target != null) cfg.systemd.target; }; }) ]); diff --git a/tests/modules/programs/waybar/systemd-with-graphical-session-target.service b/tests/modules/programs/waybar/systemd-with-graphical-session-target.service index f3e3b24a..5056d1be 100644 --- a/tests/modules/programs/waybar/systemd-with-graphical-session-target.service +++ b/tests/modules/programs/waybar/systemd-with-graphical-session-target.service @@ -1,4 +1,5 @@ [Install] +WantedBy=tray.target WantedBy=sway-session.target [Service] @@ -13,3 +14,4 @@ ConditionEnvironment=WAYLAND_DISPLAY Description=Highly customizable Wayland bar for Sway and Wlroots based compositors. Documentation=https://github.com/Alexays/Waybar/wiki PartOf=sway-session.target +PartOf=tray.target