Медіа-ключі не працюють на Ubuntu 17.10


22

Я працюю на абсолютно новій установці 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
всередині

Чи дає імпульс у вашому терміналі якесь страшне повідомлення? Чи допомагає додавання swh-плагінів?
ковенер

Цей символ означає, що середовище робочого столу розпізнає медіа-ключ, але жодна програма не зареєструється як користувач медіа-команди. З яким медіаплеєром ви працювали / працювали (у той час)? Ви також можете ознайомитись зі зіставленням комбінацій клавіш GNOME у клавіатурі gnome-control-center keyboard shortcuts.
Девід Фоерстер

Я хотів керувати коді за допомогою повітряної миші mx3. У центрі gnome-control я розпустив медіа-клавіші для відтворення / паузи відтворення / наступного / попереднього, і тепер я можу використовувати їх у коді. Але швидкий перемотка і швидкий назад не працюють, ось іконка надходить вище, і я не бачу, де я можу відключити їх у центрі управління gnome.

Відповіді:


21

Весь цей випуск виглядає як "це не помилка, це ОСОБА" подарунок від Gnome.

Коротше кажучи: при натисканні медіа-кнопки він створює код ключа, який потім переводиться в команду. Скажімо, ви натискаєте кнопку Відтворення / пауза. Він створює код 162 і команду XF86AudioPlay.

Зараз майже кожен медіа-додаток, який може чекати цієї події (будь то VLC, тотем, коді, spotify тощо), очікує отримання чистої команди XF86AudioPlay. А що робить Гном? Він перехоплює цю команду і переводить її в свою власну команду "грати". Через це ні xev, ні xbindkeys не показують цю подію належним чином - вони ніколи не отримують команди, яку вони можуть зрозуміти.

Коли ви натискаєте медіа-кнопку, Gnome отримує команду і перевіряє, чи є програма, яка її визнає здатною приймати цю команду. Якщо є (скажімо, тотем, ритмбокс, можливо VLC), він надсилає "грати", що має працювати. Якщо немає програми, визнаної такою, яка здатна приймати цю команду, Gnome покаже знак, який додається до першого повідомлення, і нікуди не надсилатиме жодної команди.

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


1
Це чудово працює. Якщо вимкнути функцію Відтворення / пауза в клавішах налаштувань-клавіатури-медіа-файлів Gnome, Kodi може використовувати це. Але для швидкого перемотування вперед та назад, все одно з'являється символ "не працює" зверху, але я не знаю, що відключити. Швидкий FF / BW не згадується в мультимедійних клавішах.

Це був секретний соус, який мені знадобився. Це, а також поєднання playerctlі xbindkeysтепер моя клавіатура може контролювати всі мої гравці, а не тільки Rhythmbox.
Адріан

Я також перезапустив після внесення цих змін (увійти та вийти, ймовірно, достатньо), щоб вони працювали
Саламі

1
Це все ще працює для Ubuntu 18.04, і принаймні для мене не потрібно було перезапускати або навіть виходити з
ладу

19

Якщо мультимедійні клавіші клавіатури не працюють з вашого робочого столу 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/


Відмінно, саме це я шукав. Дуже дякую!
Джош Крозьє

Це працювало для мене в Ubuntu 14.04, за винятком того, що я використовую Compiz, тому мені довелося скористатися аплетом "Команди" менеджера налаштувань CompizConfig, щоб призначити ярлики.
Тайлер Колліє

Це працює на Ubuntu 18.04, Linux ядро ​​версії 4.15.0-51-generic, з Spotify версії 1.1.5.153.gf614956d. Дякую!
Гормадор

Це спрацювало для мене, якщо я також зробив те , що запропонувала відповідь Darkdude .
totymedli

Ви можете зробити цю роботу з іншими , ніж Spotify гравців, просто змінити spotifyдо vlc, rhythmboxі т.д. в команді.
totymedli

6

Я виявив, що з Ubuntu 18.04 LTS станом на 2019/2/1 все, що мені потрібно було зробити:

  • встановити dconf-редактор
  • перейдіть до org / gnome / settings-daemon / plugins / media-keys
  • для кожного ключа не працює:
    • зніміть прапорець "Використовувати значення за замовчуванням"
    • хіт застосувати
    • повторно встановіть прапорець "Використовувати значення за замовчуванням"
    • хіт застосувати знову

Медіа-ключі, про які йдеться, тепер мають працювати негайно.

Використання жодного значення, згідно рекомендованому темним темпом, не працювало для мене.


Коли я відкрив dconf-редактор, я виявив, що параметри за замовчуванням уже не встановлені для відтворення / паузи, попереднього треку та наступного. Перевірка за замовчуванням цих трьох клавіш усунула мою проблему.
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, це взагалі не працює. Коли я відключив асоціацію ключів за замовчуванням (викликати діалогове вікно для асоціації клавіш, натисніть назад і натисніть кнопку "Зберегти") та створив абсолютно нову, яка працює, дуже корисною була відповідь від @foamboarder

тепер схоже, що цей скріншот із налаштування ярлика все працює добре зараз навіть після пробудження комп’ютера зі сплячого режиму


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

1

Використовуючи вищезгадану відповідь @ Вацлав працював для мене на Ubuntu 18.04, де він сказав

"... деактивовано асоціацію ключів за замовчуванням (викликати діалогове вікно для асоціації ключів, натиснути зворотну простір та натиснути" Зберегти ") та створити абсолютно новий".

Я використовую Rhythmbox, ось команди, які я вкладав для кожного спеціального скорочення для 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`  

Сподіваюся, це допоможе комусь одного дня


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, щоб очистити.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.