Repository navigation
v4 — real bugfixes from user testing (af5261b)
·
56 commits
to fix/trackpad-input
since this release
Build @ af5261b. CFBundleVersion bumped to 1.2.4 для cache-bust.
👉 Качай
| Sideloader | Файл |
|---|---|
| Scarlet / eSign (обновить текущий) | OpenParsec-v4-unsigned.ipa |
| Scarlet / eSign (поставить рядом) | OpenParsec-v4-trackpadfix-unsigned.ipa |
| AltStore / SideStore | OpenParsec-v4-trackpadfix.ipa |
Что починил по жалобам на v3
Скролл
- Natural Scrolling переключатель был backwards. ON теперь = natural feel (без client-side инверсии, Mac сам делает natural в своей default config).
- Sub-pixel ticks больше не теряются —
Int32truncation →.toNearestOrAwayFromZerorounding в scroll accumulator (та же фикса что делал в mouse path, забыл применить к scroll). - Inertia реально работает теперь. Было две проблемы:
minSeedSpeed = 80 pts/s— отвергал почти все натуральные скроллы. Снижен до 20.- 200ms peak-velocity reset срабатывал во время iPadOS deceleration tail и затирал peak до того как
.endedfire'нул. Поднят до 1.0s.
Локальный курсор
- Был SF Symbol cursorarrow (Mac-стрелка) → программно нарисованный iPadOS-style dot (UIView, 13pt круг, светло-серый с тонкой обводкой и тенью).
- Не двигался из-за seed бага:
contentView.bounds.midX/YвviewDidLoad= 0. Теперь seed вviewDidLayoutSubviewsчерезhasSeededLocalCursorflag — после реального layout. - Sub-pixel плавность движения: теперь
moveLocalCursorобновляется на каждом ивенте при полной CGFloat точности, даже когда rounded host-delta = 0.
Language sync
- Не срабатывал — мои защитные gates (
hasSeenInitialLanguage+ 150ms debounce) проглатывали legitimate уведомления. Loosened: любое изменение языка fires hotkey, debounce только 50ms против OS-level double-fire.
Смена разрешения
- "Disconnected 20" — 100ms reconnect gap не хватало SDK. Бамп до 600ms.
Сохранение дисплея
- Не работало — Parsec может перегенерировать display id'ы между сессиями. Теперь сохраняется И
id, И"name + adapterName"строка. На restore сначала пробуем id, потом name match.
Что я не починил (объясняю честно)
-
Resolution 1920x1080 в Settings не применяется на хосте
На macOS Parsec захватывает физический дисплей и игнорирует запрошенное разрешение вparsecClientCfg.video.0.resolutionX/Y. Это поведение хоста, не клиента.Что реально снижает bandwidth:
- Bitrate в in-stream overlay (работает 100% — host реально кодирует с меньшим bitrate)
- H.265 decoder в Settings → Graphics
- Поставить BetterDummy на Mac (free) — создаёт виртуальный дисплей в нужном разрешении, выбираешь его через "Switch Display" → реально получаешь 1920x1080
-
Скрыть курсор на самом физическом Mac
Parsec SDK не имеет client→host cursor сообщения. macOS рисует курсор до Parsec capture.
Source
CI: https://github.com/2extndd/OpenParsec/actions/runs/26461049686