{pkgs, ...}: let scriptsDir = ../waybar/scripts; scripts = builtins.attrNames (builtins.readDir scriptsDir); waybarCava = pkgs.writeShellScriptBin "WaybarCava" '' set -euo pipefail if ! command -v cava >/dev/null 2>&1; then echo "cava not found in PATH" >&2 exit 1 fi bar="▁▂▃▄▅▆▇█" dict="s/;//g" bar_length=''${#bar} for ((i = 0; i < bar_length; i++)); do dict+=";s/$i/''${bar:$i:1}/g" done RUNTIME_DIR="''${XDG_RUNTIME_DIR:-/tmp}" pidfile="$RUNTIME_DIR/waybar-cava.pid" if [ -f "$pidfile" ]; then oldpid=$(cat "$pidfile" || true) if [ -n "''${oldpid:-}" ] && kill -0 "$oldpid" 2>/dev/null; then kill "$oldpid" 2>/dev/null || true sleep 0.1 || true fi fi echo $$ > "$pidfile" config_file=$(mktemp "''${RUNTIME_DIR}/waybar-cava.XXXXXX.conf") cleanup() { rm -f "$config_file" "$pidfile"; } trap cleanup EXIT INT TERM cat >"$config_file" <