29 lines
1.3 KiB
Bash
Executable File
29 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Kill any running Eww instance(s) so we start from a clean slate (e.g. after a
|
|
# Hyprland reload or a monitor change re-runs this script). Give the old daemon a
|
|
# moment to fully exit and drop its layer-shell surfaces before opening new ones.
|
|
killall eww 2>/dev/null
|
|
sleep 1
|
|
|
|
# GTK_THEME is read by the GTK3 widgets embedded in Eww. Export it (the previous
|
|
# bare assignment was never exported, so it had no effect).
|
|
export GTK_THEME=cyberqueer
|
|
|
|
# Count connected monitors from hyprctl's JSON output. The previous
|
|
# `hyprctl monitors | grep ID | wc -l` was fragile — any extra output line that
|
|
# happened to contain "ID" would inflate the count.
|
|
monitorsum=$(hyprctl monitors -j | jq 'length')
|
|
|
|
# Open one bar per monitor, keyed by the 0-based monitor index.
|
|
#
|
|
# IMPORTANT: we deliberately do NOT run `eww daemon` separately and then loop
|
|
# `eww open`. That RACED: the first `eww open` frequently ran before the freshly
|
|
# started daemon was ready, so it spawned its OWN second daemon and drew a second
|
|
# bar — two stacked bars on a single monitor. `eww open` already auto-starts the
|
|
# daemon and blocks until the window is mapped, so the first call establishes a
|
|
# single daemon that every subsequent call reuses.
|
|
for ((curmon=0; curmon<monitorsum; curmon++)); do
|
|
eww open bar --id "bar${curmon}" --arg "monitor=${curmon}"
|
|
done
|