30 lines
963 B
Bash
Executable File
30 lines
963 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
pkill -u "$USER" -x taffybar || true
|
|
|
|
cd "$root"
|
|
|
|
# Hyprland can restart and change the instance signature, leaving old shells with
|
|
# a stale HYPRLAND_INSTANCE_SIGNATURE. Fix it before launching taffybar so any
|
|
# `hyprctl` calls inside the bar work.
|
|
if command -v hyprctl >/dev/null 2>&1 && command -v jq >/dev/null 2>&1; then
|
|
if ! hyprctl monitors -j >/dev/null 2>&1; then
|
|
if [[ -n "${WAYLAND_DISPLAY:-}" ]]; then
|
|
inst="$(hyprctl instances -j | jq -r --arg sock "$WAYLAND_DISPLAY" '.[] | select(.wl_socket == $sock) | .instance' | head -n1)"
|
|
else
|
|
inst="$(hyprctl instances -j | jq -r '.[0].instance // empty')"
|
|
fi
|
|
|
|
if [[ -n "${inst:-}" ]]; then
|
|
export HYPRLAND_INSTANCE_SIGNATURE="$inst"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
setsid -f direnv exec . cabal run >/tmp/taffybar.log 2>&1
|
|
|
|
echo "Started taffybar in the background. Logs: /tmp/taffybar.log"
|