# enBoxer Mapped-key routing and live window crops for World of Warcraft on **Arch Linux + Hyprland**. Rust. You list which hotkeys go where. Everything you do not list stays on the focused primary. A `passthrough` list can leave movement keys alone (the example uses ESDF). Alt-tab off the team and the desktop is normal. Nothing is loaded into the game. Hyprland delivers keys with `hl.dsp.send_shortcut`. You bind macros in WoW yourself. | Doc | What | | --- | --- | | [PLAN.md](PLAN.md) | Product plan and how Grok / OpenCode split work | | [DESCRIPTION.md](DESCRIPTION.md) | One-page description | | [AGENT.md](AGENT.md) | Designer / PM / worker contract | | [TASKS.md](TASKS.md) | OpenCode tickets | | [CHANGELOG.md](CHANGELOG.md) | What landed | | [docs/DESIGN.md](docs/DESIGN.md) | Routing model | | [docs/NOTES.md](docs/NOTES.md) | WoW interact / Hyprland capture | | [docs/MACROS.md](docs/MACROS.md) | In-game macros | ## Routing - A **map** is a hotkey plus steps (send a key, send a named `game_bind`, wait) plus a **target**. - Unmapped keys are not intercepted. - `passthrough` keys are never intercepted, even if a map lists them. Default is empty. - Optional **repeater** mode also clones an explicit extra key list to the other slots. ## Interact / loot WoW’s **Interact with Target** bind (plus Click to Move) walks an alt to the target and loots or talks. One press. Spamming it makes characters circle. The stock `loot` map: assist others → CTM on → interact once → wait `walk_delay_ms` → CTM off. See [docs/MACROS.md](docs/MACROS.md). ## Video FX A region of another client is captured (`grim`) and shown on the primary. While the cursor is over that viewer, keys and clicks go to the **source** slot only. Covered sources need compositor toplevel export (not in this phase); keep the source visible for a live picture. Optional Hyprland snippet: [examples/hyprland.lua](examples/hyprland.lua). ## Build ```bash cd ~/git/enBoxer cargo build --release install -Dm755 target/release/enboxer ~/.local/bin/enboxer ``` Needs Hyprland 0.56 (Lua dispatchers), `hyprctl`, `grim`. A viewer (`imv` or `feh`) for Video FX overlays. ## Use ```bash mkdir -p ~/.config/enboxer cp examples/profile.yaml ~/.config/enboxer/profile.yaml # edit window_match, passthrough, maps, character names enboxer doctor -c ~/.config/enboxer/profile.yaml enboxer macros -c ~/.config/enboxer/profile.yaml enboxer run -c ~/.config/enboxer/profile.yaml ``` `enboxer press Alt+G` fires a map without a Hyprland bind (daemon must be running). ## License GPL-3.0-or-later.