enBoxer/docs/NOTES.md

38 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Notes (WoW + Hyprland)
## Interact with Target
The game bind does what a right-click on the current target would do: attack, loot, gossip. With Click to Move (`autoInteract`), the character faces and walks to the target. They stop if the interact happens. They do not stop if they miss. Spamming the bind makes them circle. That is the game, not a timer in enBoxer.
Walking is the client. `walk_delay_ms` only holds Click to Move on long enough to arrive, then turns it off so a stray click does not send people running.
Styles:
| Style | Click to Move | Interact |
| --- | --- | --- |
| standard | on, then off after the delay | once |
| auto | left on | once |
| hold | on while the hotkey is down | on press; CTM off on release |
Macros: `docs/MACROS.md`.
## Hyprland 0.56
Lua dispatchers. Example:
```lua
hl.dispatch(hl.dsp.send_shortcut({ window = "address:0x…", mods = "ALT", key = "g" }))
hl.dispatch(hl.dsp.send_key_state({ window = "address:0x…", mods = "", key = "e", state = "down" }))
hl.bind("ALT + G", function() end, { description = "enboxer:loot" })
```
Binds exist only while a managed game window or an `enboxer-vfx` overlay is focused.
enBoxer does not start XWayland. Hyprland already runs it. Wine WoW is almost always an **XWayland** window (`xwayland: true` in `hyprctl clients`). Keys go in through XWayland as normal X key events — the same path as a keyboard from the games point of view, not a memory inject.
If a window is **native Wayland** (including `winewayland`), unfocused inject often does nothing. For those, enBoxer focuses the window, sends the key, then restores focus.
The Session page lists each window as `XWayland/Wine` or `Wayland`.
Visible-pixel capture: `grim` (default). Overlay: `mpv --wayland-app-id=enboxer-vfx` plus JSON IPC to reload frames. Covered sources use `zwlr_export_dmabuf_unstable_v1` (Hyprland implements the wlroots protocol); gated behind `ENBOXER_ENABLE_TOPLEVEL=1`. See [docs/VIDEO.md](VIDEO.md).