Bug 44627 - Файл apple_0220.keyfuzz.diff пустой
Summary: Файл apple_0220.keyfuzz.diff пустой
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: keyfuzz (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: ruslandh
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-12-15 11:59 MSK by Алексей Родыгин
Modified: 2022-12-26 12:24 MSK (History)
3 users (show)

See Also:


Attachments
Вывод keyfuzz -g (9.07 KB, text/plain)
2022-12-23 13:11 MSK, Алексей Родыгин
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Алексей Родыгин 2022-12-15 11:59:38 MSK
Стенды:
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

Ожидаемый результат:
Файл не пустой.

Фактический результат:
Файл пустой.
Comment 1 Anton Zhukharev 2022-12-15 17:11:55 MSK
(Ответ для Алексей на комментарий #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
Comment 2 Алексей Родыгин 2022-12-15 17:12:54 MSK
Дополнительно. Перед шагами воспроизведения необходимо выполнить:
# 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
Comment 3 Alexander Makeenkov 2022-12-15 17:19:26 MSK
Ошибка, скорее, вот в чём:
# keyfuzz -s < /etc/keyfuzz/apple_0220.keyfuzz
EVIOCGKEYCODE: Invalid argument

Поэтому и файл оказывается "пустой".

С другими файлами из /etc/keyfuzz такой ошибки нет.
Comment 4 Alexander Makeenkov 2022-12-15 17:28:21 MSK
А оно точно должно у нас работать? или хотя бы без подключенной apple клавиатуры?:

# head -1 /etc/keyfuzz/apple_0220.keyfuzz 
### keyfuzz file for Apple Aluminium Keyboard
Comment 5 ruslandh 2022-12-20 08:39:28 MSK
Интересно, вот смотрю 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

Естественно, это не клавиатура ;-)

А у вас как ?
Comment 6 ruslandh 2022-12-20 08:44:17 MSK
На keyfuzz набрел из этого обсужддения:

https://forum.rosalinux.ru/viewtopic.php?t=7139&p=69817

Хочу поделиться малоизвестным но более правильным способом ремаппинга клавиш в Linux с помощью утилиты keyfuzz (на примере полноразмерной эппловской USB клавиатуры). При этом и Insert будет на месте Fn, и Win/Alt где надо, и функциональные клавиши будут включены. И всё это работает независимо от иксов (т.е. и в консоли тоже).
.....
Comment 7 ruslandh 2022-12-20 08:54:35 MSK
Т.е. задать раскладку - это типа (как у меня):

# echo /etc/keyfuzz/apple_0220.keyfuzz |   keyfuzz -s -d /dev/input/event5
Comment 8 ruslandh 2022-12-20 09:06:11 MSK
Но в принципе -g похоже не работает ;-)

Вопрос - работает -ли сам маапинг (это-же аналог xmodmap) ;-)
Comment 9 ruslandh 2022-12-20 09:10:06 MSK
Точнее аналог xmodmap, который не завязан на xorg
Comment 10 Алексей Родыгин 2022-12-23 13:10:36 MSK
(Ответ для 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 похоже не работает ;-)
Работает, свой вывод вывод добавил во вложения.
Comment 11 Алексей Родыгин 2022-12-23 13:11:08 MSK
Created attachment 12142 [details]
Вывод keyfuzz -g
Comment 12 ruslandh 2022-12-23 13:28:31 MSK
(Ответ для Алексей на комментарий #11)
> Создано вложение 12142 [details] [подробности]
> Вывод keyfuzz -g

А если, допустим,  дать команду :

# LeftAlt -> LeftMeta
echo "0x0700e2 125" | keyfuzz -s 

то изменится 
keyfuzz -g 
?
Comment 13 ruslandh 2022-12-23 13:29:45 MSK
(Ответ для 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
Comment 14 Алексей Родыгин 2022-12-23 14:20:38 MSK
(Ответ для ruslandh на комментарий #12)

> А если, допустим,  дать команду :
> 
> # LeftAlt -> LeftMeta
> echo "0x0700e2 125" | keyfuzz -s 

Как её использовать? Можно подробнее?
Comment 15 ruslandh 2022-12-23 15:32:38 MSK
(Ответ для Алексей на комментарий #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)
Comment 17 ruslandh 2022-12-23 15:49:26 MSK
echo 0x72 125 | keyfuzz -s
Comment 18 Алексей Родыгин 2022-12-26 12:24:10 MSK
(Ответ для ruslandh на комментарий #17)
> echo 0x72 125 | keyfuzz -s

После команды keyfuzz -g изменяется

# diff oldg.txt newg.txt //(сохранил в эти 2 файла состояния до и после команды)
116c116
< 0x072	KEY_RESERVED
---
> 0x072	KEY_LEFTMETA