3.6 KiB
3.6 KiB
Changelog
0.1.0 — unreleased
- Rust CLI daemon:
enboxer run|press|status|macros|doctor - YAML profile: maps, targets (
current/others/all/ groups),game_binds - Configurable
passthrough(empty by default; example profile uses ESDF) - Hyprland 0.56 Lua binds installed only while a managed game or VFX overlay is focused
- Key delivery via
hl.dsp.send_shortcut/send_key_state(no game injection) - Stock loot map: assist → CTM on → Interact with Target once → delay → CTM off
- Video FX:
grimregion capture, overlay viewer, hover pass-through to source slot - Unit tests for hotkey parse, passthrough, targets, loot sequence, example profile load
- Bind IPC line no longer duplicated
ipc(Hyprland hotkeys actually reach the daemon) - Video FX overlay is
mpv(--wayland-app-id=enboxer-vfx) with JSON reload;grimcapture enboxer runclears binds on ctrl-c; emptywindow_matchmatches nothing- Live check:
send_shortcutto an unfocused XWayland window; overlay window classenboxer-vfx - Per-character
assist_key/follow_key; map steps usingbind: assist|followresolve to the current main's keys - Layout wizard
borderlesstoggle installs a Hyprlandwindow_rule(rounding 0, border_size 0) onrun - Layout page: drag canvas over the monitor rectangle; tile moves clamp to the monitor bounds
- T8: clipboard IPC verb
clipboardreadswl-paste/xclipand delivers Ctrl+V to every non-leader captured slot; GUI button on Session page; routing plan unit-tested - T11: named-profiles list in File menu (
Load named…submenu) with Refresh; listing helper unit-tested against a tempdir - T12: unit test for
type_to_othersrouting (others_clientshelper, excludes leader, per-char × per-slot plan) and forapply_layoutshort-circuiting whenENBOXER_ALLOW_LAYOUTis unset - T9 (real):
src/wayland_layer.rs—zwlr_layer_shell_v1Wayland client with shm-backed buffers, 3×5 bitmap digit glyphs,wl_pointerclick routing; per-slotOverlayHandleviaOverlayHubinsession::run. Live path gated behindENBOXER_ENABLE_OVERLAY=1;cargo testdoes not connect to Wayland - T10 (real):
src/toplevel_export.rs—zwlr_export_dmabuf_unstable_v1Wayland client; per-frame format negotiation (ARGB8888 / XRGB8888), synthetic-PNG fallback for tests. Live path gated behindENBOXER_ENABLE_TOPLEVEL=1;gbm_bo_mapis documented as the upgrade step for actual pixel reads - T13: mirror-mode mouse click broadcast —
hypr::deliver_clickposts compositor pointer events to every non-leader captured slot; press-and-hold guard deferred - T14: round-robin bind target (
round_robin/rr) — rotates through ALL slots including the leader, in slot-number order, wrapping; per-map cursor - T15: Teams + Lutris launcher.
src/team.rs(Team, list_teams, teams_dir, current_team),src/lutris.rs(LutrisGame parser,load_allwith bad-YAML tolerance),src/launcher.rs(SpawnPlan merging Lutris config with per-character wine-prefix override). GUI: Teams menu (New / Switch / Refresh / Show / Delete) and Launch menu (per-character + Launch all); Lutris picker visible only in the New-team flow. Direct Wine spawn — never callslutrisCLI game_binds.interactexample uses Alt+J (Master's request). Interact with Target is a built-in WoW keybind; enBoxer just routes the keystroke.docs/MACROS.mdrewritten for current retail (The War Within era, 2026): rename "CTM" → Auto-Interact (the CVar), document Alt+J for Interact with Target, document per-character Assist / Follow macro override, add optional Pet Attack / Target Last Target keybinds.