Переключатель "альтернативной клавиатуры" (Рус/Лат)
Как я уже говорил, при загруженной (или встроенной) русской раскладке клавиатуры клавиша [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
Дело сделано.