fix(overlay): Linux X11/XWayland stacking, stale pause state, multi-copy selector (#101)

This commit is contained in:
2026-05-31 20:59:18 -07:00
committed by GitHub
parent b46b8dfa41
commit e1ea464bc9
103 changed files with 6314 additions and 353 deletions
+4
View File
@@ -0,0 +1,4 @@
type: fixed
area: overlay
- Fixed manual visible-overlay startup from mpv so SubMiner attaches to playback, keeps the Linux/X11 overlay window shape synced with mpv bounds, and primes the current primary/secondary subtitles before showing the overlay.
+4
View File
@@ -0,0 +1,4 @@
type: fixed
area: overlay
- Fixed mpv-plugin multi-line copy and mine shortcuts so they open the overlay digit selector instead of dispatching a missing-count action that immediately selects one line.
@@ -0,0 +1,4 @@
type: fixed
area: overlay
- Fixed subtitle hover auto-pause using stale pause state, which could briefly advance a paused mpv video on Linux/X11 or XWayland.
+11
View File
@@ -0,0 +1,11 @@
type: fixed
area: overlay
- Fixed the overlay intermittently dropping behind mpv on KDE Plasma and other non-Hyprland/Sway Wayland sessions, where it lost pause-on-hover and Yomitan lookups.
- SubMiner now forces XWayland for itself (`--ozone-platform-hint=x11`) and for every mpv it launches (Jellyfin/YouTube/launcher), binds the windowed overlay to tracked mpv with `WM_TRANSIENT_FOR`, and swaps to a focusable-false X11 override-redirect overlay while tracked mpv is fullscreen.
- Made Linux overlay stacking focus-sensitive: managed while mpv is windowed, override-redirect only while mpv is fullscreen, and released/hidden when another X11/XWayland app takes focus (detected via `_NET_ACTIVE_WINDOW`/`xprop`, falling back to `xdotool getactivewindow`) so normal foreground windows can cover it. The overlay is shown inactive so hovering subtitles does not reveal Plasma panels/docks over fullscreen mpv.
- Restored subtitle hover, pause-on-hover, and Yomitan lookups under X11/XWayland by tracking the cursor in the main process (Electron cannot forward mouse-move through a click-through window on X11), keeping the primary and secondary subtitle bars and the open sidebar as separate interactive regions while the space between them passes through to mpv — and reporting hit regions as soon as the first subtitle is measured so it is clickable immediately. Matches Windows/macOS.
- Kept normal foreground windows above the overlay while they are open, including SubMiner Settings, Yomitan Settings, AniList setup, Jellyfin setup, first-run setup, and unrelated apps, so hovering over subtitles or the sidebar under those windows no longer restacks the overlay in front.
- Right-clicking non-interactive overlay subtitles now raises tracked mpv together with the overlay, then keeps the overlay above mpv before toggling pause/play.
- Kept overlay bounds reconciled across fullscreen/windowed, minimize/restore, and modal transitions so the subtitle sidebar and secondary subtitles stay inside the mpv window, and ensured only one visible overlay window exists at a time.
- Avoided startup overlay glitches: the first reveal waits until the renderer has painted, the overlay stays hidden until the X11 tracker reports real mpv geometry, and the fullscreen restack hide/show is skipped when leaving fullscreen — preventing black flashes and a display-sized overlay that blocks the desktop before warmups finish.
+4
View File
@@ -0,0 +1,4 @@
type: fixed
area: playback
- Reused the already-warm SubMiner overlay after mpv advances to the next playlist item, avoiding a second pause-until-ready tokenization gate and preserving visible subtitles across the transition, including overlays shown manually while auto-start visibility is disabled.
+1
View File
@@ -4,3 +4,4 @@ area: troubleshooting
- Updated the Hyprland overlay troubleshooting with current Lua (`hl.window_rule`) config and the legacy `hyprland.conf` window rules, and noted SubMiner attempts automatic placement via `hyprctl`.
- Added a Character Dictionary troubleshooting section covering name matching, inline portraits, and external-profile mode (no AniList auth required).
- Added a "See Also" index linking each feature's own troubleshooting page.
- Added troubleshooting for KDE/Wayland and other non-Hyprland/Sway Wayland sessions, including how to force XWayland when launching mpv manually.