macOS重映射键作为修饰符


1

情况

我使用称为3l(三个布局)的键盘布局,它是分层的键盘布局。这是主层(没有按下修饰键时的行为):

常规3l布局

现在,当我按住'普通键盘(sym在3l中)时,处于“符号”模式,键盘的其余部分表现不同。这是此模式的图片:

3l符号层

实际上,此符号键就像一个特殊键Shift,允许我访问特殊字符。

此外,我还有一个数字层,其作用与符号层相同,并通过/键激活,但具有光标和数字键盘控件:

在此处输入图片说明


我从布局中分叉的人已经使布局可以在Linux和Windows中工作(使用AutoHotKey)。我也在尝试将其移植到macOS。到目前为止,我已经创建了一个3l.keylayout文件(在此处查看),并且具有非常基本的功能。

在做什么

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

什么不起作用

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

我的问题

有什么办法可以让我获得上面在macOS(Sierra和更高版本)中描述的功能?

:我也曾尝试重新映射',并/以正确的选择权和控制用铁锁的元素,然后试图创建一个新keymap3l.keylayout由这些键激活。但是,这没有用。它把一切搞砸了,我陷入了永久控制/选择键的局面。

Answers:


0

我能够使用Karabiner-Elements的复杂修改来解决此问题。

这是我的完整karabiner.json文件。

在下profiles -> rules -> manipulators,我添加了两个操纵器。一为symcur

我复制了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修饰符。

这可以完美地工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.