enBoxer/examples/games.yaml
en 5aabf0d36f Round 5 batch A (Grok review): games.yaml seed, pending_ipc fix, doc residue, dead passthrough_id.
Grok round 5 found:

1. examples/games.yaml was actually src/main.rs (227 lines of clap
   CLI; my round-4 Item 4 commit message was wrong). Replaced with
   a real seed YAML. The example shows the env format as
   [[KEY, VALUE], ...] (a list of pairs), NOT KEY=*** (serde_yaml
   will not parse KEY=*** into Vec<(String, String)>).

3. App.pending_ipc was written by Free-mode buttons but never
   drained by the main loop. Replaced with direct self.ipc(...)
   calls. Hoisted the closure borrow by collecting verbs into a
   Vec<(&str, u32)> and draining after the slots borrow is
   released. Dropped the pending_ipc field + App literal init.

8. Doc residue: passthrough / window_match claims still in
   README.md, CHANGELOG.md, docs/DESIGN.md. Updated README.md to
   point at round-4 Item 6 + Item 3. Added a round-4 section at
   the top of CHANGELOG.md. Dropped the duplicate passthrough
   bullet in docs/DESIGN.md.

10. Dead passthrough_id helper in hotkey.rs (unused after the
    passthrough feature dropped in round-4 Item 6). Dropped the
    function + its doc comment.

cargo test 103/103; clippy clean.
2026-09-17 07:40:24 +02:00

31 lines
1.1 KiB
YAML

# enBoxer game-launcher list (Item 4).
#
# The daemon reads this file (default path: ~/.config/enboxer/games.yaml)
# and exposes the entries over IPC. The GUI's Session page renders the
# names as a dropdown; picking one fires `enboxer ipc launch-game NAME`
# which spawns the entry and records the child PID into
# Session.spawned_pids. refresh_slots then matches the resulting window
# via the process-tree walk (Item 3).
#
# Each entry is a single game:
# name: display name in the dropdown
# exe: absolute path to the binary
# args: list of args (no pre-quoting; use a list, not a string)
# env: list of [KEY, VALUE] pairs (NOT KEY=***; serde_yaml needs a list)
# cwd: optional working directory
# note: optional human-readable note shown in the dropdown
#
# Example (uncomment + edit to fit your system):
# - name: World of Warcraft (Retail)
# exe: /usr/bin/wine
# args:
# - /path/to/drive_c/Program Files/World of Warcraft/_retail_/Wow.exe
# env:
# - - WINEPREFIX
# - /home/en/.wine
# cwd: /path/to/drive_c/Program Files/World of Warcraft/_retail_
# note: retail WoW via Wine
games: []