Установка клавиши Caps Lock на CTRL, но все еще функционирует как Caps Lock, если я нажимаю достаточно долго в Mac OS X

695
greduan

Если возможно, я хотел бы что-то похожее на это: https://apple.stackexchange.com/a/4815/31313

В основном это простой скрипт, который определяет, когда я нахожусь tmux, если я изменю ключ блокировки CAPS на ключ CTRL, иначе вернем его.

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

Это было бы легко сделать? Можно сделать? Я бы предпочел, чтобы я не использовал какое-либо дополнительное программное обеспечение, чтобы я мог просто поместить это в скрипт.

Дополнительная информация:

Я хотел бы добиться этого на Mac Mini с OSX Snow Leopard, если возможно, также с Mountain Lion.

0

1 ответ на вопрос

2
user495470

If you have already changed caps lock to control, adding this to private.xml in KeyRemap4MacBook would make holding control (or caps lock) toggle caps lock:

<autogen>--HoldingKeyToKey-- KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::VK_NONE, KeyCode::CAPSLOCK, Option::NOREPEAT</autogen>

The threshold for holding keys is 0.2 s by default, but it can be changed in the second tab.

(I suggested changing fn+control (fn+caps lock) to caps lock in the previous question at Ask Different:)

<autogen>--KeyToKey-- KeyCode::CONTROL_L, ModifierFlag::FN, KeyCode::CAPSLOCK</autogen>

If you just want to keep some key as caps lock, you can also change control to caps lock in System Preferences.

Итак, я бы добавилТЕРМИНАЛ`после заявления автогена? Или внутри? Будет ли это работать, если вместо приложения «Терминал» будет использоваться iTerm? Спасибо за совет, хотя у меня нет клавиши fn с этой клавиатурой (это пара поколений iMac назад), вы думаете, что это сработало бы, если бы я сделал Option+Shift+Caps lockвместо этого? greduan 11 лет назад 0
До или после него. Но `ТЕРМИНАЛ`это просто Terminal.app, и для iTerm нет константы. Для параметра и смещения измените `ModifierFlag :: FN` на` VK_OPTION | VK_SHIFT`. user495470 11 лет назад 0
Хорошо, я использую--HoldingKeyToKey-- KeyCode :: CONTROL_L, KeyCode :: CONTROL_L, KeyCode :: VK_NONE, KeyCode :: CAPSLOCK, Option :: NOREPEATТЕРМИНАЛ`если мне нужна функция, запрошенная в посте, после изменения порога удерживающей клавиши. И я бы--KeyToKey-- KeyCode :: CONTROL_L, VK_OPTION | VK_SHIFT, KeyCode :: CAPSLOCKТЕРМИНАЛ`если я хочу переназначить заглавные буквы на CTRL и нажать, Option+Shift+Caps lockчтобы переключить заглавные буквы Правильно? greduan 11 лет назад 0
Если вы хотите, чтобы caps lock работал как caps lock вне терминала, вам нужно использовать [PCKeyboardHack] (http://pqrs.org/macosx/keyremap4macbook/pckeyboardhack.html.en), чтобы изменить caps lock на что-то вроде F19 и затем переназначить F19. user495470 11 лет назад 0
Ах, я вижу, спасибо! Хотя это и решает проблему, но не делает это со сценарием, поэтому я не приму его, но это определенно обходной путь. Спасибо за внимание к этому. :) greduan 11 лет назад 0