重映射修改器关键帧以同时按下多个修改器



我想重新映射一个修饰符键,在我的例子中是CAPS_LOCK,以便在它的一个键上同时发送多个修饰符。我指的不是特定的按键组合,比如<Ctrl>+C。虽然第二部分,将密钥映射到密钥组合,在多个问题中得到了回答,但我还没有找到第一个问题的解决方案。

  • https://unix.stackexchange.com/questions/11182/mapping-key-combination-with-xmodmap显示如何映射到特定的组合键
  • https://wiki.archlinux.org/index.php/xmodmap#Reassigning_modifiers_to_keys_on_your_keyboardXmodmap虽然可以为键盘创建多层,但不支持此功能
  • https://ubuntuforums.org/showthread.php?t=1764318我见过几次提到的自动键,但您无法映射到修改键
  • https://unix.stackexchange.com/questions/11182/mapping-key-combination-with-xmodmap所提出的xbindkeysxmacro的组合似乎也不支持这一点
  • https://www.semicomplete.com/projects/xdotool/Xdotool看起来很有前景,但文档非常缺乏

更具体地说:我想将Caps_lock重新映射到Meta+Control+Alt+Shift,这样我就有了一个修改键,它不会与系统应用程序定义的任何其他键组合冲突。这种组合是在Mac和Ubuntu机器之间共享PyCharm和Intellij密钥映射的结果,在Mac上,我使用Karabiner将caps锁映射到所谓的Hyper密钥,这是上述修饰符的组合。

我意识到这个线程很旧,但对于像我这样偶然发现的人来说,这就是我如何成功地将Apple Magic Keyboard上的caps锁定键映射到left command+left option+left shift:

{
"manipulators": [
{
"description": "Change caps_lock to command+option+shift.",
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_shift",
"modifiers": [
"left_command",
"left_alt"
]
}
],
"type": "basic"
}
]
}

[为了防止误解:你的意思是"立即在其OWN上">吗?你在ONE"]上键入了:">

顾名思义,caps_lockLOCKS其状态永久(在我的Windows键盘上(
意思是:按下caps_lock一次返回"eventType:key_down"(在K-E的EventViewer中(,只有按下第二次才会调用"eventType:key_up">
所以,如果你计划"发送"并完成它,恐怕caps_lock会"机械地"阻止这种情况。

(这一点得到了证实/说明:如果您在等待时间很长的情况下编码一个额外的"to_if_held_down"(2秒(,并短按caps_lock,则您的"held_down"命令将在2秒后执行。(

所以:如果你的Apple/内部键盘表现出差异:请在此处评论



我不确定我是否理解你问题的"意图"(见评论(,但我仍会尽力回答。

当前版本12.1需要手动编辑~/.config/karabiner/ karabiner.json文件以进行复杂的重映射(直到发布最终的"非元素"版本(
以下代码原则上对我来说非常有效,但其状态被切换key_down/up:

{ "description": "META-Cmd & Shift & Control & Option",
"manipulators": [
{ "from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [ "any" ] }
},
"to": [{
"key_code": "left_command",
"modifiers": [
"left_shift",
"left_control",
"left_option"  ]
}],
"type":  "basic"
}               ]},

我的Windows键盘每次按下都会切换,无论我在系统首选项键盘特殊键中的设置是什么。(我在某个地方读到微软驱动程序可能是原因。(

最新更新