Медиа-ключи не работают в Ubuntu 17.10

21

Я использую довольно новую установку Ubuntu 17.10 на Thinkpad T470s.

Всякий раз, когда я нажимаю одну из клавиш мультимедиа (воспроизведение / пауза, пропуск и т. Д.) На любой из моих клавиатур или Bluetooth-гарнитуры, я вижу этот значок:

всплывающее окно на медиа-ключе, указывающее, что действие не разрешено

вспышка на мониторе, но ни один из моих медиаплееров не реагирует.

Ключи распознаются в showkey:

~$ sudo showkey -k
press any key (program terminates 10s after last keypress)...
keycode 163 press
keycode 163 release
keycode 165 press
keycode 165 release
keycode 164 press
keycode 164 release

Но они не появляются в xev.

Нильс Боррманн
источник
У меня похожая проблема. Кроме того, что он работал , прежде чем я переустановил новую Kubuntu 17.10.1
insidesin
Pulaudio в вашем терминале дает какие-нибудь страшные сообщения? Помогает ли добавление плагинов?
ковер
Этот символ означает, что среда рабочего стола распознает медиа-ключ, но ни одно приложение не зарегистрировало себя в качестве пользователя медиа-команды. Какой медиаплеер (ы) у вас / был запущен (в то время)? Вы также можете взглянуть на сочетания клавиш в GNOME в gnome-control-center keyboard shortcuts.
Дэвид Фёрстер
Я хотел управлять коди с помощью воздушной мыши mx3. В gnome-control-center я отключил клавиши мультимедиа для воспроизведения / паузы / следующего / предыдущего воспроизведения, и теперь я могу использовать их в коди. Но быстрый вперед и быстрый назад не работают, здесь появляется значок выше, и я не могу видеть, где я могу отключить их в gnome-control-center.

Ответы:

21

Вся эта проблема выглядит как подарок «это не ошибка, это ОСОБЕННОСТЬ» от Gnome.

Вкратце: когда вы нажимаете кнопку мультимедиа, она генерирует код клавиши, который затем преобразуется в команду. Допустим, вы нажимаете кнопку воспроизведения / паузы. Он генерирует ключевой код 162 и команду XF86AudioPlay.

Теперь почти каждое мультимедийное приложение, которое может ожидать этого события (будь то VLC, totem, kodi, spotify и т. Д.), Ожидает получения чистой команды XF86AudioPlay. А что делает Гном? Он перехватывает эту команду и переводит ее в свою собственную команду «play». Из-за этого ни xev, ни xbindkeys не показывают это событие должным образом - они никогда не получают команду, которую они могут понять.

Когда вы нажимаете мультимедийную кнопку, Gnome получает команду и проверяет, существует ли какое-либо приложение, которое распознало его как способное принять эту команду. Если есть (скажем, тотем, rhytmbox, может быть, VLC), он посылает «play», которая должна работать. Если нет приложения, признанного способным принимать эту команду, Gnome покажет знак, прикрепленный к первому сообщению, и никуда не отправит команду.

Решение простое - сделать Gnome неспособным перехватывать ключевые медиа-события. Установите dconf-editor, перейдите в org.gnome.settings-daemon.plugins.media-keys и измените любую кнопку, которая должна работать, с XF86SomeExample (например, XF86AudioPlay) на none (''). Таким образом, любое приложение должно получать ключевые команды напрямую.

darkdude
источник
1
Это прекрасно работает. Если вы отключите Play / Pause в Gnome Settings-Keyboard-Media Keys, Kodi может использовать его. Но для быстрой перемотки вперед и назад все равно появляется символ «не работает» сверху, но я не знаю, что отключить. Быстрая FF / BW не упоминается в мультимедийных клавишах.
Это был секретный соус, который мне был нужен. Это, а также сочетание playerctlи xbindkeysтеперь моя клавиатура может контролировать все мои игроки, а не только Rhythmbox.
Адриан
Я также перезапустил компьютер после внесения этих изменений (вероятно, достаточно войти в систему и выйти из
Салями
1
Это все еще работает для Ubuntu 18.04, и по крайней мере для меня не было необходимости перезапускать или даже выходить из системы
N1mr0d
18

Если клавиши мультимедиа на клавиатуре не работают с рабочего стола Ubuntu, вы можете использовать поддержку D-Bus для отправки соответствующих команд в Spotify. Проверьте следующие команды из консоли:

Воспроизведение / Пауза

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

следующий

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next

предыдущий

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous

Включить комбинацию клавиш

Чтобы привязать их к клавиатуре, выберите «Настройки»> «Клавиатура»> «Ярлыки»> «Пользовательские ярлыки», затем «Добавить» с помощью +. Используйте одну из приведенных выше команд, затем нажмите клавишу, которую хотите связать с новой командой.

введите описание изображения здесь

Источник

https://fabianlee.org/2016/05/25/ubuntu-enabling-media-keys-for-spotify/

foamboarder
источник
Отлично, это именно то, что я искал. Большое спасибо!
Джош Крозье
Это работало для меня в Ubuntu 14.04, за исключением того, что я использую Compiz, поэтому мне пришлось использовать апплет CommandsConfig Settings Manager «Команды» для назначения ярлыков.
Тайлер Кольер
Это работает на Ubuntu 18.04, версия ядра linux 4.15.0-51-generic, с версией Spotify 1.1.5.153.gf614956d. Благодарность!
Гормадор
Это сработало для меня, если бы я также сделал то, что предложил ответ даркдуда .
тотемедли
Вы можете сделать эту работу с другими , чем Spotify игроков, просто изменить spotifyк vlc, rhythmboxи т.д. в команде.
Тотимедли
6

Я обнаружил, что с Ubuntu 18.04 LTS на 2019/2/1 все, что мне нужно было сделать, это:

  • установить dconf-редактор
  • перейдите к org / gnome / settings-daemon / plugins / media-keys
  • для каждого ключа не работает:
    • снимите флажок «Использовать значение по умолчанию»
    • нажмите применить
    • перепроверьте «Использовать значение по умолчанию»
    • нажмите применить снова

Соответствующие медиа-клавиши теперь должны работать немедленно.

Использование без значения, как рекомендовано darkdude, для меня не сработало.

Джейми Дулани
источник
Когда я открыл dconf-editor, я обнаружил, что настройки по умолчанию уже сняты для воспроизведения / паузы, предыдущего трека и следующего. Проверка значений по умолчанию для этих трех ключей устранила мою проблему.
dericke
Я не очень понимаю, почему переключение «Использовать значение по умолчанию» сработало, но оно сработало и у меня +1
Мирослав Гламузина
4

у меня работает сочетание двух последних ответов. У меня Ubuntu 18.04 работает тест клавиатуры

~$ sudo showkey -k
press any key (program terminates 10s after last keypress)...
keycode 163 press
keycode 163 release
keycode 165 press
keycode 165 release
keycode 164 press
keycode 164 release

но когда я захожу в « Действия» -> «Клавиатура» и пытаюсь что-то сделать с помощью «Play / Next / Previous», это вообще не работает. Когда я деактивировал связывание клавиш по умолчанию (вызовите диалог для связывания клавиш, нажмите клавишу Backspace и нажмите «Сохранить») и создал новый, который работает, очень полезным был ответ от @foamboarder

теперь похоже на этот скриншот из настройки ярлыка, теперь все работает нормально даже после выхода компьютера из спящего режима

Вацлав Рак
источник
1
+1, потому что это в конечном итоге сработало для меня, но вы должны были включить команды, которые вы использовали в пользовательских сочетаниях клавиш: dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPauseи ... Previousи ...Next
bitinerant
1

Использование вышеуказанного ответа @ Václav помогло мне в Ubuntu 18.04, где он сказал

msgstr "... деактивировано связывание ключей по умолчанию (вызовите диалог для связывания клавиш, нажмите клавишу Backspace и нажмите" Сохранить ") и создайте новый".

Я использую Rhythmbox, вот команды, которые я вставлял для каждого Custom Shorcut для Rhythmbox:

Для предыдущего:

`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous`  

Для следующего:

`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next`  

Для воспроизведения / остановки:

`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause`  

Надеюсь, это поможет кому-то однажды

Milazi
источник
2
Я установил, playerctlи он может найти и контролировать большинство медиаплееров, которые я использую автоматически.
Адриан
1
rhythmbox-client --play-pause, rhythmbox-client --next,rhythmbox-client --previous
Ctrl-C
0

Коды клавиш, похоже, не отображаются соответственно. Вы можете вручную сопоставить ключи, как описано в документации по Ubuntu: https://help.ubuntu.com/stable/ubuntu-help/keyboard-shortcuts-set.html

  1. Откройте обзор действий и начните вводить с клавиатуры.
  2. Нажмите на клавиатуру, чтобы открыть панель.
  3. Выберите вкладку «Ярлыки».
  4. Выберите категорию на левой панели и строку для желаемого действия справа. Текущее определение ярлыка изменится на Новый ускоритель…
  5. Удерживая нажатой нужную комбинацию клавиш, или нажмите клавишу Backspace, чтобы очистить.
Арне К
источник