From 54e90754ef84a8cfb09463dbb1fb4c881fb2b2c6 Mon Sep 17 00:00:00 2001 From: sudacode Date: Sun, 31 May 2026 22:40:40 -0700 Subject: [PATCH] chore: release 0.15.1 --- CHANGELOG.md | 16 +++++++ changes/hyprland-lua-dispatch.md | 4 -- changes/macos-autoplay-pointer-recovery.md | 4 -- changes/macos-modal-focus.md | 4 -- changes/manual-overlay-toggle-start.md | 4 -- changes/mouse-keybindings.md | 4 -- changes/overlay-xwayland-stacking.md | 11 ----- changes/playlist-next-warm-overlay.md | 4 -- changes/troubleshooting-docs.md | 7 --- .../windows-launch-mpv-background-attach.md | 4 -- docs-site/changelog.md | 16 +++++++ package.json | 2 +- release/release-notes.md | 47 +++++++++++++++++++ 13 files changed, 80 insertions(+), 47 deletions(-) delete mode 100644 changes/hyprland-lua-dispatch.md delete mode 100644 changes/macos-autoplay-pointer-recovery.md delete mode 100644 changes/macos-modal-focus.md delete mode 100644 changes/manual-overlay-toggle-start.md delete mode 100644 changes/mouse-keybindings.md delete mode 100644 changes/overlay-xwayland-stacking.md delete mode 100644 changes/playlist-next-warm-overlay.md delete mode 100644 changes/troubleshooting-docs.md delete mode 100644 changes/windows-launch-mpv-background-attach.md create mode 100644 release/release-notes.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ab0e125b..15c15212 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## v0.15.1 (2026-05-31) + +### Fixed + +- **Linux Overlay Stacking**: Fixed the overlay intermittently dropping behind mpv on KDE Plasma and other non-Hyprland/Sway Wayland sessions; restored subtitle hover, pause-on-hover, and Yomitan lookups on X11/XWayland; the overlay now correctly layers above/below mpv based on fullscreen state, yields to foreground windows (Settings, Yomitan, AniList, etc.), and avoids startup flashes and fullscreen transition glitches. +- **Linux Overlay (Hyprland Lua)**: Fixed overlay placement on Hyprland 0.55+ when using a Lua-based config. +- **Manual Overlay Startup**: Fixed manual visible-overlay startup from mpv — now correctly attaches to playback, keeps the window bounds synced with mpv, and primes current subtitles before showing. +- **Playlist Transitions**: Reused the warm overlay when mpv advances to the next playlist item, avoiding a redundant tokenization pause and preserving visible subtitles across tracks. +- **macOS Overlay**: Fixed the visible subtitle overlay staying click-through after pause-until-ready releases playback; restored mpv focus after closing modal windows so subtitles and keybinds resume without clicking the player. +- **Mouse Keybindings**: Fixed keybinding capture and runtime handling for mouse buttons, including side buttons like `MBTN_BACK` and `MBTN_FORWARD`. +- **Windows mpv Shortcut**: Fixed the Windows `SubMiner mpv` shortcut so videos attach to an already-running background app instead of spawning a second process. + +### Docs + +- **Troubleshooting**: Updated Hyprland overlay docs with current Lua (`hl.window_rule`) and legacy config syntax; added troubleshooting for KDE/Wayland and other non-Hyprland/Sway Wayland sessions; added a Character Dictionary troubleshooting section; added a "See Also" index linking each feature's troubleshooting page. + ## v0.15.0 (2026-05-29) ### Breaking Changes diff --git a/changes/hyprland-lua-dispatch.md b/changes/hyprland-lua-dispatch.md deleted file mode 100644 index 9d44cb75..00000000 --- a/changes/hyprland-lua-dispatch.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: overlay - -- Fixed Hyprland overlay placement on Hyprland 0.55+ Lua configs by using Lua dispatcher syntax when Hyprland reports `configProvider: "lua"`. diff --git a/changes/macos-autoplay-pointer-recovery.md b/changes/macos-autoplay-pointer-recovery.md deleted file mode 100644 index f306af83..00000000 --- a/changes/macos-autoplay-pointer-recovery.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: overlay - -- Fixed the macOS visible subtitle overlay staying click-through after pause-until-ready releases playback. diff --git a/changes/macos-modal-focus.md b/changes/macos-modal-focus.md deleted file mode 100644 index 0d60dc75..00000000 --- a/changes/macos-modal-focus.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: overlay - -- Restored mpv focus after closing dedicated modal windows on macOS so subtitles and playback keybinds resume without clicking the player. diff --git a/changes/manual-overlay-toggle-start.md b/changes/manual-overlay-toggle-start.md deleted file mode 100644 index 37e6805b..00000000 --- a/changes/manual-overlay-toggle-start.md +++ /dev/null @@ -1,4 +0,0 @@ -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. diff --git a/changes/mouse-keybindings.md b/changes/mouse-keybindings.md deleted file mode 100644 index 8bfd701b..00000000 --- a/changes/mouse-keybindings.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: config - -- Fixed settings keybinding capture and runtime handling for mouse buttons, including side-button bindings like `MBTN_BACK` and `MBTN_FORWARD`. diff --git a/changes/overlay-xwayland-stacking.md b/changes/overlay-xwayland-stacking.md deleted file mode 100644 index 5068dd23..00000000 --- a/changes/overlay-xwayland-stacking.md +++ /dev/null @@ -1,11 +0,0 @@ -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. diff --git a/changes/playlist-next-warm-overlay.md b/changes/playlist-next-warm-overlay.md deleted file mode 100644 index 650e2258..00000000 --- a/changes/playlist-next-warm-overlay.md +++ /dev/null @@ -1,4 +0,0 @@ -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. diff --git a/changes/troubleshooting-docs.md b/changes/troubleshooting-docs.md deleted file mode 100644 index 9ccd367b..00000000 --- a/changes/troubleshooting-docs.md +++ /dev/null @@ -1,7 +0,0 @@ -type: docs -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. diff --git a/changes/windows-launch-mpv-background-attach.md b/changes/windows-launch-mpv-background-attach.md deleted file mode 100644 index 3efa4c5a..00000000 --- a/changes/windows-launch-mpv-background-attach.md +++ /dev/null @@ -1,4 +0,0 @@ -type: fixed -area: launcher - -- Fixed the Windows `SubMiner mpv` shortcut so videos attach to an already-running background app instead of launching a second warmup/tokenizer path. diff --git a/docs-site/changelog.md b/docs-site/changelog.md index c1897771..7da31518 100644 --- a/docs-site/changelog.md +++ b/docs-site/changelog.md @@ -1,5 +1,21 @@ # Changelog +## v0.15.1 (2026-05-31) + +**Fixed** + +- **Linux Overlay Stacking**: Fixed the overlay intermittently dropping behind mpv on KDE Plasma and other non-Hyprland/Sway Wayland sessions; restored subtitle hover, pause-on-hover, and Yomitan lookups on X11/XWayland; the overlay now correctly layers above/below mpv based on fullscreen state, yields to foreground windows (Settings, Yomitan, AniList, etc.), and avoids startup flashes and fullscreen transition glitches. +- **Linux Overlay (Hyprland Lua)**: Fixed overlay placement on Hyprland 0.55+ when using a Lua-based config. +- **Manual Overlay Startup**: Fixed manual visible-overlay startup from mpv — now correctly attaches to playback, keeps the window bounds synced with mpv, and primes current subtitles before showing. +- **Playlist Transitions**: Reused the warm overlay when mpv advances to the next playlist item, avoiding a redundant tokenization pause and preserving visible subtitles across tracks. +- **macOS Overlay**: Fixed the visible subtitle overlay staying click-through after pause-until-ready releases playback; restored mpv focus after closing modal windows so subtitles and keybinds resume without clicking the player. +- **Mouse Keybindings**: Fixed keybinding capture and runtime handling for mouse buttons, including side buttons like `MBTN_BACK` and `MBTN_FORWARD`. +- **Windows mpv Shortcut**: Fixed the Windows `SubMiner mpv` shortcut so videos attach to an already-running background app instead of spawning a second process. + +**Docs** + +- **Troubleshooting**: Updated Hyprland overlay docs with current Lua (`hl.window_rule`) and legacy config syntax; added troubleshooting for KDE/Wayland and other non-Hyprland/Sway Wayland sessions; added a Character Dictionary troubleshooting section; added a "See Also" index linking each feature's troubleshooting page. + ## v0.15.0 (2026-05-29) **Breaking Changes** diff --git a/package.json b/package.json index 7c8a394c..5fbf73a1 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "subminer", "productName": "SubMiner", "desktopName": "SubMiner.desktop", - "version": "0.15.0", + "version": "0.15.1", "description": "All-in-one sentence mining overlay with AnkiConnect and dictionary integration", "packageManager": "bun@1.3.5", "main": "dist/main-entry.js", diff --git a/release/release-notes.md b/release/release-notes.md new file mode 100644 index 00000000..54f6923d --- /dev/null +++ b/release/release-notes.md @@ -0,0 +1,47 @@ +## Highlights +### Fixed + +- **Linux Overlay Stacking (XWayland / Wayland)** + - The overlay no longer drops behind mpv on KDE Plasma and other non-Hyprland/Sway Wayland sessions; subtitle hover, pause-on-hover, and Yomitan lookups now work correctly on those desktops. + - Stacking is now focus-sensitive: overlay stays managed while mpv is windowed, switches to non-interactive mode in fullscreen, and automatically yields to foreground windows (Settings, Yomitan, other apps) rather than covering them. + - Startup glitches are resolved — no more display-sized overlay flash or black screen before playback begins. + +- **Hyprland Overlay Placement (0.55+ / Lua configs)** + - Overlay placement now works on Hyprland 0.55+ installations that use the new Lua config format; SubMiner detects Lua mode and uses the correct `hl.window_rule` dispatcher automatically. + +- **macOS Overlay** + - Fixed the subtitle overlay remaining click-through after pause-until-ready releases playback; hovering and Yomitan lookups resume normally. + - Restored automatic mpv focus after closing Settings, AniList setup, and other modal windows so subtitles and playback keybinds work without clicking the player. + +- **Manual Overlay Startup** + - Starting the visible overlay manually from mpv now correctly attaches to playback, syncs the overlay window to mpv bounds on Linux/X11, and loads the current primary and secondary subtitles before revealing. + +- **Playlist Transitions** + - Advancing to the next mpv playlist item no longer triggers a second startup and tokenization delay; the overlay stays warm and visible subtitles are preserved across the transition. + +- **Windows Launcher** + - The `SubMiner mpv` shortcut on Windows now attaches the video to an already-running background app instead of spawning a duplicate warmup process. + +- **Mouse Keybindings** + - Side mouse buttons (`MBTN_BACK`, `MBTN_FORWARD`) and other mouse buttons can now be captured in the keybinding settings and work correctly at runtime. + +### Docs + +- **Troubleshooting Guides** + - Hyprland overlay guide updated with both Lua (`hl.window_rule`) and legacy `hyprland.conf` window rule syntax, plus a note on automatic placement via `hyprctl`. + - New KDE Plasma / Wayland section covering XWayland workarounds when launching mpv manually. + - New Character Dictionary section covering name matching, inline portraits, and external-profile mode (no AniList login required). + - Added a "See Also" index linking each feature to its own troubleshooting page. + +## Installation + +See the README and docs/installation guide for full setup steps. + +## Assets + +- Linux: `SubMiner.AppImage` +- macOS: `SubMiner-*.dmg` and `SubMiner-*.zip` +- Windows: `SubMiner-*.exe` and `SubMiner-*-win.zip` +- Optional extras: `subminer-assets.tar.gz` and the `subminer` launcher + +Note: the `subminer` wrapper script uses Bun (`#!/usr/bin/env bun`), so `bun` must be installed and on `PATH`.