#!/usr/bin/env bash set -eou pipefail bus=$(dbus-send \ --print-reply=literal \ --dest=org.freedesktop.DBus \ --type=method_call \ /org/freedesktop/DBus \ org.freedesktop.DBus.ListNames | tr ' ' '\n' | grep 'org.mpris.MediaPlayer2' ) count=$(wc -l <<<"$bus") playpause() { dbus-send --print-reply --dest="$1" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause } if [ $count -eq 1 ]; then playpause "$bus" exit 0 fi bus=$(dmenu -i -p "playpause" -l 7 <<<"$bus") playpause "$bus"