У меня есть новая установка 16,04 на новом IdeaPad Levono 500S. Я пытался заставить ключи яркости работать и наконец сумел поднять трубку яркость ключ для работы как ожидалось.
Однако я должен изменить код клавиши своей яркости вниз ключ для него для работы, но setkeycodes
кажется, ничего не делает.
Выполнение showkey
и нажимая яркость вниз кнопка трижды дает мне:
$ sudo showkey -s
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)...
0x9c
0xe0 0x6f 0xe0 0xef
0xe0 0x6f 0xe0 0xef
0xe0 0x6f 0xe0 0xef
который привел меня полагать, что scancode его e06f
. Однако выполнение sudo setkeycodes e06f 224
и затем выполнение showkey -k
все еще показывает старый код клавиши (который равнялся 112).
Разве setkeycodes уже не может переопределить код клавиши набора из некоторого другого источника? Если так, как я могу изменить яркость вниз код клавиши ключа.
setkeycodes
изменит сопоставления клавиш на самом уровне ядра. Здесь возникает проблема в понимании значений кода сканирования. Для нажатия клавиши это: 0x6f
, а для выпуска: 0xef
. Поэтому вам нужно выполнить команду:
sudo setkeycodes 6fef 224
Это изменит отображение на желаемое.
Мне потребовалось немного времени, чтобы разобраться в проблеме с попыткой сопоставления на клавиатуре PS / 2 с помощью showkey
и setkeycodes
.
Как указано на странице руководства для setkeycodes , существует проблема, которая влияет на инструменты, которые сообщают коды сканирования, такие как showkey -s
, в том смысле, что они не показывают фактические коды сканирования, которые подходят для ввода для setkeycodes
:
В необработанном режиме ядра 2.6 или в режиме сканирования кода вообще не очень сырые данные.
Полагаясь на вывод showkey -s
в течение некоторого времени и заметив, что мои сопоставления существующих ключей не работают, и некоторые другие ключи, я не думал, что изменяю изменение, в конце концов я понял, что сканирование коды из showkey -s
были обычным фактором в проблемных случаях.
Вместо этого, если вы должны использовать showkey
, используйте обычный вывод showkey
(без -s
), чтобы найти текущий назначенный ключевой код для ключа и работайте назад по таблице из getkeycodes
, чтобы вычислить скан-код ключа. Если есть несколько кодов сканирования, сопоставленных с одним и тем же кодом клавиши, может потребоваться немного усилий и / или проб и ошибок, чтобы выработать правильный код сканирования для клавиши.
Или полагайтесь на другие источники информации скан-кода, такие как сообщения журнала atkbd
в выводе dmesg
(используйте dmesg -w
, чтобы следовать dmesg
output) или сканирующие коды, сообщаемые evtest
, если ваша система использует структуру устройства событий.