Skip to content

[code-review] desktop_control Linux modifier_click: normalizeModifiers 归一化为 cmd 后无平台反向映射 — super/win 组合在 xdotool 上全部失败 #180

Description

@topcheer

文件与行号

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 全部失败)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions