Files
SubMiner/backlog/completed/task-339 - Stop-pinning-Hyprland-overlay-windows.md
T
sudacode 4d5bf3de41 fix: align Hyprland overlay windows to mpv and stop pinning them
- Force-apply exact Hyprland move/resize/setprop dispatches when bounds are provided
- Stop pinning overlay windows; toggle pin off when Hyprland reports pinned=true
- Compensate stats overlay outer placement for Electron/Wayland content insets
- Make stats overlay window and page opaque so mpv cannot show through transparent insets
- Constrain stats app to h-screen with internal scroll so content covers mpv from y=0
- Lock overlay/stats window titles against page-title-updated events
- Add regression coverage for placement dispatches, inset compensation, and CSS overlay mode
2026-05-04 00:06:27 -07:00

2.0 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority
id title status assignee created_date updated_date labels dependencies references priority
TASK-339 Stop pinning Hyprland overlay windows Done
2026-05-04 06:07 2026-05-04 06:09
linux
hyprland
overlay
bug
src/core/services/hyprland-window-placement.ts
src/core/services/overlay-window.ts
src/core/services/stats-window.ts
high

Description

Recent Hyprland placement fix pins SubMiner overlay/stats windows, making them follow across workspaces instead of staying attached to mpv. Keep the float-for-bounds behavior, but never pin overlay windows.

Acceptance Criteria

  • #1 Hyprland placement dispatches set floating state only and does not dispatch pin.
  • #2 Regression coverage proves pinned clients are unpinned or at least not re-pinned by SubMiner.
  • #3 Targeted tests and typecheck pass.

Implementation Notes

Changed Hyprland placement dispatch construction so unpinned overlay windows only get setfloating; pinned overlay windows get a single pin dispatch to toggle the bad prior pinned state off. This preserves floating placement for bounds while keeping overlay windows workspace-local with mpv.

Final Summary

Summary:

  • Stopped re-pinning Hyprland overlay/stats windows during placement.
  • Added cleanup behavior for previously pinned SubMiner windows by toggling pin only when Hyprland reports pinned: true.
  • Updated regression coverage and added a changelog fragment.

Verification:

  • bun test src/core/services/hyprland-window-placement.test.ts src/core/services/overlay-window-config.test.ts src/core/services/stats-window.test.ts src/core/services/overlay-window-bounds.test.ts src/window-trackers/hyprland-tracker.test.ts
  • bun run typecheck
  • bun run changelog:lint
  • bun run test:fast