41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# script to run a menu prompt when having more than 2 players since
|
|
# playerctl is bad at managing more than one player at the same time
|
|
|
|
source $HOME/.config/dmenu/config
|
|
|
|
command="$@"
|
|
[ -z "$command" ] && exit
|
|
instances=$(playerctl -l | wc -l)
|
|
|
|
slock=$(ps -C slock | sed -n '1!p' | awk '{ print $4 }' | sed 's/slock/running/')
|
|
|
|
if [ "$instances" = "0" ]; then
|
|
exit
|
|
elif [ "$instances" -lt "2" ]; then
|
|
playerctl $command
|
|
elif [ "$slock" = "running" ]; then
|
|
if [ "$command" = "play-pause" ]; then
|
|
if playerctl status -a | grep -i "Playing" > /dev/null; then
|
|
playerctl pause -a
|
|
else
|
|
playerctl -p mpd $command
|
|
fi
|
|
exit
|
|
fi
|
|
|
|
players=$(paste <(playerctl -l) <(playerctl status -a) | grep -v -i mpd | awk '{print $1}')
|
|
if [ ! -z "$players" ]; then
|
|
for player in $players; do
|
|
playerctl -p $player pause
|
|
done
|
|
fi
|
|
|
|
playerctl -p mpd $command
|
|
else
|
|
choice=$(playerctl -l | $DMENU -p 'Manage:')
|
|
[ -z "$choice" ] && exit
|
|
playerctl -p $choice $command
|
|
fi
|