Last active
September 28, 2016 10:36
-
-
Save chanux/db01bd2c66effc7a259f to your computer and use it in GitHub Desktop.
Multimedia keybindings that works with Spotify and mocp and contect aware
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Make your multimedia keybindings work with both spotify and mocp. | |
# I prefer to have them control Spotify when it's open. | |
# Place this script somewhere in $PATH and bind multimedia keys/your favorite | |
# shortcuts accordingly. The commands are self explanatory | |
# | |
# playdog -playpause | |
# playdog -pause | |
# playdog -next | |
# playdog -previous | |
# | |
# How to bind keys on Ubuntu: http://wp.me/p1rVu-bC | |
function dbus_controls() { | |
case $2 in | |
-next) | |
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.${1} /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next | |
;; | |
-previous) | |
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.${1} /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous | |
;; | |
-pause) | |
dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.${1} /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause | |
;; | |
-playpause) | |
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.${1} /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause | |
;; | |
esac | |
} | |
# The order determines priority | |
if pgrep -c vlc; then | |
dbus_controls "vlc" $1; | |
elif pgrep -c spotify; then | |
dbus_controls "spotify" $1; | |
elif pgrep -c mocp;then | |
case $1 in | |
-next) | |
mocp --next | |
;; | |
-previous) | |
mocp --previous | |
;; | |
-playpause) | |
mocp --toggle-pause | |
;; | |
-pause) | |
mocp --pause | |
;; | |
esac | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment