diff --git a/family/how-to/htpc-magic4pc.md b/family/how-to/htpc-magic4pc.md index e7c18dfd..de25adbe 100644 --- a/family/how-to/htpc-magic4pc.md +++ b/family/how-to/htpc-magic4pc.md @@ -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: