dotfiles/bin/player-command

129 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env sh
searchplayers() {
xdotool search --name "mpv" | sed 's|$| mpv|'
xdotool search --name "vlc" | sed 's|$| vlc|'
}
playerplay() {
case "$2" in
"mpv")
xdotool key --window "$1" space
;;
"vlc")
xdotool key --window "$1" space
;;
esac
}
playerstop() {
case "$2" in
"mpv")
xdotool key --window "$1" q
;;
"vlc")
xdotool key --window "$1" s
;;
esac
}
playernext() {
case "$2" in
"mpv")
xdotool key --window "$1" greater
;;
"vlc")
xdotool key --window "$1" n
;;
esac
}
playerprev() {
case "$2" in
"mpv")
xdotool key --window "$1" less
;;
"vlc")
xdotool key --window "$1" p
;;
esac
}
if $MUSICPLAYERSTATUS 2>/dev/null; then
status=$($MUSICPLAYERSTATUS)
case "$1" in
"play")
case "$MUSICPLAYER" in
"mocp")
if [ "$status" = "State: STOP" ]; then
mocp -p
else
mocp -G
fi
;;
"mpc")
if mpc | grep -q "\[\(playing\|paused\)\]"; then
mpc toggle
else
mpc play
fi
;;
esac
;;
"toggle")
case "$MUSICPLAYER" in
"mocp")
mocp -G
;;
"mpc")
mpc toggle
;;
esac
;;
"stop")
case "$MUSICPLAYER" in
"mocp")
if [ "$status" = "State: STOP" ]; then
mocp -x
else
mocp -s
fi
;;
"mpc")
if mpc | grep -q "\[\(playing\|paused\)\]"; then
mpc stop
else
mpd --kill
fi
;;
esac
;;
"next")
case "$MUSICPLAYER" in
"mocp")
mocp -f
;;
"mpc")
mpc next
;;
esac
;;
"prev")
case "$MUSICPLAYER" in
"mocp")
mocp -r
;;
"mpc")
mpc prev
;;
esac
;;
esac
else
searchplayers | while read -r line; do
echo "$line"
player$1 $line
done
fi