(This article is as well available in English).
Я нашел новый способ «повесить» на клавишу caps lock переключение языка (раскладки) в Mac OS X. В отличие от программы Kirgudu, которая тоже умеет это делать, мой способ работает без задержек, то есть язык переключается практически моментально после нажатия. Это важно, если вы набираете быстро: в случае с Kirgudu, при быстром наборе после нажатия caps lock первые несколько букв могут напечататься на предыдущем языке. (То есть, например, вместо www.google.ru получится ццw.google.ru)
Суть способа такова: в настройках сочетаний клавиш OS X смена языка назначается на клавишу F19 (вместо стандартного сочетания Cmd + Space, которое, впрочем, тоже можно оставить), затем с помощью PCKeyboardHack (это патч к драйверу + интерфейс к нему в системных настройках, написанные Takayama Fumihiko) клавиша caps lock переназначается на эту самую F19. При этом совершенно не важно, есть ли у вас эта клавиша на клавиатуре или нет.
Это должно работать на Mac OS X Leopard и Snow Leopard, про Tiger не знаю.
Минусы
- Сам режим caps lock будет никак не включить.
- Нет синхронизации текущего языка с зеленым огоньком на клавише (он будет гореть постоянно).
- Перед применением придется избавиться от DoubleCommand и иных клавиатурных «ремапперов», если у вас такие имеются.
- Этот метод сложнее в настройке, чем Kirgudu.
Однако, если вам что-то не понравится или не сработает, всегда можно будет все вернуть на место. У каждой из устанавливаемых программ есть деинсталлер.
Пошаговая инструкция
- Скачайте и установите PCKeyboardHack (перезагрузитесь опять).
- В системных настройках зайдите в «Клавиатуру» → вкладка «Клавиатура» → кликните по кнопке «Клавиши модификации» и для caps lock выберите «Никакого действия».

- Если на вашей клавиатуре в верхнем ряду присутствует клавиша F19, то вы можете пропустить данный шаг. В противном случае, скачайте мою программу (на самом деле, это просто одна строчка на AppleScript, обернутая в программу), которая эту клавишу нажмет виртуально. После скачивания, распакуйте образ dmg и перетащите «Simulate F19» из него в док (это временно).

- Переключитесь в том же окне системных настроек на вкладку «Сочетания клавиш» → «Клавиатура и ввод текста» → найдите «Выбрать предыдущий источник ввода» (или «следующий», не важно). Кликните дважды по месту, где указывается сочетание клавиш для данного действия. Затем, в случае, если на вашей клавиатуре есть F19, просто нажмите эту клавишу, в противном случае, нажмите иконку программы Simulate F19.app в вашем доке. (Если окно после этого перестало быть активным, просто повторите процедуру: кликните двойным кликом по сочетанию справа и еще раз нажмите на Simulate F19.app). В итоге должно получиться так:
Если все получилось, иконку Simulate F19 можно убрать из дока. - Вернитесь в главное окно системных настроек, нажмите PCKeyboardHack. Поставьте галочку напротив «Change Caps Lock», а в колонке «keycode» поменяйте 51 на 80.

Готово!
Дополнительно
Если вы замечаете задержку, скачайте и установите KeyRemap4MacBook (потребуется перезагрузка). После этого, откройте ее в системных настройках, затем выберите вкладку «Mapping» — там в строке поиска введите «capslock» и поставьте галочку рядом с «Enable CapsLock LED Hack». Это нужно для того, чтобы выключить предусмотренную Apple защиту от случайных нажатий caps lock.
Для продвинутых пользователей: вместо клавиши F19 может выступить любая другая клавиша в диапазоне F13–F19. Очевидно, что для этого нужно на третьем шаге выбрать соответствующую желаемой клавише программу (Simulate F13, Simulate F14 и т.д.) А на пятом шаге, вместо 80 нужно будет поставить keycode в соответствие с таблицей:
| Клавиша | Код |
|---|---|
| F13 | 105 |
| F14 | 107 |
| F15 | 113 |
| F16 | 106 |
| F17 | 64 |
| F18 | 79 |
| F19 | 80 |
Спасибо от начинающего свитчера!
Честно сознаться, предпочел бы переназначить правый шифт,
но для меня (пока) гораздо важнее согласованность с виндами.
А она Вашим способом (и с Ниньей в виндах) достигнута.
Еще раз спасибо.
Спасибо за отзыв!
Теоретически на правый шифт тоже можно переназначить если пересобрать PCKeyboardHack (или KeyRemap4MacBook) с соответствующей опцией, указанной, кажется, в XML файле. На офсайте программы есть подробная инструкция как это сделать, я правда, сам не пробовал.
И я, кстати, по той же самой причине перешел на капслок. Кроме Мака и Винды, я еще пользуюсь Убунтой, на которой эта опция доступна вообще “из коробки”.
Что такое “Ниньей в виндах?” :-)
http://www.keyboard-ninja.com/
Если вырубить хм… автоматику, обеспечить совместимость (=избавиться от runtime error)
и не замечать назойливости с обновлениями, то очень удобная переключалка ;)
Я юзаю Пунто Свитчер, аналогично отрубая автоматику и все опции, кроме, собственно, переключения по капслоку. Можно еще юзать capslang (http://yurez.narod.ru/capslang.html), но он, как мне кажется, медленее, чем Пунто.
Стояли оба (порознь и вместе). Нинья показалась удобнее, но 100%но отрицать
кривизну рук не берусь. Капслэнг меня чем-то напугал, чем именно – не помню :)
Да, забыл написать, Shift Right уже приспособил вместе с Маковским Delet’ом
под привычный Виндовской Del (Forward). Так что все к лучшему