Вопрос: Переменные макрокоманды macOS в качестве модификаторов


Ситуация

Я использую раскладку клавиатуры, называемую 3l (три макета) который представляет собой слоистую раскладку клавиатуры. Вот основной уровень (поведение при нажатии клавиш модификатора):

normal 3l layout

Теперь, когда я держу ' на обычной клавиатуре (SYM в 3l), я в режиме «символов», а остальная клавиатура ведет себя по-разному. Вот изображение этого режима:

symbols layer of 3l

Эффективно этот ключ символов похож на специальный сдвиг который позволяет мне получить доступ к специальным символам.

Кроме того, у меня есть уровень номеров, который имеет тот же эффект, что и уровень символов, и активируется / , но вместо этого имеют элементы управления курсором и номерным значком:

enter image description here


Человек, которому я разветвил свой макет, уже получил макет, работающий в Linux и Windows (с использованием AutoHotKey). Я пытаюсь поместить его в macOS. До сих пор я создал 3l.keylayout файл (см. здесь) и имеют очень базовую функциональность.

Что работает

  1. Клавиши в нормальном режиме работают нормально.
  2. Если я нажимаю клавишу модификатора символа, первый символ, который я нажимаю, выводится как правильный символ. Например, если я нажимаю клавишу символа, а затем О, / выводится.
  3. То же самое касается клавиши cur / num для вывода номерной панели.

Что не работает

  1. Если я нажимаю и удерживаю клавишу модификатора символа и набираю несколько символов, только первый выводит символ. (То же самое относится и к ключу cur / num).
  2. Если я нажимаю и отпускаю одну из клавиш модификатора, а затем нажимаю другую клавишу, выводится символ / номер. Это не должно быть так. Когда я отпускаю ключ-модификатор, я хочу, чтобы он вернулся в обычный режим (так же, как и сдвиг ключ).
  3. Клавиши манипуляции курсором не работают надежно во всех приложениях, и у них также возникает проблема не допускать повторных ключей, когда они работают.

Мой вопрос

Есть ли способ получить функциональность, описанную выше в macOS (Sierra и позже)?

Заметка: Я также пытался переназначить ' а также / вправо и вправо, используя карабинные элементы, а затем попытался создать новую keymap в 3l.keylayout который активируется этими клавишами. Однако это не сработало. Он все испортил, и я попал в постоянную ситуацию с контролем / опцией.


1
2018-06-26 02:45


Источник




Ответы:


Я смог исправить эту проблему, используя Карабин-Elements«сложные модификации.

Вот моя полная karabiner.json файл.

Под profiles -> rules -> manipulators, Я добавил два манипулятора. Один для sym и один для cur,

Я скопировал sym манипулятор ниже:

{
    "conditions": [

            "name": "sym",
            "type": "variable_if",
            "value": 0
        },
        {
            "name": "cur",
            "type": "variable_if",
            "value": 0
        }
    ],
    "from": {
        "key_code": "quote",
        "modifiers": {
            "optional": [
                "any"
            ]
        }
    },
    "to": [
        {
            "set_variable": {
                "name": "sym",
                "value": 1
            }
        }
    ],
    "to_after_key_up": [
        {
            "set_variable": {
                "name": "sym",
                "value": 0
            }
        }
    ],
    "type": "basic"
}

Затем я прошел через каждую настройку ключа, то есть когда клавиша нажата без модификатора, sym модификатора и cur модификатор.

Это работает безупречно.


0
2017-08-15 20:57