Files
SubMiner/backlog/tasks/task-131 - Make-default-overlay-fullscreen-and-AniSkip-end-jump-keybindings-easier-to-reach.md
sudacode e0f82d28f0 Improve startup dictionary sync UX and default playback keybindings
- Add default `f` fullscreen overlay binding and switch default AniSkip skip key to `Tab`
- Make character-dictionary auto-sync non-blocking at startup with tokenization gating for Yomitan mutations
- Add ordered startup OSD progress (checking/generating/updating/importing), refresh current subtitle on sync completion, and extend regression tests
2026-03-09 00:50:32 -07:00

3.3 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies
id title status assignee created_date updated_date labels dependencies
TASK-131 Make default overlay fullscreen and AniSkip end-jump keybindings easier to reach Done
codex
2026-03-09 00:00 2026-03-09 00:30
enhancement
overlay
mpv
aniskip

Description

Make two default keyboard actions easier to hit during playback: add f as the built-in overlay fullscreen toggle, and make AniSkip's default intro-end jump use Tab.

Acceptance Criteria

  • #1 Default overlay keybindings include KeyF mapped to mpv fullscreen toggle.
  • #2 Default AniSkip hint/button key defaults to Tab and the plugin registers that binding.
  • #3 Automated regression coverage exists for both default bindings.

Implementation Plan

  1. Add a failing TypeScript regression proving default overlay keybindings include fullscreen on KeyF.
  2. Add a failing Lua/plugin regression proving AniSkip defaults to Tab, updates the OSD hint text, and registers the expected keybinding.
  3. Patch the default keybinding/config values with minimal behavior changes and keep fallback binding behavior intentional.
  4. Run focused tests plus touched verification commands, then record results and a short changelog fragment.

Implementation Notes

Added KeyF -> ['cycle', 'fullscreen'] to the built-in overlay keybindings in src/config/definitions/shared.ts.

Changed the mpv plugin AniSkip default button key from y-k to TAB in both the runtime default options and the shipped plugin/subminer.conf. The AniSkip OSD hint now also falls back to TAB when no explicit key is configured.

Adjusted plugin/subminer/ui.lua fallback registration so the legacy y-k binding is only added for custom non-default AniSkip bindings, instead of always shadowing the new default.

Extended regression coverage:

  • src/config/definitions/domain-registry.test.ts now asserts the default fullscreen binding on KeyF.
  • scripts/test-plugin-start-gate.lua now isolates plugin runs correctly, records keybinding/observer registration, and asserts the default AniSkip keybinding/prompt behavior for TAB.

Verification:

  • bun test src/config/definitions/domain-registry.test.ts
  • bun run test:config:src
  • lua scripts/test-plugin-start-gate.lua
  • bun run changelog:lint
  • bun run typecheck

Known unrelated verification gap:

  • bun run test:plugin:src still fails in scripts/test-plugin-binary-windows.lua on this Linux host (windows env override should resolve .exe suffix), outside the keybinding changes in this task.

Final Summary

Default overlay playback now has an easier fullscreen toggle on f, and AniSkip's default intro-end jump now uses Tab. The mpv plugin hint text and registration logic were updated to match the new default, while keeping legacy y-k fallback behavior limited to custom non-default bindings.

Regression coverage was added for both defaults, and the plugin test harness now resets plugin bootstrap state between scenarios so keybinding assertions can run reliably.