Объясните внутренний механизм «Параметры раскладки клавиатуры» с точки зрения переназначения скан-кода, кода клавиши или символа клавиши.
Я хотел бы, чтобы вы объяснили внутренний механизм «Параметры раскладки клавиатуры» с точки зрения переназначения
scancode
,
keycode
, или же
keysym
. Я говорю о панели управления GUI «Параметры раскладки клавиатуры». Меня особенно интересует Ubuntu MATE 20.04.
В Ubuntu MATE 20.04 «Параметры раскладки клавиатуры» находятся в «Центре управления», как показано ниже. В «Параметры раскладки клавиатуры» меня особенно интересуют «Ctrl сопоставляется с Win и обычными клавишами Ctrl» и «Поменять местами левый Win с левым Ctrl».
Control Center > Hardware >
Keyboard > Layout tab > Options... >
Keyboard Layout Options
Alt/Win key behavior
(o) Ctrl is mapped to Win and the usual Ctrl keys
Ctrl position
[v] Swap Left Win with Left Ctrl
В Linux существует три уровня идентификации ключей — сканкод, код ключа и символ ключа. Скан-код — это самый низкий уровень, который клавиатура отправляет на компьютер. Ключевой код среднего уровня. Keysym - это самый высокий уровень.
Скан-коды более тесно связаны с позициями на клавиатуре, чем с буквами, напечатанными на клавишах. Например, клавиша, на которой напечатана буква Y на американской клавиатуре, имеет букву Z на европейской клавиатуре. Однако скан-код всегда один и тот же, независимо от того, напечатана ли на клавише буква Y на клавиатуре США или буква Z на европейской клавиатуре.
Обычно в Linux существует два уровня сопоставления: сопоставление кода сканирования с кодом клавиши и сопоставление кода клавиши с символом клавиши. Таким образом, обычно в Linux переназначение клавиш означает либо изменение сопоставления кода сканирования с кодом клавиши, либо изменение сопоставления кода клавиши с символом клавиши.
Однако в MS Windows дела обстоят иначе, чем в Linux. Если я правильно помню, в Windows отсутствует keysym. Тем не менее, скан-код также является самым низким уровнем в Windows. В Windows переназначение клавиш не означает изменение сопоставления скан-кода с кодом клавиши, а означает создание дополнительного сопоставления скан-кода с скан-кодом.
Я хотел бы знать, реализованы ли «Параметры раскладки клавиатуры» в Ubuntu MATE 20.04 как:
модификация сопоставления скан-кода с кодом клавиши
модификация сопоставления кода клавиши с символом клавиши
создание дополнительного отображения из сканкода в сканкод
или что-то другое (объясните)
Как указано выше, меня особенно интересуют «Ctrl сопоставлен с Win и обычными клавишами Ctrl» и «Поменять местами левый Win с левым Ctrl».