Доброго времени суток, уважаемые форумчане!
Некоторое время назад, я задался вопросом, можно ли в среде XFCE задействовать мультимедийные клавиши на клавиатуре ("воспроизведение/пауза", " |<< ", " >>| ", и т.п.) так, как это реализовано в Unity и GNOME?
В своё время, перейдя на XFCE, я не долго думая, задал в настройках клавиатуры под эти клавиши скрипты вот такого плана:
Например, для кнопки "воспроизведение/пауза"
dbus-send --print-reply --type=method_call --dest=org.mpris.guayadeque /Player org.freedesktop.MediaPlayer.Pause
dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Pause
qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Pause
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
dbus-send --type=method_call --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
dbus-send --dest=org.gmusicbrowser /org/gmusicbrowser org.gmusicbrowser.RunCommand string:PlayPause
Аналогично для кнопок "перемотки":
Для кнопки "предыдущая дорожка":
dbus-send --print-reply --type=method_call --dest=org.mpris.guayadeque /Player org.freedesktop.MediaPlayer.Prev
dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Prev
qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Prev
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Prev
dbus-send --type=method_call --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Prev
dbus-send --dest=org.gmusicbrowser /org/gmusicbrowser org.gmusicbrowser.RunCommand string:PrevSong
и для кнопки "следующая дорожка":
dbus-send --print-reply --type=method_call --dest=org.mpris.guayadeque /Player org.freedesktop.MediaPlayer.Next
dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Next
qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Next
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
dbus-send --type=method_call --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
dbus-send --dest=org.gmusicbrowser /org/gmusicbrowser org.gmusicbrowser.RunCommand string:NextSong
Как видно, смысл каждого скрипта - фонтан dbus (и qdbus) команд, адресованных всем известным плеерам (авось какая-нибудь достигнет своего адресата, если таковой существует и запущен).
Но я понимаю, что такое решение - всего лишь грубый костыль, а не решение проблемы.
Хотелось бы, чтобы на нажатия клавиш реагировали все плееры (а не только те, которые упомянуты в скриптах), подобно тому, как это было в GNOME и затем в Unity...
У кого-нибудь есть предложения на этот счёт? Возможно ли вообще такое, и если да, то куда следует копать?