#!/bin/zsh ##################################################################### USAGE="$0 (next|prev|playpause)" function ERROR() { local ERROR_CODE=$1 local MESSAGE="$2" echo -e "$MESSAGE\n\nUSAGE : $USAGE\n" >&2 notify-send "YouTube media controller" "$MESSAGE" exit $ERROR_CODE } ##################################################################### COMMAND="$1" case $COMMAND in next ) COMMAND_KEY='j';; prev ) COMMAND_KEY='k';; play ) COMMAND_KEY='space';; * ) ERROR 1 "unsupported command '$COMMAND'" ;; esac xdotool search --name 'YouTube Music' windowactivate \ || ERROR 2 "YouTube Music is not running" # Chrome / YouTube only accepts keypresses when window is active xdotool search --name 'YouTube Music' windowactivate sleep 0.3 xdotool key --clearmodifiers "$COMMAND_KEY"