Переключение языка ввода по caps lock в Mac OS X

(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 не знаю.

Минусы

  1. Сам режим caps lock будет никак не включить.
  2. Нет синхронизации текущего языка с зеленым огоньком на клавише (он будет гореть постоянно).
  3. Перед применением придется избавиться от DoubleCommand и иных клавиатурных «ремапперов», если у вас такие имеются.
  4. Этот метод сложнее в настройке, чем Kirgudu.

Однако, если вам что-то не понравится или не сработает, всегда можно будет все вернуть на место. У каждой из устанавливаемых программ есть деинсталлер.

Пошаговая инструкция

  1. Скачайте и установите PCKeyboardHack (перезагрузитесь опять).
  2. В системных настройках зайдите в «Клавиатуру» → вкладка «Клавиатура» → кликните по кнопке «Клавиши модификации» и для caps lock выберите «Никакого действия».Caps Lock No Action
  3. Если на вашей клавиатуре в верхнем ряду присутствует клавиша F19, то вы можете пропустить данный шаг. В противном случае, скачайте мою программу (на самом деле, это просто одна строчка на AppleScript, обернутая в программу), которая эту клавишу нажмет виртуально. После скачивания, распакуйте образ dmg и перетащите «Simulate F19» из него в док (это временно).Simulate F19 To Dock
  4. Переключитесь в том же окне системных настроек на вкладку «Сочетания клавиш» → «Клавиатура и ввод текста» → найдите «Выбрать предыдущий источник ввода» (или «следующий», не важно). Кликните дважды по месту, где указывается сочетание клавиш для данного действия. Затем, в случае, если на вашей клавиатуре есть F19, просто нажмите эту клавишу, в противном случае, нажмите иконку программы Simulate F19.app в вашем доке. (Если окно после этого перестало быть активным, просто повторите процедуру: кликните двойным кликом по сочетанию справа и еще раз нажмите на Simulate F19.app). В итоге должно получиться так:Bind Change Layout To F19Если все получилось, иконку Simulate F19 можно убрать из дока.
  5. Вернитесь в главное окно системных настроек, нажмите PCKeyboardHack. Поставьте галочку напротив «Change Caps Lock», а в колонке «keycode» поменяйте 51 на 80.Change Caps Lock Keycode

Готово!

Дополнительно

Если вы замечаете задержку, скачайте и установите KeyRemap4MacBook (потребуется перезагрузка). После этого, откройте ее в системных настройках, затем выберите вкладку «Mapping» — там в строке поиска введите «capslock» и поставьте галочку рядом с «Enable CapsLock LED Hack». Это нужно для того, чтобы выключить предусмотренную Apple защиту от случайных нажатий caps lock.Tick Caps Lock Led Hack

Для продвинутых пользователей: вместо клавиши F19 может выступить любая другая клавиша в диапазоне F13–F19. Очевидно, что для этого нужно на третьем шаге выбрать соответствующую желаемой клавише программу (Simulate F13, Simulate F14 и т.д.) А на пятом шаге, вместо 80 нужно будет поставить keycode в соответствие с таблицей:

Клавиша Код
F13 105
F14 107
F15 113
F16 106
F17 64
F18 79
F19 80
This entry was posted in How to’s and tagged , , , , , , . Bookmark the permalink.

6 Responses to Переключение языка ввода по caps lock в Mac OS X

  1. Александр says:

    Спасибо от начинающего свитчера!
    Честно сознаться, предпочел бы переназначить правый шифт,
    но для меня (пока) гораздо важнее согласованность с виндами.
    А она Вашим способом (и с Ниньей в виндах) достигнута.
    Еще раз спасибо.

    • Dae says:

      Спасибо за отзыв!

      Теоретически на правый шифт тоже можно переназначить если пересобрать PCKeyboardHack (или KeyRemap4MacBook) с соответствующей опцией, указанной, кажется, в XML файле. На офсайте программы есть подробная инструкция как это сделать, я правда, сам не пробовал.

      И я, кстати, по той же самой причине перешел на капслок. Кроме Мака и Винды, я еще пользуюсь Убунтой, на которой эта опция доступна вообще “из коробки”.

      Что такое “Ниньей в виндах?” :-)

  2. Александр says:

    http://www.keyboard-ninja.com/

    Если вырубить хм… автоматику, обеспечить совместимость (=избавиться от runtime error)
    и не замечать назойливости с обновлениями, то очень удобная переключалка ;)

    • Dae says:

      Я юзаю Пунто Свитчер, аналогично отрубая автоматику и все опции, кроме, собственно, переключения по капслоку. Можно еще юзать capslang (http://yurez.narod.ru/capslang.html), но он, как мне кажется, медленее, чем Пунто.

      • Александр says:

        Стояли оба (порознь и вместе). Нинья показалась удобнее, но 100%но отрицать
        кривизну рук не берусь. Капслэнг меня чем-то напугал, чем именно – не помню :)

  3. Александр says:

    Да, забыл написать, Shift Right уже приспособил вместе с Маковским Delet’ом
    под привычный Виндовской Del (Forward). Так что все к лучшему

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>