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

(This article is as well available in English).

Для пришедших из поисковых систем по схожим запросам:

  • Если вы не знаете как вообще переключать язык на Mac OS X, попробуйте Cmd + пробел.
    Имейте в виду, 1) что поставить сочетание «как в Windows», то есть, Ctrl + Shift или Alt + Shift в Mac OS X не получится. 2) Если вас раздражает нахождение запятой и точки в маковской русской раскладке, попробуйте включить раскладку «Русская – ПК».
  • Как переключать по Caps Lock в Windows.

* * *

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

23 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). Так что все к лучшему

  4. barba says:

    Сделал все по инструкции, по нажатию капслока значок раскладки меняется, в выпадающем окне выбранная раскладка меняется, но на самом деле раскладка остается прежней до тех пор пока не выберешь ее мышкой.
    Не подскажете, в чем может быть дело и куда копать?

    • Dae says:

      Интересный баг.

      А какая у вас стоит система?
      Сколько установлено языков?
      Не срабатывает на любых языках?

      Ради эксперимента, попробуйте поставить на “Выбрать следующий источник ввода” в настройке сочетаний клавиш.

      • barba says:

        10.5.8
        назначит на “следующий источник…” помогло. была мысль так сделать, но подумал что не поможет. =)
        Спасибо.

  5. Anton says:

    I moved to Mac OS X three days ago and found a much easier way to do it:
    Install Punto Switcher for Mac (which works waaaaaaaaaay better than Kirgudu btw);
    Select Ctrl or ⌘Command as your layout switch button;
    In Modifier Keys menu (keyboard options) assign Caps Lock to that selected button (⌘ in my case);
    Done!

    No hacks, no extra software, works like a charm, enjoy.

    • Dae says:

      Когда я писал эту статью, в Пунто еще не было такой фичи. Спасибо за информацию!

    • sergey says:

      ура, наконец-то рабочий способ) хоть и через punto

  6. Gordio says:

    Должен же быть способ добавить в список http://d43.me/wp-content/uploads/caps-lock-no-action.png переключить раскладку… :-(

  7. Anton says:

    Для автора топика и тех, кто находит данный пост через поиск – для винды лучший и легчайший способ (без ненужностей пунто и прочих) – keyla. В гугле находится без проблем, лежит на гуглокодах.
    За пост спасибо

  8. Panda says:

    А у меня одна раскладка, в которой с капсом все буквы русские, а без капса — английские) Вообще офигеть как удобно. Капс все равно не нужен никогда. И всегда знаешь, какая раскладка, потому что лампочку всегда видно боковым зрением, не надо даже взгляд переводить никуда. И переключается моментально.

  9. Function says:

    Пользуюсь раскладкой Мефодица от Лебедева. Переключение через Caps Lock, лампочка показывает включенную кириллицу

    http://nexusnotes.ru/2011/06/mac-layout-switch-caps-lock/

  10. Pingback: Layout mit Umlaute, а также русская фонетическая раскладка (Update) « Science, Bugs & Rock'n'Roll

  11. Офигенный метод! Все прекрасно работает. будем ждать индикацию лампочкой теперь)

  12. Pingback: Layout mit Umlaute « Science, Bugs & Rock'n'Roll

  13. Foro says:

    Любопытно, но я нахожу это бессмысленным. Поскольку настроить идентичное с Windows сочетание клавиш всё равно не получится (большинству приходится попеременно работать в обеих ОС), то нет уже принципиальной разницы, какое это будет сочетание. Ломать функциональность клавиши Caps Lock – плохое решение. Назначать сочетание Shift + 1(2 и т. д.) – ещё хуже – руку вывихнуть можно. Назначьте сочетание Alt + Пробел и это будет меньшим из зол. Ну и Punto Switcher хороший помощник, который правильно переключит раскладку без вмешательства пользователя в большинстве ситуаций.

    • Dae says:

      идентичное с Windows сочетание клавиш всё равно не получится

      Не понял. На Windows также можно настроить переключение раскладки по caps lock.

      Ломать функциональность клавиши Caps Lock – плохое решение.

      Я режимом капслока никогда не пользовался, то есть вообще никогда. Чем же плохо?

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>