Стенды: alt-server-10-x86-64 alt-education-10-x86-64 alt-education-10-x86-64-kde alt-workstation-10-x86-64 alt-kworkstation-10.1-x86-64 Пакет: keyfuzz-0.2-alt1 Шаги воспроизведения: 1) # readlink -ev /etc/keyfuzz/* | while read kf; do keyfuzz -g > prev.keyfuzz keyfuzz -s < $kf keyfuzz -g > current.keyfuzz diff -u --color prev.keyfuzz current.keyfuzz > $(basename $kf).diff keyfuzz -s < initial.keyfuzz done 2) Открыть файл apple_0220.keyfuzz.diff Ожидаемый результат: Файл не пустой. Фактический результат: Файл пустой.
(Ответ для Алексей на комментарий #0) > Шаги воспроизведения: > 1) # readlink -ev /etc/keyfuzz/* | while read kf; do > keyfuzz -g > prev.keyfuzz > keyfuzz -s < $kf > keyfuzz -g > current.keyfuzz > diff -u --color prev.keyfuzz current.keyfuzz > $(basename $kf).diff > keyfuzz -s < initial.keyfuzz > done > 2) Открыть файл apple_0220.keyfuzz.diff Перед шагом №1 необходимо также выполнить следующую команду: # keyfuzz -g > initial.keyfuzz && keyfuzz -g > current.keyfuzz
Дополнительно. Перед шагами воспроизведения необходимо выполнить: # keyfuzz -g > initial.keyfuzz && keyfuzz -g > current.keyfuzz Содержимое файла: https://git.altlinux.org/gears/k/keyfuzz.git?p=keyfuzz.git;a=blob;f=keyfuzz/conf/apple_0220.keyfuzz;h=666a1b47944a8c3b9f53ba3ec71c513a5e635dc6;hb=HEAD
Ошибка, скорее, вот в чём: # keyfuzz -s < /etc/keyfuzz/apple_0220.keyfuzz EVIOCGKEYCODE: Invalid argument Поэтому и файл оказывается "пустой". С другими файлами из /etc/keyfuzz такой ошибки нет.
А оно точно должно у нас работать? или хотя бы без подключенной apple клавиатуры?: # head -1 /etc/keyfuzz/apple_0220.keyfuzz ### keyfuzz file for Apple Aluminium Keyboard
Интересно, вот смотрю man keyfuzz -d | --device=DEVICE Use the specified event device. The virtual file /proc/bus/input/devices lists all input devices available on the local system. (Default: /dev/input/event0) Т.е по-умолчанию используется /dev/input/event0, вот смотрю дадьше : cat /proc/bus/input/devices ... I: Bus=0019 Vendor=0000 Product=0005 Version=0000 N: Name="Lid Switch" P: Phys=PNP0C0D/button/input0 S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0 U: Uniq= H: Handlers=event0 B: PROP=0 B: EV=21 B: SW=1 ... Поэтому: # keyfuzz -g ### evdev 1.0.1., driver 'Lid Switch' ### EOF Естественно, это не клавиатура ;-) А у вас как ?
На keyfuzz набрел из этого обсужддения: https://forum.rosalinux.ru/viewtopic.php?t=7139&p=69817 Хочу поделиться малоизвестным но более правильным способом ремаппинга клавиш в Linux с помощью утилиты keyfuzz (на примере полноразмерной эппловской USB клавиатуры). При этом и Insert будет на месте Fn, и Win/Alt где надо, и функциональные клавиши будут включены. И всё это работает независимо от иксов (т.е. и в консоли тоже). .....
Т.е. задать раскладку - это типа (как у меня): # echo /etc/keyfuzz/apple_0220.keyfuzz | keyfuzz -s -d /dev/input/event5
Но в принципе -g похоже не работает ;-) Вопрос - работает -ли сам маапинг (это-же аналог xmodmap) ;-)
Точнее аналог xmodmap, который не завязан на xorg
(Ответ для ruslandh на комментарий #5) > Естественно, это не клавиатура ;-) > > А у вас как ? У меня это клавиатура. cat /proc/bus/input/devices I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 N: Name="AT Translated Set 2 keyboard" P: Phys=isa0060/serio0/input0 S: Sysfs=/devices/platform/i8042/serio0/input/input0 U: Uniq= H: Handlers=sysrq kbd leds event0 B: PROP=0 B: EV=120013 B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe B: MSC=10 B: LED=7 >Но в принципе -g похоже не работает ;-) Работает, свой вывод вывод добавил во вложения.
Created attachment 12142 [details] Вывод keyfuzz -g
(Ответ для Алексей на комментарий #11) > Создано вложение 12142 [details] [подробности] > Вывод keyfuzz -g А если, допустим, дать команду : # LeftAlt -> LeftMeta echo "0x0700e2 125" | keyfuzz -s то изменится keyfuzz -g ?
(Ответ для ruslandh на комментарий #7) > Т.е. задать раскладку - это типа (как у меня): > > # echo /etc/keyfuzz/apple_0220.keyfuzz | keyfuzz -s -d /dev/input/event5 тут кстати я ошибся , тут по-идее надо # cat /etc/keyfuzz/apple_0220.keyfuzz | keyfuzz -s -d /dev/input/event5
(Ответ для ruslandh на комментарий #12) > А если, допустим, дать команду : > > # LeftAlt -> LeftMeta > echo "0x0700e2 125" | keyfuzz -s Как её использовать? Можно подробнее?
(Ответ для Алексей на комментарий #14) > (Ответ для ruslandh на комментарий #12) > > > А если, допустим, дать команду : > > > > # LeftAlt -> LeftMeta > > echo "0x0700e2 125" | keyfuzz -s > > Как её использовать? Можно подробнее? Эта команда назначает кнопке со скан-кодом 0x0700e2 функцию левой Мета -кнопки (это кнопка левого флажка на Win клавиатуре, или кнопкак Command на Мак клавиатуре). Скан-код кнопки можно узнать командой (в консоле) showkey -s Или в графике xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }' Подробнее можно прочесть здесь: https://wiki.archlinux.org/title/Keyboard_input_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) https://wiki.archlinux.org/title/Keyboard_input_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
https://wiki.archlinux.org/title/Keyboard_input_(Русский)
echo 0x72 125 | keyfuzz -s
(Ответ для ruslandh на комментарий #17) > echo 0x72 125 | keyfuzz -s После команды keyfuzz -g изменяется # diff oldg.txt newg.txt //(сохранил в эти 2 файла состояния до и после команды) 116c116 < 0x072 KEY_RESERVED --- > 0x072 KEY_LEFTMETA