ENGLISH | KOI | WIN | ALT | ISO
Мои программы

Несколько примеров изменения назначения клавиш.

Переключатель "альтернативной клавиатуры" (Рус/Лат).

Как я уже говорил, при загруженной (или встроенной) русской раскладке клавиатуры клавиша [CapsLock] начинает работать как "переключатель языка" - русский/латинский.

Если вам это не нравится, можно изменить раскладку так, чтобы [CapsLock] всегда оставалась CapsLock'ом. А "переключатель языка" присвоить какой-нибудь другой клавише или комбинации клавиш.

Первым делом вернем CapsLock на место. Для этого надо в файле раскладки найти строчки, в которых содержится значение alock.

058 alock clock clock clock clock clock clock clock O 084 alock alock alock alock alock alock alock alock O 186 alock clock clock clock clock clock clock clock O 212 alock alock alock alock alock alock alock alock O

Строчки со скан-кодами 84 и 212 нас мало интересуют. (Честно говоря, я не знаю - что это за клавиша.) А вот строчки 58 и 186 - это как раз клавиша [CapsLock] в "нормальной" и "альтернативной" (русской) клавиатурах.

Как видите, без модификаторов (shift, ctrl или alt) она действует как alock (alt group), а с любым из модификаторов - как clock (caps lock).

Просто исправьте alock на clock.

058 clock clock clock clock clock clock clock clock O 186 clock clock clock clock clock clock clock clock O

Теперь надо придумать - чем мы будем переключаться на русскую клавиатуру и обратно.

Если у вас есть незадействованные клавиши, например, "окошки" на "микрософтовской" клавиатуре, то можно занять одну из них. Это достаточно просто и я не буду подробно рассматривать этот случай. Можете посмотреть пример с клавишей Meta - это делается практически так же.

Если же свободных клавиш нет, то можно переключатель alock "подвесить" на какую-нибудь комбинацию клавиш. Например - "два шифта". То есть, каждая кнопка [Shift] должна работать как shift, а если их нажать одновременно, должен получится alock.

Для начала, найдем строчки в которых есть слово shift

042 lshift lshift lshift lshift lshift lshift lshift lshift O 054 rshift rshift rshift rshift rshift rshift rshift rshift O 170 lshift lshift lshift lshift lshift lshift lshift lshift O 182 rshift rshift rshift rshift rshift rshift rshift rshift O

Учтем, что даже при "одновременном" нажатии этих кнопок, все равно одна из них будет нажата чуть-чуть раньше. Поэтому, та кнопка которая будет нажата раньше, переведет клавиатуру в состояние shift, при котором выбирается вторая колонка значений (точнее, все четные), а уже вторая - должна выполнить нужное нам действие.

Если мы хотим, чтобы последовательность нажатия была не важна, нам надо исправить значение и для клавиши lshift во второй колонке (считаем, что правый shift мы нажали чуть раньше) и для клавиши rshift (на тот случай, если первым будет нажат левый shift).

042 lshift alock lshift lshift lshift lshift lshift lshift O 054 rshift alock rshift rshift rshift rshift rshift rshift O 170 lshift alock lshift lshift lshift lshift lshift lshift O 182 rshift alock rshift rshift rshift rshift rshift rshift O

Дело сделано.

Клавиша Meta.

Модификатор meta в раскладке клавиатуры отсутствует. Если вам кажется, что он будет вам очень полезен, надо найти подходящую клавишу и присвоить ей значение meta.

Если у вас "микрософтовская" клавиатура, то под met'у можно задействовать одну из кнопок с "окошками", напрмер - левую. Если вы не знаете ее скан-код (вообще-то, это 105), можно найти ее по значению - "по умолчанию" она имеет значение fkey62

105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O

Просто замените значения во всех колонках на meta

105 meta meta meta meta meta meta meta meta O

Если у вас русская раскладка клавиатуры, то не забудьте ту же операцию проделать для той же кнопки в "альтернативной" части раскладки

233 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O

Если же "микрософтовских" кнопок у вас нет, то можно под met'у выделить одну из "парных" кнопок ([Shift], [Ctrl] или [Alt]). Поскольку, для syscons нет разницы - какую из них вы нажмете для получения нужного эффекта, можно, напрмер, в качестве alt оставить только левую кнопку (та строчка, где значения - lalt), а правую кнопку (значения - ralt) изменить на meta.

"Комбинация из трех пальцев" - Ctrl+Alt+Del.

Если вам не нравится, что ваш компьютер можно перегрузить в любой момент, нажав "магическую комбинацию" Ctrl+Alt+Del, найдите в раскладке все строчки со словом boot (учтите, что клавиш Del две - одна над стрелками, а другая на "дополнительной цифровой клавиатуре").

083 del '.' '.' '.' 174 174 boot boot N 103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O 211 del '.' '.' '.' 174 174 boot boot N 231 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O

Просто замените слово boot на что-нибудь другое - nop ("пустая" клавиша) или bel ("писк").

Кстати, если вы боитесь, что враги могут восстановить эту клавишу и все-таки "отправить в перезагрузку" вашу машину, в последних версиях syscons появилось более радикальное средство.

Надо пересобрать ядро с "option SC_DISABLE_REBOOT", и куда бы вы (или злоумышленники) ни назначили значение boot, оно просто не окажет никакого действия на машину.