LINUX.ORG.RU
ФорумTalks

[Фанатам VIM, xmonad, mpd]Давайте придумаем быстрые клавиши для плеера


0

0

Всем привет. На работе у меня стоит винда, и под виндой стоит плеер foobar2000. Этот плеер позволяет создавать глобальные бинды. Представьте, сидишь, печетаешь, вдруг к тебе кто-то подходит и начинает что-то говорить. А ты жмешь Alt+Ctrl+NumPad5 и ставишь плеер на паузу. Очень быстро и удобно - не надо снимать наушники, не надо включать окно плеера. Такую же систему я захотел реализовать дома на Линуксе - сделать глобальные клавиатурные комбинации, с помощью которых я буду управлять плеером из любой команды. Дома у меня mpd и xmonad. Чтобы реализовать бинды нам еще понадобится amixer и mpc. amixer для того чтобы менять общую громкость и включать/выключать звук. А mpc это клиент для mpd, он выполняет переданную ему команду и выключается, кстати его еще можно использовать в панельках для отображения информации о проигрываемой песне. Весит mpc мало, работает быстро. Примеры команд

mpc play
mpc toggle
mpc seek +10
mpc stop
mpc volume +3
Бинды для xmonad'а сделать не сложно, примерно так
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'овские комбинации. Т.е. чтобы в биндах была какая-нибудь система для того чтобы было привычно и удобно, и не пришлось бы долго привыкать к ним. Только вот я не могу их придумать, и предлагаю всем нам вместе придумать глобальные бинды для плеера, которые бы были похожи на вимовские.

Ответ на: комментарий от facelift

ъ, не ъ, но удобно. можно еще повесить на Mod+Fx.

mydoom ★★★
()
Ответ на: комментарий от NekoExMachina

до F5 я одной рукой спокойно достаю. а также от F6 до F12 другой рукой. более человеческие бинды, которые 100% не зайдействованы другими приложениями, не придумать.

mydoom ★★★
()

Для меня интуитивно понятно это:

Mod4 p :ExecCommand sonata pp
Mod4 period :ExecCommand mpc next
Mod4 comma :ExecCommand mpc prev
Mod4 Prior	:ExecCommand mpc volume +5
Mod4 Next	:ExecCommand mpc volume -5
Mod4 m Mod4 p Mod4 d :ExecCommand mpc --format '%artist% - %title%' | grep '-' | xclip

Sonata используется из-за возможности совместить play/pause в одной команде.

GotF ★★★★★
()
Ответ на: комментарий от mydoom

Слона-то я и не приметил :-) Премного благодарен.

GotF ★★★★★
()

Лично у меня самая обычная клавиатура и всё повешено на Ctrl+Fx. Пальцы длинные, достают до Ctrl+F7.
Другое дело, что в линуксе это делается стандартными средствами GNOME (ну плюс галочка в Audacious) или KDE, а под виндой надо ставить приличный плеер (хоть тот же фубар, хотя мне для MTP+Walkman приходится использовать Winamp) с настройкой кейбиндингов плюс нормальный регулятор громкости (например, Volumouse). И счастье, что оно бесплатное.

dogbert ★★★★★
()

>у меня стоит винда

под виндой стоит плеер foobar2000

VIM

xmonad

mpd

К сексопатологу.

emperor
()
Ответ на: комментарий от suxov

+1

Кстати, в xmonad'е можно емаксоподобные хоткеи как-нибудь забабахать?
Типа, mod-x вносит нас в коммандный режим и дальше уже хоткей.

NekoExMachina
()

xhkeys (http://www.geocities.com/wmalms/) - и настраивайте ваши хоткеи как хотите.
У меня Ion3 (до этого был Awesome), и все управляется с помощью xhkeys. Для управления звуком, отображения состояния, управления mpd и пр. написаны скрипты, которые делают всю нужную мне работу.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Забыл добавить, и все это не зависит от WM или DE.

andreyu ★★★★★
()

Мои бинды (как в winamp, + клавиша Win):

Win + Z: Предыдущая дорожка

Win + X: Играть (с начала playlist)

Win + C: Пауза/продолжить

Win + V: Остановить воспроизведение

Win + B: Следующая дорожка

Всё это забито в fluxbox для запуска скрипта mocp-control:

[16:40:02][aitap ~]:)> cat scripts/mocp-control 
#!/bin/bash

[ "$*" ] && mocp $*
sleep .15
echo "$(/home/aitap/scripts/mocp-status)" | aosd_cat -R white -u 1500 -b 128 -B black
[16:55:39][aitap ~]:)> cat scripts/mocp-status 
#!/bin/bash

state=$(mocp -Q '%state: %ct \n')
music=$(mocp -Q '%title')
[ -z "$music" ] && music=$(basename "$(mocp -Q '%file')")
echo -e "$state$music"
AITap ★★★★★
()

Fn + Up/Down/Left/Right/F10/F11/F12

isden ★★★★★
()
Ответ на: комментарий от mydoom

> а чем оно лучше xbindkeys?

Не уверен, но xhkeys умеет отлавливать те комбинации клавиш, про которые "иксы" ничего не знают.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Да пофиг че там будет бинды отлавливать. Давайте лучше придумаем сами бинды, и чтобы они были удобные у похожими на vim.

facelift
() автор топика
Ответ на: комментарий от facelift

я сомневаюсь, что можно сделать вимоподобные глобальные бинды. у него действия с основном на одной-2х кнопках и без модкея.
могу еще предложить
play: M-p
toggle: M-P
seek +10: M-f
stop: M-s
volume +3: M-+

mydoom ★★★
()
Ответ на: комментарий от facelift

> Да пофиг че там будет бинды отлавливать. Давайте лучше придумаем сами бинды, и чтобы они были удобные у похожими на vim.

Ну и че тут придумывать? Взять готовые. которые наиболее подходят по смыслу.
Думаю, что у каждого будет свой вариант.

andreyu ★★★★★
()

У меня уже давно стоят:
Alt + Shift + L — следующий трек
Alt + Shift + H — предыдущий
Alt + Shift + J — понизить громкость
Alt + Shift + K — повысить
Alt + Shift + P — пауза

Вроде вполне себе интуитивно.

lomereiter
()
Ответ на: комментарий от NekoExMachina

xbindkeys

для плеера использую super + <up>/<down>/<left>/<right>

kayrick
()

у меня пауза в мпд на super+z (ибо близко), звук на super + UP(DOWN) следующий/предыдущий трек на super+. super+, соответственно и стоп на super+s

имхо удобно, к тому же super мало конфликтует с другими хоткеями

memnek
()

Ля... Точно, линукс - это диагноз. Не, я могу согласиться, что хоткеи для переключения дорожек и громкости могут быть удобны разные для разных людей и окружений, но Play/Pause! Есть же на каждой клавиатуре специальная клавиша для этого! Расположена очень удобно - невозможно промахнуться даже не глядя. Нажимается одним пальцем, не аккордом. Не используется практически нигде больше (в некоторых видах игр разве что).

А следующий/предыдущий трек у меня на Win + стрелки вправо/влево, громкость - Win + стрелки вверх/вниз. Промотка на 10 секунд те же вин + стрелки плюс то ли шифт, то ли контрол, забыл уже, не пользуюсь.

ЗЫ. Нормальным плеером имеет право называться только такой, какой умеет глобальные хоткеи делать сам. Остальные (за исключением консольных, но это отдельная песня и зачем они в иксах, и как ими рулить в консолях, это отдельный разговор) не нужны, говноподелия нищщасные.

Mess
()
Ответ на: комментарий от kir4

> Это где же?

Pause же! Она же Pause/Break. Как бряк использовалась во времена ДОСа, бо там Ctrl+c не все соглашались считать достойной причиной для остановки программы, с тех пор исключительно как пауза. По дефолту используется именно как Пауза в шутерах и других игрушках.

Mess
()
Ответ на: комментарий от Mess

Нормальным плеером имеет право называться только такой, какой умеет глобальные хоткеи делать сам.

Это не unix-way. Плеер должен лишь предоставить удобный интерфейс для назначения хоткеев неким стандартным средством:

gotf ~ > sonata --help
Version: Sonata 1.5.1
Website: http://sonata.berlios.de/

Usage: sonata [OPTION]

Options:
  -h, --help           Show this help and exit
  -p, --popup          Popup song notification (requires DBus)
  -t, --toggle         Toggles whether the app is minimized
                       to tray or visible (requires D-Bus)
  -v, --version        Show version information and exit
  --hidden             Start app hidden (requires systray)
  --visible            Start app visible (requires systray)
  --profile=[NUM]      Start with profile [NUM]
  play                 Play song in playlist
  pause                Pause currently playing song
  stop                 Stop currently playing song
  next                 Play next song in playlist
  prev                 Play previous song in playlist
  pp                   Toggle play/pause; plays if stopped
  repeat               Toggle repeat mode
  random               Toggle random mode
  info                 Display current song info
  status               Display MPD status
GotF ★★★★★
()
Ответ на: комментарий от GotF

> Это не unix-way

То, что ты предлагаешь, не юникс-вей тоже. Потому как не соответствует второй части идеологемы - «делать хорошо».

И вообще, зачем нужен этот внешний механизм хоткеев? Я в упор не вижу ни одного полезного применения, кроме как раз аудио-плеера. Потому, что это ЕДИНСТВЕННОЕ приложение, управлять которым надо, не имея его в фокусе. Все остальные применения хоткеев уже давным давно реализуются оконными менеджерами. Каким лучше, какими хуже, это другой разговор. Ну и на кой городить неуклюжую конструкцию из маловразумительных подпорок, если компоненты конструкции нигде больше не применяются?

Mess
()

На ноутбуке склонился к похожему варианту:

Mod + Up - mpc toggle Mod + Down - mpc stop Mod + Left - mpc prev Mod + Right - mpc next

Fn + Up - Vol. Up Fn + Down - Vol. Down

Да, бинды нажимаются только двумя руками, но в моем случае конечности всегда на ней находятся :)

Deleted
()
Ответ на: комментарий от Deleted

Мм, форматирование никуда не годится.

Mod + Up - mpc toggle
Mod + Down - mpc stop
Mod + Left - mpc prev
Mod + Right - mpc next

Fn + Up - Vol. Up
Fn + Down - Vol. Down
Deleted
()
Ответ на: комментарий от Mess

> Есть же на каждой клавиатуре специальная клавиша для этого!

Вам повезло, что мама вам купила компьютер с такой клавиатурой.

> Расположена очень удобно - невозможно промахнуться даже не глядя. Нажимается одним пальцем, не аккордом.


Действительно, кроме своей клавиатуры вы других не видели даже на картинках.

> ЗЫ. Нормальным плеером имеет право называться только такой, какой умеет глобальные хоткеи делать сам. Остальные (за исключением консольных, но это отдельная песня и зачем они в иксах, и как ими рулить в консолях, это отдельный разговор) не нужны, говноподелия нищщасные.


Собственно ваш возраст и ваш диагноз понятен.

andreyu ★★★★★
()
Ответ на: комментарий от Mess

> Pause же! Она же Pause/Break. Как бряк использовалась во времена ДОСа, бо там Ctrl+c не все соглашались считать достойной причиной для остановки программы, с тех пор исключительно как пауза.

Некоторые используют эту клавишу для иных более подходящих целей.

> По дефолту используется именно как Пауза в шутерах и других игрушках.


А так же кнопочка P.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

> Не уверен, но xhkeys умеет отлавливать те комбинации клавиш, про которые "иксы" ничего не знают.

да ну, так не бывает. полови xev'ом

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

> > Не уверен, но xhkeys умеет отлавливать те комбинации клавиш, про которые "иксы" ничего не знают.
> да ну, так не бывает. полови xev'ом


Бывает. У меня в лэптопе есть кнопки, которые xev не ловит. При этом xhkeys ловит их. Как он это делает я не стал разбираться. Работу свою выполняет, и ладно.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.