aboutsummaryrefslogtreecommitdiff
path: root/.local/bin/hypr/hypr_shader_menu.sh
blob: bfeb46af06be01827f057e1ead259248f6493118 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env bash
set -euo pipefail

# Check deps
command -v fuzzel >/dev/null || { echo "fuzzel not found"; exit 1; }
command -v hyprshade >/dev/null || { echo "hyprshade not found"; exit 1; }

# Get shader list
mapfile -t SHADERS < <(hyprshade ls)

# Add "off" at top
SHADERS=("off" "${SHADERS[@]}")

# Show in fuzzel
CHOICE=$(printf "%s\n" "${SHADERS[@]}" \
    | fuzzel --dmenu --prompt "Hyprshade > " \
    | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')

# User cancelled
[[ -z "$CHOICE" ]] && exit 0

# Apply
if [[ "$CHOICE" == "off" ]]; then
    hyprshade off
else
    hyprshade on "$CHOICE"
fi

# Optional notification
command -v notify-send >/dev/null && notify-send "Hyprshade" "Applied: $CHOICE"