Что делает & ldquo; Ключ для выбора 5-ого уровня & rdquo; в свойствах gnome-keyboard?

Можно указать ключ, который будет использоваться для доступа к 5-му уровню на клавиатуре в gnome-keyboard-properties («Клавиатура» в разделе «Оборудование в настройках системы»):

Но если я установлю 5-й уровень на AltGr и третий уровень на правый Ctrl, и если я установлю ключ 54 следующим образом:

xmodmap -e "keycode 54 = 1 2 3 4 5 6 7 8"

Я получаю следующие результаты от нажатия разных вариантов:

keycode 54 = 1
keycode 54 + right ctrl = 5
keycode 54 + right ctrl + shift = 6
keycode 54 + shift = 2
keycode 54 + AltGr = 1
keycode 54 + AltGr + shift = 2
Итак, что делает модификатор 5-го уровня? Как настроить его, чтобы я мог получить 5 или шесть разных символов из одного ключа (например, с помощью Shift, Alt Gr и Right Ctrl)?
1
задан 31 March 2018 в 09:26

1 ответ

Ну, после немного копания:

(1) Ключ для выбора 5-го уровня делает некоторые странные вещи (в отношении некоторых французских макетов), которые не имеют отношения к тому, что я хотел сделать. В основном он устанавливает, какой ключ будет действовать как ISO_Level5_Shift. ISO_Level5_Shift используется в некоторых неясных макетах. Этот ответ основан на количестве результатов, полученных google при поиске «ISO_Level5_Shift» и на этих ссылках.

(2) Он не может использоваться для получения 6 символов из одного физического ключа. Один из способов добиться этого - использование файла .xmodmap, помещенного в директорию $ HOME.

Во-первых, команда

xmodmap -pm

дает ключи, которые действуют как различные модификаторы. В моей системе это было следующим:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x9)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c)

mod3 необходимо настроить, чтобы использовать 6 символов с одним ключом. Это должно быть помещено в файл .xmodmap:

clear mod3
clear mod5
keycode 94 = Mode_switch
add mod3 = Mode_switch
add mod5 = ISO_Level3_Shift

Тогда xmodmap -pm дал мне:

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x9)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Mode_switch (0x5e),  Mode_switch (0xcb)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  ISO_Level3_Shift (0x6c)

Если ключевой код 94 является ключом, который я выбрал как mod3. Клавиши с различными физическими клавишами можно найти с помощью инструмента командной строки xev (просто запустите его и нажмите различные клавиши, появятся коды клавиш).

Затем, если я поместил файл .xmodmap

[ f5]

или запустите

xmodmap -e "keycode 54 = 1 2 3 4 5 6"

Я получаю шесть разных символов из одного ключа с использованием altgr, shift и keycode 94 (это бесполезный ключ рядом с левым сдвигом на моем физическом макете).

UPDATE: если вам нужно всего пять символов, удобно настроить его следующим образом:

keycode 54 = 1 2 3 3 5 6

Иногда случается со мной, что я получаю 4 вместо 3 в противном случае.

8
ответ дан 25 May 2018 в 21:18

Другие вопросы по тегам:

Похожие вопросы: