dmenu-scripts/dmenu-playerctl
2022-10-30 16:07:52 +01:00

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