Как создать полный макет xkb и заставить его работать?

У меня есть японская макетная клавиатура, и я бы хотел настроить ее в соответствии с моими потребностями. Вот файл макета xkb, который я создал.

default partial alphanumeric_keys modifier_keys xkb_symbols "jp106" { include "srvr_ctrl(fkey2vt)" include "keypad(numoperdecsep)" key <SCLK> { [ Scroll_Lock ] }; key <PAUS> { type= "PC_CONTROL_LEVEL2", symbols[Group1]= [ Pause, Break ] }; key <INS> { [ Insert ] }; key <HOME> { [ Home ] }; key <PGUP> { [ Prior ] }; key <DELE> { [ Delete ] }; key <END> { [ End ] }; key <PGDN> { [ Next ] }; key <UP> { [ Up ] }; key <LEFT> { [ Left ] }; key <DOWN> { [ Down ] }; key <RGHT> { [ Right ] }; replace modifier_map Control { Control_L, Control_R }; replace modifier_map Shift { Shift_L, Shift_R }; replace modifier_map Lock { Caps_Lock }; replace modifier_map Mod1 { Alt_L }; replace modifier_map Mod2 { Num_Lock }; replace modifier_map Mod3 { Hyper_R }; replace modifier_map Mod4 { Super_L, Super_R }; replace modifier_map Mod5 { Mode_switch }; key <ESC> { [ Escape ] }; key <NMLK> { [ Num_Lock ] }; key <BKSP> { [ BackSpace ] }; key <TAB> { [ Tab, ISO_Left_Tab ] }; key <RTRN> { [ Return ] }; key <LFSH> { [ Shift_L ] }; key <RTSH> { [ Shift_R ] }; key <LCTL> { [ Control_L ] }; key <LWIN> { [ Super_L ] }; key <LALT> { [ Alt_L ] }; key <NFER> { [ space ] }; key <SPCE> { [ Shift_R ] }; key <XFER> { [ Mode_switch ] }; key <HKTG> { [ Control_L ] }; key <RALT> { [ Hyper_R ] }; // t420 and lower key <MENU> { [ Super_R ] }; // t430 and higher key <PRSC> { [ Super_R ] }; key <RCTL> { [ Control_R ] }; key <AE01> { [ 1, exclam ] }; key <AE02> { [ 2, at ], [ ampersand ] }; key <AE03> { [ 3, numbersign ], [ semicolon ] }; key <AE04> { [ 4, dollar ], [ colon ] }; key <AE05> { [ 5, percent ] }; key <AE06> { [ 6, asciicircum ] }; key <AE07> { [ 7, ampersand ] }; key <AE08> { [ 8, asterisk ] }; key <AE09> { [ 9, parenright ] }; key <AE10> { [ 0, parenright ] }; key <AE11> { [ minus, underscore ] }; key <AE12> { [ asciicircum, asciitilde] }; key <AE13> { [ yen, bar ] }; key <AD01> { [ q, Q ], [ grave ] }; key <AD02> { [ w, W ], [ slash ] }; key <AD03> { [ e, E ], [ braceleft ] }; key <AD04> { [ r, R ], [ braceright ] }; key <AD05> { [ t, T ], [ quotedbl ] }; key <AD06> { [ y, Y ] }; key <AD07> { [ u, U ] }; key <AD08> { [ i, I ] }; key <AD09> { [ o, O ] }; key <AD10> { [ p, P ] }; key <AD11> { [ at, grave ] }; key <AD12> { [ bracketleft, braceleft ] }; key <CAPS> { [ Caps_Lock ] }; key <AC01> { [ a, A ], [ asciitilde ] }; key <AC02> { [ s, S ], [ question ] }; key <AC03> { [ d, D ], [ bracketleft ] }; key <AC04> { [ f, F ], [ bracketright ] }; key <AC05> { [ g, G ], [ apostrophe ] }; key <AC06> { [ h, H ] }; key <AC07> { [ j, J ] }; key <AC08> { [ k, K ] }; key <AC09> { [ l, L ] }; key <AC10> { [ semicolon, colon ] }; key <AC11> { [ colon, asterisk ] }; key <AC12> { [ bracketright, braceright ] }; key <AB01> { [ z, Z ] }; key <AB02> { [ x, X ], [ equal ] }; key <AB03> { [ c, C ], [ plus ] }; key <AB04> { [ v, V ], [ bar ] }; key <AB05> { [ b, B ], [ backslash ] }; key <AB06> { [ n, N ] }; key <AB07> { [ m, M ] }; key <AB08> { [ comma, less ] }; key <AB09> { [ period, greater ] }; key <AB10> { [ slash, question ] }; key <AB11> { [ backslash, underscore] }; }; 

Однако эти ключи работают не так, как ожидалось,

 key <LWIN> { [ Super_L ] }; key <NFER> { [ space ] }; key <SPCE> { [ Shift_R ] }; key <XFER> { [ Mode_switch ] }; key <HKTG> { [ Control_L ] }; key <RALT> { [ Hyper_R ] }; // t420 and lower key <MENU> { [ Super_R ] }; // t430 and higher key <PRSC> { [ Super_R ] }; 

Модификаторы тоже ошибаются. Это то, что показывает xmodmap,

 ❯ xmodmap xmodmap: up to 3 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 Hyper_L (0xcf) mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb) 

Я поместил файл макета в /usr/share/X11/xkb/symbols/jpamos и загрузил setxkbmap jpamos с помощью setxkbmap jpamos . Я также использовал localectl set-x11-keymap jpamos чтобы сохранить его.

Любая помощь очень ценится! Благодаря!

Interesting Posts

Версия версии операционной системы отличается от версии ядра. Это может вызвать проблемы?

Как пакет Debian должен создавать учетные записи пользователей?

Как вы обрабатываете всю команду как sudo, которая включает перенаправление или конвейер?

пятерка времени задержки с файлом журнала со сценарием оболочки

Как увидеть содержание tar, включая uid и gid?

Точка монтирования не существует, создайте каталог, затем «Файл существует»

Переменная PS1 больше не отображает цветную подсказку bash

Не удается подключиться к серверу через SSH (только на моем ПК)

У Grub есть ОС или собственные драйверы?

Ошибка, связанная с libreadline Ошибка при установке приложения «seedync»

Можно ли настроить работу cf ffmpeg для каталога?

Скритичные разделы GPT с использованием разделенных

Почему копируемый исполняемый файл rm не будет работать на другой Linux-машине?

Как установить разрешение в текстовых консолях (устранение неполадок при сбое каких-либо `vga = …`)

Включает ли упаковка приложение для APT, указывающее приложение на использование общих связей APT?

Linux и Unix - лучшая ОС в мире.