L_hiil
(L hiil)
1
一款开源的键盘重映射工具,由于是通过驱动拦截来修改键盘事件,所以需要安装目录下的 install-interception\install-interception.exe
驱动(闭源的,但开发者嗅探过未发现异常)。
最近又找到一个 ctrl2cap 驱动源码,就是微软官网那个。有兴趣可以折腾下,感觉好复杂,玩不过来。
下载
特点
这里抄下官方的,翻译有点生硬
- 哪里都可以生效。类似可编程键盘
- 可以重映射任何键盘发出的键位(Fn、亮度这类不行)
- 几乎一切都可通过配置文件设置
- 9 个独立配置,通过
esc
+ <1-9>
即时切换,无需重启
- 支持模块化,在配置文件中添加
INCLUDE moduleXY
- 修饰符重映射
- 如:
F
和 J
映射为 Shift
, CapsLock
映射为 MOD9
, LCtrl
映射为 Return
, Alt
>Shift
>Ctrl
>Alt
间互换
- 只要发送了
scancode
,你就可以重映射
- 强大的修饰符组合
- 可以在一行规则内使用 15 个修饰符来作组合键
- 组合支持修饰符状态判断,如:按下、未按下、抬起、正常按下抬起
- 简单,快捷的键位映射
- Dead key 系统让指定键发送特殊字符,如:
äççéñtèd
- Sequences (宏)可在两键间添加延迟
- 实时录制按键记录,回放
- 只在内存中存储、混淆的秘密宏
- 快!不臃肿的 c/c++ 代码。一个 exe 一个 dll 一个 ini。只读取自己文件夹内的东西,不写入任何东西。
- 可以跟 autohotkey 联动
为什么不用 XX ?
官方回答
- autohotkey 是不错,但它运行在用户空间,且不论何时当软件从更底层获取键时总会失效,如:虚拟机、RDP 全屏时、安全盒中、游戏。还有它使用带有多个修饰符的组合时会有限制。
- Windows Keyboard Layout Creator 是更加可靠,但只支持基本的键位重映射,而且每次修改都要重启才生效。
- Karabiner 只限苹果
- Tmk / Qmk with Hasu’s Usb-to-Usb stick 很酷,但不支持笔记本键盘
缺点
使用
配置文件:capsicain.ini,文件内自带大量配置根据需要自行修改即可。
配置样式有好几种
一
二
三
这是我个人的
win
caps
互换,按下 caps(物理键 win)
时切换大小写状态和键盘布局
配置时用得上的快捷键
-
esc + r
重载配置
-
esc + d
debug 模式
-
esc + t
隐藏到托盘或显示
windows 11 22h2 开机自启设置
win + r
输入 shell:startup
回车,在目录中新建快捷图标,右键修改属性中的
- 目标为
conhost.exe 目录\capsicain.exe
- 起始位置为所在目录
7 个赞
xml123
(xml123)
2
看了下相当于是把qmk固件类似的功能从硬件做到了驱动层?功能很强大,值得研究一下。
另外搜了一下,这篇好像是全网第一篇介绍这个项目的中文文章,感谢楼主分享。
需要提醒一下,项目本身虽然是开源的,但引用了另一个商业项目的闭源驱动用于拦截键盘事件(按作者本人的说法,该项目已经存在很久了,而且经过嗅探也没发现问题)。和另一个帖子里用到的驱动其实是同一个:
1 个赞
amol
(a)
4
按键映射也推荐 kanata,也是驱动拦截,不过作者把普通版本、驱动拦截版本、可调用外部 cmd 版本全分开了,下载的时候注意一下
1 个赞
LinkLi
(LinkLi)
5
我的电脑有三个键盘(笔记本自身键盘,外接键盘和一个20多按键的小键盘),怎么让配置可以只只驱动小键盘的??
L_hiil
(L hiil)
6
L_hiil
(L hiil)
7
再次更新:需求不高的我,根据 Interception/samples/caps2esc at master · oblitum/Interception · GitHub 这个模板,打包了个 caps2win,没任何图标,舒服
更新:重新下个 dll 就好了,发现官方没有提供隐藏界面的功能,打扰了
这个怎么用啊 ,执行 kanata_wintercept.exe --cfg kanata.kbd
没有任何反馈,也没有生效,系统是 windows 11 22h2
配置如下:
(defcfg)
(defsrc caps lmet)
(deflayer test lmet caps)
文件都有
LinkLi
(LinkLi)
10
这个我之前也折腾过,能识别不同的设备,但并不是能够从底层改按键映射,在应用软件内部修改快捷键识别的还是原本的那个键值。
L_hiil
(L hiil)
11
什么软件?我现在用的自己打包的,识别是改了之后的。最近又找到一个 ctrl2cap 驱动源码,就是微软官网那个。有兴趣可以折腾下,感觉好复杂
amol
(a)
12
刚看到。
隐藏的话可以用rbtray,或者CommandTrayHost,后者比较复杂,不过可以同时管理多个终端任务,还可以分配快捷键快速显示隐藏。
kanata我用着还是很舒服的,功能比较多,配置也比较友好,还跨平台。
请教一下, 您是在什么平台使用的 kanata, 我目前使用的 windows , 按照要求下载这两个文件
双击 kanata.exe 后出现一个控制窗口 (下图所示), 这个窗口也不会消失, 也没有实现配置的功能
amol
(a)
14
windows的,这个程序没有ui,命令行只是用来查看输出的,直接用文本编辑器或者 vscode 更改 kananta.kbd ,里面写的是配置。
例如这个最小配置:
(defcfg)
(defsrc a b c)
(deflayer start 1 2 3)
把 abc 映射到 123。
def cfg 是定义配置,里面写一些设置,可以留空但是要有这个条目。
def src 是定义源按键,在这里写需要拦截的按键。
de flayer 是定义按键层,除了start是名字,后面的项要和scr的项数量一致。层可以有多个,第一个层会被当作默认层启用。
还有很多功能可以看文档
文档,按键名字从82行开始。
看了半天文档用上了,比ahk配置稍微麻烦一点,分享成果
GLOBAL StartInTraybar
[CONFIG_1]
REWIRE Caps MOD9 Caps
COMBO W [^^^& .... ....] > key(UP)
COMBO A [^^^& .... ....] > key(LEFT)
COMBO S [^^^& .... ....] > key(DOWN)
COMBO D [^^^& .... ....] > key(RIGHT)
COMBO Q [^^^& .... ....] > key(HOME)
COMBO E [^^^& .... ....] > key(END)
LinkLi
(LinkLi)
17
说是可以定义某一键盘生效的,但是实际测试只有第一个触发的键盘有效
我也发现了,对我问题不大~就一个键盘+一个被识别成键盘的鼠标
Huhu
19
这个怎么实现的?我现在的问题是它不支持鼠标,但是我鼠标也有映射需求
Landius
(Landius)
20
才发现这个 CommandTrayHost,之前为了隐藏 aria2 窗口自己写了个小工具。看来是重复造轮子了