Медиа-ключи не проходят после обновления до 16.04
Все работы верстались после обновления с Ubuntu GNOME 15.10 до 16.04 с использованием do-release-upgrade
, настройки оболочки, steam игры, кодирование IDE, базы данных, vbox, серверы nodejs/nginx и другие...
Но медиа клавиши от моей клавиатуры Microsoft не проходят. Сбросить значения в gnome-control-center keyboard
не имеет никакого эффекта Когда я пытаюсь установить значение с клавиатуры - ключевые события не проходят. Но sudo showkey
обрабатывает все ключи ( https://i.imgur.com/8YmbWik.png):
showkey:
vasiliy0s@0sserver$ LANG=C sudo showkey
[sudo] password for vasiliy0s:
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
keycode 28 release
keycode 114 press
keycode 114 release
keycode 115 press
keycode 115 release
keycode 113 press
keycode 113 release
lsusb:
vasiliy0s@0sserver:~$ lsusb | grep Microsoft
Bus 001 Device 006: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth
lsb_release:
vasiliy0s@0sserver:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
1 ответ
Почему так происходит?
Причина в файле /lib/udev/rules.d/51-these-are-not-joysticks-rm.rules
, который был добавлен в пакет Debian в январе 2016 года по запросу в ошибке #714399 Debian и выпущен как версия 1.4.9-1.
Подождите, это Ubuntu, а не Debian! - Да, но пакет Ubuntu основан на Debian.
Однако позже было обнаружено, что мультимедийные клавиши с клавиатуры Microsoft отключены. Я подозреваю, что это произошло из-за некоторых изменений в udev или в ядре между Ubuntu 15.10 и 16.04. Я знаю это, потому что я написал этот файл, и он работал нормально в 15.10, но ошибка произошла только в 16.04.
Сегодня (август) я наконец обновил хранилище с исправлением (хотя исправление было предложено в мае). Это исправление будет добавлено в пакеты Debian и Ubuntu в будущем.
Хотите узнать больше об этом? Посмотрите на проект udev-joystick-blacklist на GitHub. (Отказ от ответственности: я создал этот проект.)
Как это исправить?
Вариант 1 (ленивый)
Просто дождитесь обновления joystick
пакет выпущен.
Вариант 2 (не геймерский)
Вы можете просто удалить этот черный список:
sudo rm /lib/udev/rules.d/51-these-are-not-joysticks-rm.rules
Всякий раз, когда пакет обновляется или переустанавливается, файл следует создавать заново.
Вариант 3 (геймерский)
Вы можете вручную обновить этот файл новой версией из репозитория. Тем не менее, обратите внимание на обновления joystick
пакет. Я не уверен, что какое-либо обновление просто перезапишет файл, или если обновление попросит пользователя объединить файл.