commit 37b35e867fe060d5ed499f42f412a0add9d8f646 Author: Aditya Gupta Date: Sat May 30 21:43:27 2026 +0530 added basic window manipulation skill diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..856fcef --- /dev/null +++ b/SKILL.md @@ -0,0 +1,81 @@ +--- +name: hermes-hyprland +description: Controls Hyprland window management, workspaces, and window states using hyprctl dispatch commands. +version: 0.0.1 +author: sortedcord +metadata: + hermes: + tags: [system, wm, linux, automation] + requires_toolsets: [terminal] + requires_tools: [bash] +--- + +# Hyprland Window Manager Control Skill + +## When to Use + +Use this skill when the user requests desktop layout changes, window manipulation, workspace switching, or diagnostic checks on open windows in their Hyprland environment. + +## Procedure + +### 1. Workspace Navigation + +When asked to switch workspaces, move focus, or jump to a specific screen: + +- Run the workspace dispatcher command: + +```bash + hyprctl dispatch 'hl.dsp.focus({ workspace = "" })' +``` + +### 2. Window Information Gathering + +When asked to list windows, find a specific application, or gather metadata: + +Use hyprctl clients (or your active layout command) to fetch window lists. + +You can pipe to grep to isolate fields like class, title, or workspace. For example: + +``` + + hyprctl clients | grep -E "Window|workspace|class|title" +``` + +3. Moving and Manipulating Windows + When managing the active window's position, size, or target desktop: + +Directional Move: To push a window left, right, up, or down: + +``` + + hyprctl dispatch 'hl.dsp.window.move({ direction = "" })' +``` + +Move to Workspace: To send a window to another desktop: + +``` + hyprctl dispatch 'hl.dsp.window.move({ workspace = })' +``` + +Fullscreen: To toggle fullscreen on the current window: + +``` +hyprctl dispatch 'hl.dsp.window.fullscreen()' +``` + +### 4. Focus Window by Exact Address + +When a specific window address (e.g., 0x55e07fc3f930) is targeted: + +- Prefix the raw hexadecimal string with `address:0x` inside the window object. +- Execute the command: + + ```bash + hyprctl dispatch 'hl.dsp.focus({ window = "address:0x" })' + ``` + +### Pitfalls + +String Quoting: Ensure that nested single and double quotes inside hyprctl dispatch arguments do not break shell syntax execution. + +Dynamic Workspaces: If a workspace doesn't exist yet, Hyprland will typically create it on the fly. No need for explicit verification.