窗口命名与命令作用域
相同手势可以在不同软件中执行不同动作。最容易理解的方式是先指定进程名,再根据需要为多个软件建立分组。
只在某个程序中使用
假设记录显示目标进程名为 notepad:
ini
[notepad_r+r]
type=f
code='''
SendText("你好")
'''保存、重启后,在该窗口执行实际的 _r+r 手势。这里的进程名来自记录,不能简单根据程序显示名称猜测。
last_r+r 是兜底命令。较具体的窗口规则通常先于它匹配,因此同一个通用动作在某个软件中没有生效,可能是被软件专属命令接管。
给多个软件同一个名字
在 conf\default\naming.toml 的 [exe] 段加入或合并:
ini
[exe]
notepad=["edit4"]
notepad3=["edit4"]edit4 中末尾的 4 指命名层级,实际命令前缀为 edit:
ini
[edit_r+r]
type=f
code='''
SendText("编辑器共用动作")
'''不要在同一文件重复新建 [exe] 段来拼接配置,直接编辑已有段。数组使用 JSON 写法,字符串用双引号。
可以按什么命名
常见段为 [exe]、[class]、[exe+class]、[title]、[path]。多个字段组合时,键的 + 是该命名文件的语法,实际匹配前缀由程序形成。
命名还支持按标题等信息做条件分组:
ini
[exe]
notepad=[["work2","title","@","工作"]]@ 表示包含;< 表示开头;> 表示结尾;~ 表示正则。work2 生成名为 work 的第二层候选。
层级的实用理解
普通路径中,up、第一层命名先检查,随后是复合窗口信息、第二层命名和 mid,再检查标题、程序路径、进程名、第三层、类名、tail、第四层,最后到 last。
命名层级 0 是特殊路径,会改变普通兜底候选的使用,不建议第一次配置就使用。多个候选都能命中时,也不要依赖配置行顺序代替层级。
排查时先找最终命令名,再看窗口命名候选。比反复改动作代码更容易定位问题。