Настройка и работа в Linux
adb5321d

Shift, ctrl и alt


В таблице раскладки клавиатуры (keyboard map) каждому скан-коду соответствует восемь значений. Как я уже сказал, какое из этих значений будет выбрано при нажатии клавиши, определяется "состоянием модификаторов".

Так вот, это "состояние" задается тремя модификаторами - shift, ctrl

и alt.

Состояние модификаторов (номер кода в таблице) syscons вычисляет по формуле:

1 (если shift) + 2 (если ctrl) + 4 (если alt)

В общем-то, если вы заглянете в какой-нибудь файл "раскладки клавиатуры", то увидите, что все колонки значений сверху подписаны - какая колонка, при какой комбинации модификаторов выбирается. Так что, высчитывать номер колонки по приведенной формуле вам не придется. Однако, эту формулу полезно знать, чтобы правильно понимать действие двух других модификаторов (CapsLock и NumLock) о которых речь пойдет ниже.

Говоря о модификаторах shift, ctrl и alt надо отметить, что ...

  • Строго говоря, поскольку на современных клавиатурах каждая такая клавиша присутствует в двух экземплярах (слева и справа основной клавиатуры), и значений тоже не три, а шесть - lshift, rshift, lctrl, rctrl, lalt, ralt. Буквы l и r в названиях означают левый (left) и правый (right) соответственно. Но для выбора одного из восьми состояний syscons не делает различий для левой и правой клавиши. То есть, в любом случае - нажмете ли вы клавишу, которой "прикреплено" значение lalt или клавишу со значением ralt или обе вместе, syscons будет считать, что активен модификатор alt.
  • Все эти три (или шесть) модификаторов "не фиксирующиеся". То есть, они действуют только пока вы держите соответствующие клавиши нажатыми (впрочем, об этом и так все знают).
  • По умолчанию, все эти шесть значений "навешены" на привычные клавиши - lshift на левую кнопку [Shift], rshift - на правую кнопку [Shift] и т.д. Однако, еще раз замечу, что речь идет о не о физических кнопках на клавиатуре, а о значениях, которые драйвер им присваивает. То есть, при желании, можно клавишу [Alt] заставить действовать как Shift, например, хотя в этом ничего полезного нет. Более полезным может оказаться одну из парных клавиш [Shift], [Ctrl] или [Alt] (например, левую) использовать по ее прямому назначению, а на правую "повесить" какую-нибудь другую функцию.



Содержание раздела