?

Log in

No account? Create an account

Стой под стрелой

Поступки и мысли, о которых могу вспомнить не краснея

Previous Entry Поделиться Next Entry
Переключение раскладки CapsLock-ом для Мака
tonsky
Зачем: КапсЛок — бесполезная клавиша в очень удобном месте. Переключать раскладку одной кнопкой очень удобно.

Как: Можно наверное скачать какую-нибудь специальную программу-демона, но я не люблю ставить ничего лишнего — программы как дети, ломаются, болеют, за ними надо смотреть, и чем их больше, тем труднее. К счастью, можно обойтись штатными средствами.

1. Скачиваем PlistEditPro.

2. Открываем с его помощью файл ~/Library/Preferences/ByHost/.GlobalPreferences.000d-что-то там. Учтите, что это скрытый файл, так что так просто его в диалоге не выберешь, проще из терминала:


  cd ~/Library/Preferences/ByHost
  /Applications/PlistEdit\ Pro.app/Contents/MacOS/PlistEdit\ Pro .GlobalPreferences.2ED2F52A-AEF9-56EE-A155-15190BFB7C5F.plist


3. Находим или добавляем раздел com.apple.keyboard.modifiermapping и дописываем туда маппинг 0 → 5 (CapsLock → KeyPad0, см. также БОНУСЫ):

<key>com.apple.keyboard.modifiermapping.1118-219-0</key>
<array>
  <dict>
    <key>HIDKeyboardModifierMappingDst</key>
    <integer>5</integer>
    <key>HIDKeyboardModifierMappingSrc</key>
    <integer>0</integer>
  </dict>
</array>


4. Перелогиниваемся.

5. Идем в System Preferences и ставим комбинацией на переключение раскладки CapsLock (он теперь при нажатии будет генерировать нажатие KeyPad0 — тоже не самая востребованная кнопка).

БОНУСЫ


1. Можно обойтись и без PlistEdit Pro:

  plutil -convert xml1 -o keys-xml.plist .Global…
  vim keys-xml.plist
  plutil -convert binary1 -o .Global… keys-xml.plist


2. Список всех кодов, которые можно перемапить:

None:         −1 (этим можно отключать кнопки)
Caps Lock:     0
Left Shift:    1
Left Control:  2
Left Option:   3
Left Command:  4
Keypad 0:      5
Help:          6
Right Shift:   9
Right Control: 10
Right Option:  11
Right Command: 12

Я не исследовал, возможно там и все остальные кнопки есть.


  • 1
Погоди, а у тебя разве мак?

Ещё немного и пересобирать ядро научишься :))

Установка Мака на ПиСи немногим по сложности отличается. Но здесь нечем особенно гордиться.

(Удалённый комментарий)
Проблема переключения раскладок американцев не волнует, а остальной мир, к сожалению, ОСей не производит. Я прекрасно понимаю, что гордиться здесь нечем, но жить-то как-то надо, вот и выкручиваемся.

Отлично! Я для той же цели использую Kirgudu, но лишняя программа всегда лишняя.

Что-то у меня последняя часть не получается...

А в обычных текстовых полях КапсЛок печатает нолики (до того, как на него шорткат повесили)?

А почему не бесполезный правый Ctrl ?

CapsLock всё-таки Shift в квадрате, чем-то полезен.

Правый контрол настолько бесполезный, что далеко не на всех клавиатурах даже есть. Нажимать его тоже не очень. Капс же именно удобно расположен. Правда, по мере изучения vim-а на него стал претендовать эскейп еще, а у емаксеров -- контрол.

На этапе №2 PlistEditPro пишет, что файл открыть невозможно, потому что его нет. В чем может быть проблема?

А файл имеется? (у него имя вида .GlobalPreferences.2ED2F52A-AEF9-56EE-A155-15190BFB7C5F.plist, только цифры у каждого свои). Если ничего похожего нету, попробуйте зайти в System Preferences -> Keyboard -> Modifier Keys (как-то так), поставить там КапсЛоку Disabled, тогда файл создастся. Это меню ровно про этот файл, он точно такие же записи создает, как я в посте описал, только там Keypad0 нельзя поставить, приходится лезть руками.

Получилось: действительно, файл у меня назывался по-другому. За одним научился смотреть скрытые файлы в папке :)

Спасибо )

5 минут попользовался и выявились следующие недостатки:

1. На экране логина язык по-прежнему меняется привычным Cmd+Space, оно и понятно, ведь я менял файл в пользовательской папке, но факт остается фактом.

2. Если в Пунтосвитчере сменить раскладку у уже набранного текста (делается в одно нажатие кнопки Alt), то в местах где нажимался CapsLock появятся нули.


Пришлось вернуть прежние настройки :(

что-то не сработало у меня на 10.8.2 а Киргуду перестал работать. Может еще какие-то решения есть ? (Кроме puntoswitcher)

Вроде всё сделал правильно, но Лев создал локфайл на эту штуку, и нажатие на CapsLock в настройках хоткея ничего не меняет. Просто включается капслок.

  • 1