情况

情况

情况

我使用的键盘布局称为3l(三版式)这是一个分层的键盘布局。这是主层(未按下任何修饰键时的行为):

正常 3l 布局

现在,当我按住'普通键盘(sym3l 版)上的 时,我处于“符号”模式,键盘的其余部分的行为有所不同。以下是此模式的图片:

3l 符号层

实际上,这个符号键就像一个特殊的键Shift,可以让我访问特殊字符。

此外,我有一个数字层,它具有与符号层相同的效果并由键激活/,但具有光标和数字键盘控件:

在此处输入图片描述


我从他那里 fork 了我的布局,他已经让这个布局在 Linux 和 Windows 中工作了(使用 AutoHotKey)。我也想把它移植到 macOS 上。到目前为止,我已经创建了一个3l.keylayout文件 (点击这里) 并且具有非常基本的功能。

正在发挥作用

  1. 正常模式下的按键工作正常。
  2. 如果我按下符号修饰键,则我按下的第一个字符将输出为正确的符号。例如,如果我按下符号键然后O/则输出。
  3. 数字键盘输出的 cur/num 键也是如此。

什么不起作用

  1. 如果我按住符号修饰键并输入多个字符,则只有第一个字符会实际输出符号。(cur/num 键也是如此。)
  2. 如果我按下并释放其中一个修饰键,然后按下另一个键,则会输出符号/数字。情况不应该如此。当我释放修饰键时,我希望它返回正常模式(就像键一样Shift)。
  3. 光标操作键并非在所有应用程序中都能可靠地工作,并且它们还存在不允许重复按键的问题。

我的问题

有没有什么方法可以帮助我获得 macOS(Sierra 及更高版本)中上面描述的功能?

笔记:我还尝试使用 Karabiner Elements 将'和重新映射/到右 Option 和右 Control,然后尝试创建一个由这些键激活的新keymap3l.keylayout。但是,这没有奏效。它搞砸了一切,我陷入了永久的控制/选项键情况。

答案1

我能够使用以下方法解决这个问题登山扣元素'复杂的修改。

这是我的完整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修饰键。

这完美地运行。

相关内容