Проблемы с Fn key

На фото ноутбука ТС комбинация Fn+Esc не обозначена, как клавиша KEY_SLEEP, по крайней мере на тех, что я видел, может быть отсюда и возникло предположение, что все клавиши должны выдавать какие-то коды вместе с Fn. "Спокойно можно прожить", но с работающими жить лучше :)
Fn + F2
определяется но работает крайне странно. Делает turn on/off wifi но с какой то минутной задержкой :/

Fn + F4, Fn + F5
Не определяются. Эти кнопки должны менять яркость. Но она если и меняется то с задержкой какой то, как в случае с F2.

Fn + F6
Не определяется. Но исправно изменяет состояние подсветки клавиатуры

Fn + F7
Не определяется

Почему не определяются они ни одной из утилит? Но при этом как то работают.
Werd
Почему не определяются они ни одной из утилит? Но при этом как то работают.
Не может такого быть - даже стало интересно. Давай-ка проведем эксперимент.
Узнаем event клавиатуры любым известным тебе способом, например, так
ls /sys/devices/platform/i8042/serio0/input
input3
Далее запускаем команду
sudo od -tx1 /dev/input/event3
после нажатия Enter сразу выскочит несколько строк, типа такого
0000000 fa 8b 7a 5c 00 00 00 00 c7 ef 0b 00 00 00 00 00
0000020 04 00 04 00 1c 00 00 00 fa 8b 7a 5c 00 00 00 00
0000040 c7 ef 0b 00 00 00 00 00 01 00 1c 00 00 00 00 00
0000060 fa 8b 7a 5c 00 00 00 00 c7 ef 0b 00 00 00 00 00
НИЧЕГО НЕ НАЖИМАЯ запоминаем номер последней строки (0000060), но лучше выделить мышкой (клавиши не трогать) и после как запомнил/выделил нажимай нужную комбинацию, например, Fn + F6. После нажатия опять не трогая клавиши выделяем мышкой строки, полученные после последней выделенной строки, КОПИРУЕМ и завершаем нажатием ctrl+c
Скопированный вывод сохраняем и выкладываем - получится что то типа такого.
0000100 00 00 00 00 00 00 00 00 ac 8d 7a 5c 00 00 00 00
0000120 c2 eb 01 00 00 00 00 00 04 00 04 00 89 00 00 00
0000140 ac 8d 7a 5c 00 00 00 00 c2 eb 01 00 00 00 00 00
0000160 01 00 ec 00 01 00 00 00 ac 8d 7a 5c 00 00 00 00
0000200 c2 eb 01 00 00 00 00 00 00 00 00 00 00 00 00 00
0000220 ac 8d 7a 5c 00 00 00 00 3a f6 03 00 00 00 00 00
0000240 04 00 04 00 89 00 00 00 ac 8d 7a 5c 00 00 00 00
0000260 3a f6 03 00 00 00 00 00 01 00 ec 00 00 00 00 00
0000300 ac 8d 7a 5c 00 00 00 00 3a f6 03 00 00 00 00 00
Это raw date, который парсят все утилиты и конвертируют в читаемый человеком вид. Но в проблемных/не понятных ситуациях лучше это сделать самому - в этом выводе находится вся информация о нажатии, даже время нажатия.
Например, из этого вывода получаем
время нажатия - Сб мар 2 17:05:32 MSK 2019
scancode - 89
keycode - 236
Что вообщем показывает и evtest
время нажатия - Сб мар 2 17:28:39 MSK 2019
scancode - 89
keycode - 236
Event: time 1551536919.044856, type 4 (EV_MSC), code 4 (MSC_SCAN), value 89
Event: time 1551536919.044856, type 1 (EV_KEY), code 236 (KEY_BATTERY), value 0
Ошибки не исчезают с опытом - они просто умнеют
vasek
после нажатия Enter сразу выскочит несколько строк, типа такого
Сделал. На обычных комбинациях выскакивают строчки. На тех про которые я писал выше ничего не выскакивает.
Например по нажатию на Fn+F6 ничего, но подсветка переключается :/
Werd
Сделал. На обычных комбинациях выскакивают строчки. На тех про которые я писал выше ничего не выскакивает.
Например по нажатию на Fn+F6 ничего, но подсветка переключается :/
Вот с таким встречаюсь в первые, чтобы комбинации клавиш не определялись, а действие выполнялось.
Хотя что то похожее и встречалось, вот только не понятно как в этом случае с определением клавиш
В некоторых ноутбуках (например, Dell Inspiron, Lenovo ThinkPad и др.) в BIOS можно задать режим работы функциональных клавиш (т.е. они могут выступать в классической роли, а могут без нажатия на Fn сразу же выполнять вторую свою функцию: убавлять звук, включать/выключать тачпад и т.д.).
Но есть и еще одно предположение - работает потому что забито железно в комбинации WMI hotkeys
Если есть желание попробовать решить проблему с помощью udev, то посмотри этот топик - я сейчас добавил в него еще 2 ссылки (но это не так то просто)
Ошибки не исчезают с опытом - они просто умнеют
иксы не обрабатывают клавиши с кейкодами выше 255.
думаете дело в этом?
Werd
иксы не обрабатывают клавиши с кейкодами выше 255.
думаете дело в этом?
Ничего сказать не могу. Не понятно одно - почему не определяется scancode, который определен на аппаратном уровне и присваивается каждой клавише, с помощью этого кода драйвер клавиатуры распознает какая клавиша была нажата, ставит в соответствие keycode и далее ставится в соответствие keysym. То есть клавиша определена на 3-х уровнях идентификации (scancode, keycode, keysym). И если цепочка нарушена, клавиша не работает (как говорят, клавиша не мапится). Сканкод самый нижний уровень и его изменить нельзя.
А потому и не понятно - клавиша нажимается, действие выполняется, а коды не определяются.
Гадать нет смысла, нужно анализировать, а это не так то просто, нужно много знать. Если тебе это так важно, пробуй задействовать udev, ссылки давал.
Ошибки не исчезают с опытом - они просто умнеют
vasek
пробуй задействовать udev
так не работает же он )) и насколько я понял ты также имеешь некоторые проблемы с Fn+
которые тебе решить не удалось. Можно попробовать спросить на англоязычном форуме и stackoverflow.
Только надо описать проблему четко, в моем случае как я понял это невозможность получить scancode для некоторых комбинаций.
Werd
так не работает же он ))
А точно пробовал это? - выбирать не клавиатуру, а WMI
sudo evtest
........
/dev/input/event7: HP WMI hotkeys
.......
и нажимаем цифирку, соответствующую WMI - у меня это 7
Enter и нажимаем комбинации с Fn - если будет что то отображаться, то можно задействовать udev (у меня, как писал, глухо - ничего не отображается)

Werd
насколько я понял ты также имеешь некоторые проблемы с Fn+
У меня WM - могу повесить любую команду на любую комбинацию клавиш, которая, конечно, определяется. Так что меня это не беспокоит.
Ошибки не исчезают с опытом - они просто умнеют
vasek
А точно пробовал это?

Available devices:
/dev/input/event0:	Power Button
/dev/input/event1:	Sleep Button
/dev/input/event2:	Lid Switch
/dev/input/event3:	Power Button
/dev/input/event4:	AT Translated Set 2 keyboard
/dev/input/event5:	PC Speaker
/dev/input/event6:	Dell WMI hotkeys
/dev/input/event7:	SynPS/2 Synaptics TouchPad
/dev/input/event8:	Video Bus
/dev/input/event9:	Video Bus
/dev/input/event10:	HDA Digital PCBeep
/dev/input/event11:	HDA Intel PCH Mic
/dev/input/event12:	HDA Intel PCH Headphone
/dev/input/event13:	HDA Intel PCH Headphone
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event15:	Laptop_Integrated_Webcam_2HDM:
Select the device event number [0-15]: 6
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
Input device name: "Dell WMI hotkeys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 148 (KEY_PROG1)
    Event code 149 (KEY_PROG2)
    Event code 161 (KEY_EJECTCD)
    Event code 202 (KEY_PROG3)
    Event code 203 (KEY_PROG4)
    Event code 224 (KEY_BRIGHTNESSDOWN)
    Event code 225 (KEY_BRIGHTNESSUP)
    Event code 227 (KEY_SWITCHVIDEOMODE)
    Event code 236 (KEY_BATTERY)
    Event code 238 (KEY_WLAN)
    Event code 240 (KEY_UNKNOWN)
    Event code 248 (KEY_MICMUTE)
    Event code 431 (KEY_DISPLAYTOGGLE)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)

Если жать Fn+Key ничего не происходит..
 
Зарегистрироваться или войдите чтобы оставить сообщение.