{ pkgs, lib, ... }: let # Install helper scripts shipped in modules/home/waybar/scripts into ~/.config/waybar/scripts scriptsDir = ./scripts; scripts = builtins.attrNames (builtins.readDir scriptsDir); # Updated CAVA visualizer script packaged via Nix (from waybar-jak-catppuccin.nix) waybarCava = pkgs.writeShellScriptBin "WaybarCava" '' set -euo pipefail # Ensure cava exists if ! command -v cava >/dev/null 2>&1; then echo "cava not found in PATH" >&2 exit 1 fi # Characters for vertical bars (0..7) bar="▁▂▃▄▅▆▇█" # Build sed script that maps 0..7 to glyphs and strips ';' 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" < * { margin: 0; } /* Tighten QS buttons margins/padding to bring them closer */ #custom-qs_wallpapers_apply, #custom-qs_vid_wallpapers_apply { margin: 2px 2px; padding: 2px 4px; } #idle_inhibitor { color: #b45bcf; background: #3a3c4e; margin: 4px 0px; padding: 2px 14px; border-radius: 10px; } #custom-power { color: #ea51b2; /* Red color for power menu */ background: #3a3c4e; margin: 4px 4px; padding: 10px 10px; border-radius: 10px; } '' ]; }; }