feat(eww): add config

This commit is contained in:
2026-03-12 17:42:32 +01:00
parent adeb93bd24
commit c6eaad94ef
11 changed files with 1128 additions and 0 deletions

46
eww/scripts/media.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
# media player info as JSON for eww media-popup
action="${1:-status}"
case "$action" in
status)
players=$(playerctl -l 2>/dev/null | head -10)
if [[ -z "$players" ]]; then
jq -nc '{count:0,players:[]}'
exit 0
fi
result="[]"
while IFS= read -r name; do
status=$(playerctl -p "$name" status 2>/dev/null || echo "Stopped")
artist=$(playerctl -p "$name" metadata artist 2>/dev/null || echo "")
title=$(playerctl -p "$name" metadata title 2>/dev/null || echo "")
album=$(playerctl -p "$name" metadata album 2>/dev/null || echo "")
# clean up player name for display
display=${name%%.*}
result=$(jq -c --arg name "$name" --arg display "$display" \
--arg status "$status" --arg artist "$artist" \
--arg title "$title" --arg album "$album" \
'. + [{name:$name, display:$display, status:$status, artist:$artist, title:$title, album:$album}]' <<< "$result")
done <<< "$players"
count=$(jq 'length' <<< "$result")
jq -nc --argjson count "$count" --argjson players "$result" '{$count,$players}'
;;
play-pause)
playerctl -p "$2" play-pause 2>/dev/null
( sleep 0.3; data=$(~/.config/eww/scripts/media.sh); eww update media="$data" ) &
;;
next)
playerctl -p "$2" next 2>/dev/null
( sleep 0.5; data=$(~/.config/eww/scripts/media.sh); eww update media="$data" ) &
;;
prev)
playerctl -p "$2" previous 2>/dev/null
( sleep 0.5; data=$(~/.config/eww/scripts/media.sh); eww update media="$data" ) &
;;
esac