Рейтинг:0

Объясните внутренний механизм «Параметры раскладки клавиатуры» с точки зрения переназначения скан-кода, кода клавиши или символа клавиши.

флаг jp

Я хотел бы, чтобы вы объяснили внутренний механизм «Параметры раскладки клавиатуры» с точки зрения переназначения сканкод, ключевой код, или же ключевой символ. Я говорю о панели управления GUI «Параметры раскладки клавиатуры». Меня особенно интересует Ubuntu MATE 20.04.

В Ubuntu MATE 20.04 «Параметры раскладки клавиатуры» находятся в «Центре управления», как показано ниже. В «Параметры раскладки клавиатуры» меня особенно интересуют «Ctrl сопоставляется с Win и обычными клавишами Ctrl» и «Поменять местами левый Win с левым Ctrl».

Центр управления > Оборудование >

  Клавиатура > вкладка «Макет» > «Параметры...» >

    Параметры раскладки клавиатуры

        Поведение клавиши Alt/Win

          (o) Ctrl отображается на Win и обычные клавиши Ctrl

        Позиция Ctrl

          [v] Поменять местами левый Win с левым 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».

Gunnar Hjalmarsson avatar
флаг uz
MATE использует XKB для управления сопоставлением клавиш. Конкретные параметры, которые вы упомянули, указаны в `man xkeyboard-config`. Чтобы увидеть это на более глубоком уровне, вы можете изучить файлы, предоставляемые пакетом `xkb-data`.
vanadium avatar
флаг cn
Вероятно, от evdev scancode до keysym

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.