Linux GUI Control
Control the Linux desktop GUI using xdotool, wmctrl, and dogtail. Use when you need to interact with non-browser applications, simulate mouse/keyboard input, manage windows, or ins…
dreamtraveler13
@dreamtraveler13
What This Skill Does
Controls the Linux desktop GUI by simulating mouse/keyboard input, managing windows, and inspecting UI hierarchies via xdotool, wmctrl, and dogtail. Works with non-browser applications on X11/GNOME, including accessibility tree extraction and screenshot capture.
Replaces manual GUI testing and repetitive desktop interactions by automating clicks, typing, window management, and UI inspection through scripts.
When to Use It
- Automate clicking buttons and typing text in a GNOME application
- Resize or move a specific window to a known position
- Extract the accessible UI tree of an Electron app to find button names
- Take a screenshot of a window for visual analysis
- Navigate a desktop app by pressing Tab and Return keys programmatically
- Activate a window by its title before sending keystrokes
Install
$ openclaw skills install @dreamtraveler13/guicountrolLinux GUI Control
This skill provides tools and procedures for automating interactions with the Linux desktop environment.
Quick Start
1. Identify Target Window
Use wmctrl to find the exact name of the window you want to control.
wmctrl -l
2. Inspect UI Hierarchy
For apps supporting accessibility (GNOME apps, Electron apps with --force-renderer-accessibility), use the inspection script to find button names without taking screenshots.
python3 scripts/inspect_ui.py "<app_name>"
3. Perform Actions
Use xdotool via the helper script for common actions.
# 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"
Workflows
Operating an App via Text UI
- List windows with
wmctrl -l. - Activate the target window.
- Run
scripts/inspect_ui.pyto get the list of buttons and inputs. - Use
xdotool key TabandReturnto navigate, orclickif coordinates are known. - If text-based inspection fails, fallback to taking a screenshot and using vision.
Forcing Accessibility in Electron Apps
Many modern apps (VS Code, Discord, Cider, Chrome) need a flag to expose their UI tree:
pkill <app>
nohup <app> --force-renderer-accessibility > /dev/null 2>&1 &
Tool Reference
- wmctrl: Window management (list, activate, move, resize).
- xdotool: Input simulation (click, type, key, mousemove).
- dogtail: UI tree extraction via AT-SPI (Accessibility bus).
- scrot: Lightweight screenshot tool.
Top skills in this category
Multi Search Engine
@gpyangyoujunMulti search engine integration with 16 engines (7 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and Wolfra...
Agent Browser
@matrixyHeadless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
Openai Whisper
@steipeteLocal speech-to-text with the Whisper CLI (no API key).
Tavily Search
@jacky1n7Search the public web through Tavily and return structured results with URLs and snippets. Use when an agent needs current information, source discovery, link lookup, news or finance search, or a fallback for unavailable built-in web search. Do not use for private or authenticated pages.
Baidu web search
@ide-reaSearch the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.