文件与行号
internal/tool/desktop_control_linux.go:39-48(modifier_click)配合 internal/tool/desktop_control.go:105-140(normalizeModifiers)
问题描述
normalizeModifiers 把 super/win/meta/cmd 全部归一化为 "cmd"(macOS 术语)。Linux 分支直接 strings.Join(mods, "+") + "+1" 生成 clickSpec 传给 xdotool click,无反向映射。xdotool 接受的 modifier 是 ctrl/alt/shift/meta/super,不认识 cmd。
触发场景
Linux 上 modifier_click {text:"super"}(合法输入,schema 文档明确写 super/win 可用)→ 归一化为 cmd → xdotool click cmd+1 → 无效 modifier 报错,点击失败。
预期行为 vs 实际行为
- 预期:Linux 上 super 映射为 xdotool 认识的 super/meta
- 实际:合法输入被转换成非法输出
修复建议
Linux 分支在拼 clickSpec 前把 cmd 映射回 super(或 meta)。
严重程度
Medium(Linux 上带 super/win 的 modifier_click 全部失败)
文件与行号
internal/tool/desktop_control_linux.go:39-48(modifier_click)配合internal/tool/desktop_control.go:105-140(normalizeModifiers)问题描述
normalizeModifiers 把
super/win/meta/cmd全部归一化为"cmd"(macOS 术语)。Linux 分支直接strings.Join(mods, "+") + "+1"生成 clickSpec 传给xdotool click,无反向映射。xdotool 接受的 modifier 是 ctrl/alt/shift/meta/super,不认识cmd。触发场景
Linux 上
modifier_click {text:"super"}(合法输入,schema 文档明确写 super/win 可用)→ 归一化为 cmd →xdotool click cmd+1→ 无效 modifier 报错,点击失败。预期行为 vs 实际行为
修复建议
Linux 分支在拼 clickSpec 前把 cmd 映射回 super(或 meta)。
严重程度
Medium(Linux 上带 super/win 的 modifier_click 全部失败)