[2026-05-27] Whale: update docs — cursor detection, overlay filter

This commit is contained in:
Alexey Martemyanov
2026-05-27 14:24:32 +06:00
parent c9b466e0da
commit 9e6ecb68d3
+3 -1
View File
@@ -58,7 +58,9 @@ TV шлёт координаты в пространстве 0–1920 × 0–108
При открытии окна (алерт, диалог) клиент определяет его размер через `xdotool search --onlyvisible`, так как `getactivewindow` не работает в gamescope (нет `_NET_ACTIVE_WINDOW`). Если окно единственное видимое — используется **letterbox-алгоритм**:
1. Активное окно находится через `xdotool search --onlyvisible`, отсекая `steamcompmgr`, `Default IME` и окна ≤5×5
1. Активное окно определяется двумя стратегиями:
1а) **Под курсором**`xdotool getmouselocation` показывает window ID под мышью
1б) **По bounding box** — собираются все visible окна, отсекаются те что внутри другого (popup меню), из оставшихся берётся с наибольшим ID (последнее открытое)
2. Вычисляется **letterbox viewport** в пропорции 16:9 на основе ширины окна: `lb_h = win_w * 9/16`
3. Вычисляется **отступ**: `off_y = -(lb_h - win_h) / 2` (отрицательный — сдвигает viewport вверх, чтобы TV y=0 совпадал с верхом чёрной полосы)
4. TV-координаты маппятся в X11 через scale и offset: