Всем привет. На работе у меня стоит винда, и под виндой стоит плеер foobar2000. Этот плеер позволяет создавать глобальные бинды. Представьте, сидишь, печетаешь, вдруг к тебе кто-то подходит и начинает что-то говорить. А ты жмешь Alt+Ctrl+NumPad5 и ставишь плеер на паузу. Очень быстро и удобно - не надо снимать наушники, не надо включать окно плеера. Такую же систему я захотел реализовать дома на Линуксе - сделать глобальные клавиатурные комбинации, с помощью которых я буду управлять плеером из любой команды. Дома у меня mpd и xmonad. Чтобы реализовать бинды нам еще понадобится amixer и mpc. amixer для того чтобы менять общую громкость и включать/выключать звук. А mpc это клиент для mpd, он выполняет переданную ему команду и выключается, кстати его еще можно использовать в панельках для отображения информации о проигрываемой песне. Весит mpc мало, работает быстро. Примеры команд
mpc play
mpc toggle
mpc seek +10
mpc stop
mpc volume +3
myKeys conf@(XConfig {XMonad.modMask = modm}) =
[ ((modm, xK_F12), spawn "mpc start"
, ((modm, xK_F3 ), spawn "amixer set Master +1")
, ((modm, xK_F3 ), spawn "mpc volume +1")
]
main :: IO ()
main = xmonad $ defaultConfig { keys = newKeys }
newKeys x = M.union (keys defaultConfig x) (M.fromList (myKeys x))
myKeys conf@(XConfig {XMonad.modMask = modm}) =
[ ((modm, xK_F12), xmonadPrompt defaultXPConfig)
, ((modm, xK_F3 ), shellPrompt defaultXPConfig)
Осталось только придумать бинды. Придумывать я не стал, а решил взять готовые из WinAmp'а. Вот они:
Pause Mod + Home
Play Mod + Insert
Prev Mod + NumPad4 or Mod + PageDown
Next Mod + NumPad6 or Mod + PageUp
Stop Mod + End
Toggle Mod + NumPad5
Rewind 5sec Mod + NumPad7
Forwdard 5 sec Mod + NumPad9
Volume Up Mod + NumPad8
Volume Down Mod + NumPad2
---------------
Total Mute Mod + Delete
Total Vol. Up Mod + Up
Total Vol. Down Mod + Down
Обрабовался что все придумал как делать, и с хорошим настроение пошел домой. Но дома меня ждал облом - дома у меня ноутбук, и клавиатура другая, о чем я совершенно забыл. Но на работе эти бинды сделал. Сейчас понимаю что они неудобные, и хотелось бы их изменить. Очень люблю VIM и хотелось бы чтобы бинды были похожи на VIM'овские комбинации. Т.е. чтобы в биндах была какая-нибудь система для того чтобы было привычно и удобно, и не пришлось бы долго привыкать к ним. Только вот я не могу их придумать, и предлагаю всем нам вместе придумать глобальные бинды для плеера, которые бы были похожи на вимовские.