Несколько примеров изменения назначения клавиш.
Как я уже говорил, при загруженной (или встроенной) русской раскладке клавиатуры клавиша [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.
Если у вас "микрософтовская" клавиатура, то под 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, найдите в раскладке все строчки со словом 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, оно просто не окажет никакого действия на машину.
Иван Паскаль pascal@tsu.ru