допомогти з елементами Karabiner на замовлення складного правила


4

У мене на клавіатурі є розірвана клавіатура. Раніше я використовував Karabiner для відображення L-control + open_bracket на close_bracket за допомогою спеціального правила, яке я написав у форматі xml, використовуваному карабінером.

Однак тепер, коли я оновився до Sierra, Karabiner вийшов, а Karabiner - елементи. Karabiner елементи використовує формат JSON. Я спробував створити нове правило і вставити його у файл JSON:

"rules": [
         {"manipulators": [
                {"description": "bracket rule",
                        "from": {"key_code": "open_bracket", 
                                 "modifiers": ["left_control"]
                                },
                          "to": [{"key_code": "close_bracket",
                                  "modifiers":[]
                                }] 
                }         ]
         }]

Однак це правило, схоже, не працює так, як мені хотілося б (воно просто відображає open_bracket на close_bracket).

Хтось має уявлення про те, що я тут роблю неправильно?


Ви зв’язалися з розробником програми, щоб попросити підтримки?
fsb

Відповіді:


4

Ваш зразок виявився дещо іншим, ніж інші правила, які я подивився. Ось версія, яка працює для мене:

файл: map_lctl_plus_open_bracket_to_close_bracket.json:

{
  "title": "Map Lft-Ctl+Open-Bracket to Close-Bracket",
  "rules": [
    {
      "manipulators": [
        {
          "description": "bracket rule",
          "type": "basic",
          "from": {
            "key_code": "open_bracket",
            "modifiers": {
              "mandatory": [
                "left_control"
              ],
              "optional": [
                "caps_lock"
              ]
            }
          },
          "to": [
            {
              "key_code": "close_bracket"
            }
          ]
        }
      ]
    }
  ]
}

Я не зміг визначити будь-який спосіб встановлення скрипту, окрім як через "Import more rules from the internet"опцію, але я зрозумів, як запустити імпортер на власні файли.

Припустимо, що ви скопіюєте файл у нього /tmp/map_lctl_plus_open_bracket_to_close_bracket.json, вставивши наступний URL у Safari, слід запустити імпортера:

karabiner://karabiner/assets/complex_modifications/import?url=file%3A%2F%2F%2Ftmp%2Fmap_lctl_plus_open_bracket_to_close_bracket.json

Я повністю перевірив як вміст файлу, так і URL імпорту в цій публікації, і для мене все добре працювало.

Удачі !


EDIT: Одразу після публікації цієї публікації, я думаю, я знайшов місце локального файлового магазину для ручного додавання правил.

https://github.com/pqrs-org/KE-complex_modifications#local-testing

Це github repo для правил на "Import more rules from the internet"сторінці. Він показує, як тестувати правила локально, перш ніж надсилати їх у веб-сховище.

TL; DR:

$ cp my_rule.json ~/.config/karabiner/assets/complex_modifications

Сайт також підтверджує karabiner://...техніку, про яку я згадував вище.


Мені набагато простіше редагувати файл JSON Карабінера безпосередньо за адресою: ~ / .config / karabiner / karabiner.json з TextEdit. Якщо ви зробите помилку, Karabiner Elements більше не показуватиме сценарії / модифікації у своєму вікні "Налаштування Karabiner-Elements". Ви можете "налагодити" свої зміни / доповнення, переглянувши це вікно, зберігаючи текст - та скасуйте кілька кроків ...
clemsam lang

Ви також можете скинути файл JSON у ~ / .config / karabiner / tools / complex_modifications, і він з’явиться у складних модифікаціях при натисканні кнопки додавання.
Даррель Холт

1

Ваш власний код просто залишає ключове слово "обов'язкове" в поєднанні з "left_control" - тому час Karabiner EACH вміст реєструвати лише "open_bracket", щоб перезавантажити ключ до "close_bracket".

EDIT,… набагато пізніше: вам також потрібно кодувати "type": "basic"кожен маніпулятор!

Примітка: є додаткове ключове слово "необов'язково", яке може бути за замовчуванням у відсутності "обов'язкового" ...

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