动作#
选中手势,在“执行”中选择动作,共八类。多数任务用简单动作即可;需要条件判断或连续完成多步时,再用 Lua。
发送按键#
输入按键序列,或点击“录制”,按下快捷键后点“完成”。例如 Windows 复制是 ^c,Mac 复制是 #c。“语法说明”可打开语法指南。
“先激活鼠标下的窗口再发送”会先激活手势目标,否则按键由当前接收键盘输入的程序接收。目标也受“偏好设置 → 手势作用于”影响。编辑器没有普通文本模式开关;文本优先模式通过 Lua 使用。
窗口操作#
选择一项,作用于手势目标:
| 操作 | 行为 |
|---|---|
| 最小化 | 最小化窗口。 |
| 最大化 / 还原 | 切换最大化与还原大小。 |
| 关闭 | 请求窗口关闭。 |
| 置顶 / 取消置顶 | Windows 切换置顶;Mac 尚不支持,编辑器中不可选。 |
Mac 窗口操作依赖辅助功能。“最大化 / 还原”点击程序的缩放按钮,窗口大小遵循该程序行为,不请求原生全屏,已最小化窗口会跳过。不同程序开放的窗口操作可能不同。
打开程序#
Windows 的“程序”填写可执行文件,可点“浏览…”选择。Mac 可填写 com.apple.Safari 这样的 bundle id、.app 路径或可执行文件路径。“参数”可选。Mac 参数按引号规则拆分,命令行程序请用完整路径。
“已经在运行时”可选“切换到它”或“再打开一个”。Windows 还有“以管理员身份运行”。Mac 不支持提权或按窗口筛选的启动选项。当前动作编辑器没有窗口类名、标题或正则表达式字段。
打开网址#
填写“网址”,按需填写“浏览器”;留空使用默认浏览器。Windows 可指定浏览器可执行文件,Mac 可指定浏览器 bundle id 或应用路径。“插入”按钮可插入选中文字、剪贴板、程序名、进程号或窗口标题变量。
选中文字后搜索网页,可将网址设为:
https://www.google.com/search?q=%MS_SELECTED_TEXT%
在程序中选中文字,再画手势。选中文字会经过 URL 编码。如果选区本身以 http://、https:// 或 www. 开头,会直接打开该地址,其中 www. 会自动补 https://。
运行命令#
在文本框填写命令,“插入”可加入变量。Windows 使用隐藏的 cmd.exe /C,Mac 使用 /bin/zsh -c。这是 Shell 语法,参数需要正确加引号。变量替换不会做 Shell 转义,不要把不可信的选中文字直接拼入命令。
例如 Windows 打开任务管理器:
taskmgr.exe
Mac 可以改用“打开程序”,填写 com.apple.ActivityMonitor。
媒体与系统#
编辑器提供“播放 / 暂停”、“下一曲”、“上一曲”、“音量 +”、“音量 −”、“静音”、“亮度 +”和“亮度 −”。
Windows 亮度每次增减 10 个百分点,使用 DDC/CI,失败时回退 WMI。Mac 亮度动作发送面向内置屏幕的系统亮度键,不支持外接显示器 DDC/CI。Mac 可以使用这些系统动作,但 Lua 亮度函数尚不支持。详见屏幕边角。
弹出菜单#
点击“+ 添加菜单项”,输入“菜单项名称”,再为每项选择动作。使用“上移”、“下移”和“删除菜单项”整理顺序。菜单显示在手势位置。编辑器不提供列数字段,菜单项内也不再提供菜单类型。Mac 支持单列,多列配置会被提示为不支持。
Lua 脚本#
粘贴定义了 ms_action 的完整脚本。“Lua 帮助”打开 Lua 入门。文本框中按 Tab 会插入两个空格。更多内容见 API 参考和实用示例。
变量#
下列占位符用于“打开网址”的“网址”、“运行命令”,以及“打开程序”的“程序”和“参数”。发送按键字符串、Lua 源码、菜单名称和“浏览器”字段不会展开这些变量。
| 变量 | 内容 |
|---|---|
%MS_SELECTED_TEXT% | 动作需要时采集的选中文字,无法取得时为空。 |
%MS_CLIPBOARD_TEXT% | 按需读取的当前剪贴板文字。 |
%MS_PID% | 目标进程号。 |
%MS_EXE% | 目标程序身份:Windows 路径;Mac bundle id 或可执行文件路径。 |
%MS_APP_NAME% | 程序身份的文件名部分,Mac 上可能就是 bundle id。 |
%MS_WID% | 十进制文本形式的平台窗口标识。 |
%MS_WIN_NAME% | 目标窗口标题,Mac 按需通过辅助功能读取。 |
%MS_MOUSE_X%、%MS_MOUSE_Y% | 手势开始时的屏幕坐标。 |
%MS_MOUSE_Y_FLIP% | 虚拟屏幕底部坐标减去手势开始时的 Y 坐标。 |
%MS_TARGET_MODE% | 根据目标设置取 UnderCursor 或 Focused。 |
没有目标时部分变量可能不存在,未定义的占位符原样保留。网址模板只有选中文字会自动 URL 编码,其他变量直接插入。Lua 请使用入口参数和 ms 函数,不使用占位符替换。