介绍
# Linux GUI Control
此技能提供了用于自动化 Linux 桌面环境交互的工具和流程。
## 快速开始
### 1. 识别目标窗口 使用 `wmctrl` 查找您想要控制的窗口的确切名称。 ```bash wmctrl -l ```
### 2. 检查 UI 层级 对于支持辅助功能的应用(GNOME 应用、带有 `--force-renderer-accessibility` 的 Electron 应用),使用检查脚本无需截图即可找到按钮名称。 ```bash python3 scripts/inspect_ui.py "<app_name>" ```
### 3. 执行操作 通过辅助脚本使用 `xdotool` 执行常见操作。 ```bash # Activate window ./scripts/gui_action.sh activate "<window_name>"
# Click coordinates ./scripts/gui_action.sh click 500 500
# Type text ./scripts/gui_action.sh type "Hello World"
# Press a key ./scripts/gui_action.sh key "Return" ```
## 工作流
### 通过文本 UI 操作应用 1. 使用 `wmctrl -l` 列出窗口。 2. 激活目标窗口。 3. 运行 `scripts/inspect_ui.py` 获取按钮和输入列表。 4. 使用 `xdotool key Tab` 和 `Return` 进行导航,或者在已知坐标的情况下使用 `click`。 5. 如果基于文本的检查失败,则回退到截图并使用视觉识别。
### 在 Electron 应用中强制启用辅助功能 许多现代应用(VS Code、Discord、Cider、Chrome)需要一个标志来暴露其 UI 树: ```bash pkill <app> nohup <app> --force-renderer-accessibility > /dev/null 2>&1 & ```
## 工具参考
- **wmctrl**:窗口管理(列出、激活、移动、调整大小)。 - **xdotool**:输入模拟(点击、输入、按键、鼠标移动)。 - **dogtail**:通过 AT-SPI(辅助功能总线)提取 UI 树。 - **scrot**:轻量级截图工具。