Як я можу перевстановити функцію Caps Lock і на Escape, і на управління


22

Я взагалі запускаю Linux. Я багато використовую Vim, тому клавіша Escape надзвичайно важлива. Я також дуже часто використовую інші комбінації клавіш, тому управління є "ключовим". У Linux я вирішив це за допомогою xcape, щоб зіставити клавішу Caps Lock на Escape, якщо вона натиснута сама, або Control, якщо натиснути в поєднанні з іншою клавішею. Це ставить найкраще з обох світів в межах досяжності мого рожевого пальця. Чи є спосіб зробити це на Mac?

Відповіді:


19

Так , за допомогою Karabiner (раніше KeyRemap4Macbook) .

Спочатку перейдіть у панель налаштувань клавіатури, натисніть «Клавіші модифікатора…» та змініть Caps Lock на «Керування». Потім увійдіть у Karabiner і шукайте цей варіант:

Control_L до Control_L
      (+ коли ви вводите лише Control_L, надішліть Escape)

Перевірте це, і ви закінчили. За допомогою Karabiner ви можете зробити ще багато цікавих речей, як, наприклад, зіставити свій (зараз якийсь марний) ключ Escape до клавіші Hyper із ще більшими прив’язками клавіш.


чи можливо переосмислити esc to cap lock та map lock lock для управління та втечі? Тому що колись я все-таки відчуваю необхідність використовувати cap lock, щоб набрати довгий верхній регістр.
Аарон Шен

Тепер Karibiner пропонує вам змінити функцію Caps Lock на "No Action" у налаштуваннях клавіатури OSX (замість того, щоб встановити її там для управління), а також використовувати Seil, сестринську програму Karabiner, щоб зробити перезавантаження. Остання частина вищевказаної відповіді (+ коли ви вводите лише Control_L ...) все ще виконується в Karabiner.
ScoBe

@AaronShen просто перезавантажте втечу, щоб заблокувати шапки ;-).
Вен

@ScoBe Я б рекомендував не робити цього, вам справді не потрібна Seil,
Вересень

Я рекомендую зниження карабін в Key Overlaid Модифікатор> Тайм - аут параметра від 1000 мс до 200 мс . Якщо я тримаю ключ, але потім передумав і відпустив його, я не хочу стріляти з Escape.
joeytwiddle

16

На даний момент Karabiner несумісний з MacOS Sierra. Ще одне, зручне для Сьєрра рішення - це з клавіатури Maestro (вона не безкоштовна). Змініть поведінку клавіші Caps-Lock на керування через System Preferences-> Keyboard->, Modifier Keysяк запропонували інші.

Потім в клавіатурі Maestro встановіть макрос таким чином:

  • Ініційовано USB Device Key Trigger
  • Натисніть клавішу Caps-Lock на клавіатурі
  • натискається один раз
  • з цими модифікаторами: ^
  • (вам потрібно буде повторити попередній тригер для кожної USB-клавіатури, яку ви використовуєте)
  • Потім додайте дію Text->Type a keystroke
  • Натисніть Esc

1
Щоб було зрозуміло, існує проект під назвою Karabiner Elements , який працює на Сьєррі (який є попередником версії Karabiner, яка працюватиме на Сьєррі). Я не пробував цього, тому не знаю, доступна ця функція чи ні.
tubedogg

5
Karabiner-Elements ще не підтримує дію на клавішу модифікатора, що буде потрібно для цього.
журливо

Цей параметр "із цими модифікаторами: ^" вимагає ^натискання разом із капсулом для запуску дії. Це зовсім не те, що потрібно в питанні.
дефш

Оскільки ми вперше змінюємо Caps-Lock таким чином, щоб керувати таким чином, як керування за допомогою системних налаштувань, KM бачить події USB з увімкненою клавішею Control. Якщо ви опустите ^модифікатор, дія ніколи не запуститься.
бурхливо

Якщо ви переходите до маршруту маестро на клавіатурі, чи є спосіб зіставити клавішу втечі, щоб зафіксувати шапки, щоб відновити функцію блокування шапки? Мені подобається, що шапки блокуються як ctrl, так і втечу.
Квас

1

Щоб зробити це за допомогою Karabiner Elements , який підтримує macOS 10.12 і пізніших версій, відкрийте ~/.config/karabiner/karabiner.jsonі додайте до rulesмасиву наступне правило .

{
  manipulators: [
    {
      description:
        "Change caps_lock to control when used as modifier, escape when used alone",
      from: {
        key_code: "caps_lock",
        modifiers: {
          optional: ["any"]
        }
      },
      to: [
        {
          key_code: "left_control"
        }
      ],
      to_if_alone: [
        {
          key_code: "escape",
          modifiers: {
            optional: ["any"]
          }
        }
      ],
      type: "basic"
    }
  ]
}

Ви також можете спробувати використовувати ControlEscape.spoon з Hammerspoon .


Я не міг змусити це працювати, якщо не видалив модифікатори (ключове слово та всі) з to_if_aloneрозділу. Але дякую за фрагмент. Це дуже корисно.
Майкл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.