feat(input): Scandinavian keyboard layouts (#624) - #660
Conversation
Expose Danish, Norwegian, Swedish, and Finnish layout IDs so remote sessions map physical OEM keys like official GFN.
|
Capy auto-review is paused for this organization because the usage-cycle auto-review limit has been reached. Increase the limit or turn it off in billing settings to resume automatic reviews. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
* feat(stream): redesign Ctrl+G overlay with tabs and controller support (#622) * refactor: split oversized modules into focused files (#626) Co-authored-by: Zortos <zortosdev@proton.me> * feat(renderer): polish queue shaders and Motion animations (#628) * feat(native): internal one-window renderer with external fallback (#619) * Stabilize WebRTC streaming and native window behavior (#635) * fix(native): honor Windows DPI scaling (#637) * feat: add nightly builds and opt-in update channel (#638) * fix(updater): Preserve nested macOS signatures (#631) * fix(build): configure relocated GStreamer plugins * fix(ci): use supported macOS runner size * fix(native): mark Objective-C selectors thread-safe * fix(build): sign unsigned nested macOS bundles * fix(build): sign nested macOS Mach-O code * fix(build): enforce nested macOS signing order * fix(release): upload assets before publishing * fix(release): target repository when publishing * fix(native): stabilize high-FPS Vulkan streaming and input (#639) * fix(native): enable DX11 tearing and VRR presentation (#640) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: align settings/library UI and preserve GFN auth/library ownership (#644) * fix(ui): repair settings interactions and accessibility (#649) * fix(ui): smooth animation lifecycles (#651) * feat(streaming): add 90 FPS mode (#652) * fix(ci): preserve LF endings for patch files (#653) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): build only patched D3D11 target (#654) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): align Windows GStreamer Vulkan runtime (#655) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): bundle and verify Vulkan loader (#656) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(input): Scandinavian keyboard layouts (#624) (#660) * fix(controller): make bottom hint overlay clickable with mouse (#620) (#661) fixes #620 * fix(streaming): stop synthesizing 90 FPS from entitlements (#662) * feat(gfn): add Identify as Steam Deck option for Deck modes and 90 FPS (#663) Spoof official Steam Deck device headers on MES/CloudMatch so entitlements return Deck resolutions and 90 FPS, and refresh video options when toggled. * fix: Mac missing fullscreen (#642) * fix(deps): update dependencies and clear npm audit vulnerabilities (#664) * feat: PostHog telemetry, consent, and in-app feedback (#668) * fix(build): restore macOS plist packaging compatibility Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(native): bundle Windows DLL dependency closure (#676) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(native): add Linux and Raspberry Pi codec support (#679) * feat(native): add Linux hardware codec support Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * ci(native): verify Linux release builds Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): centralize platform defaults (#683) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): split stream settings modules (#685) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(stream): decompose StreamView runtime (#686) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize NVST RTSP probe (#682) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(native): extract streamer runtime helpers (#684) * refactor(native): extract streamer runtime helpers Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): make path fixtures portable Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): normalize Windows path assertions Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(renderer): extract App stream runtime orchestration (#690) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): decompose auth service (#689) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): split input protocol modules (#688) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize SDP transformations (#687) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): compose WebRTC client from focused controllers (#691) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(discord): show game artwork in rich presence (#681) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(security): verify signaling TLS certificates Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> Co-authored-by: Anderson Shindy Oki <anderson.vs.oki@gmail.com>
* feat(stream): redesign Ctrl+G overlay with tabs and controller support (OpenCloudGaming#622) * refactor: split oversized modules into focused files (OpenCloudGaming#626) Co-authored-by: Zortos <zortosdev@proton.me> * feat(renderer): polish queue shaders and Motion animations (OpenCloudGaming#628) * feat(native): internal one-window renderer with external fallback (OpenCloudGaming#619) * Stabilize WebRTC streaming and native window behavior (OpenCloudGaming#635) * fix(native): honor Windows DPI scaling (OpenCloudGaming#637) * feat: add nightly builds and opt-in update channel (OpenCloudGaming#638) * fix(updater): Preserve nested macOS signatures (OpenCloudGaming#631) * fix(build): configure relocated GStreamer plugins * fix(ci): use supported macOS runner size * fix(native): mark Objective-C selectors thread-safe * fix(build): sign unsigned nested macOS bundles * fix(build): sign nested macOS Mach-O code * fix(build): enforce nested macOS signing order * fix(release): upload assets before publishing * fix(release): target repository when publishing * fix(native): stabilize high-FPS Vulkan streaming and input (OpenCloudGaming#639) * fix(native): enable DX11 tearing and VRR presentation (OpenCloudGaming#640) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: align settings/library UI and preserve GFN auth/library ownership (OpenCloudGaming#644) * fix(ui): repair settings interactions and accessibility (OpenCloudGaming#649) * fix(ui): smooth animation lifecycles (OpenCloudGaming#651) * feat(streaming): add 90 FPS mode (OpenCloudGaming#652) * fix(ci): preserve LF endings for patch files (OpenCloudGaming#653) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): build only patched D3D11 target (OpenCloudGaming#654) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): align Windows GStreamer Vulkan runtime (OpenCloudGaming#655) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): bundle and verify Vulkan loader (OpenCloudGaming#656) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(input): Scandinavian keyboard layouts (OpenCloudGaming#624) (OpenCloudGaming#660) * fix(controller): make bottom hint overlay clickable with mouse (OpenCloudGaming#620) (OpenCloudGaming#661) fixes OpenCloudGaming#620 * fix(streaming): stop synthesizing 90 FPS from entitlements (OpenCloudGaming#662) * feat(gfn): add Identify as Steam Deck option for Deck modes and 90 FPS (OpenCloudGaming#663) Spoof official Steam Deck device headers on MES/CloudMatch so entitlements return Deck resolutions and 90 FPS, and refresh video options when toggled. * fix: Mac missing fullscreen (OpenCloudGaming#642) * fix(deps): update dependencies and clear npm audit vulnerabilities (OpenCloudGaming#664) * feat: PostHog telemetry, consent, and in-app feedback (OpenCloudGaming#668) * fix(build): restore macOS plist packaging compatibility Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(native): bundle Windows DLL dependency closure (OpenCloudGaming#676) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(native): add Linux and Raspberry Pi codec support (OpenCloudGaming#679) * feat(native): add Linux hardware codec support Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * ci(native): verify Linux release builds Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): centralize platform defaults (OpenCloudGaming#683) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): split stream settings modules (OpenCloudGaming#685) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(stream): decompose StreamView runtime (OpenCloudGaming#686) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize NVST RTSP probe (OpenCloudGaming#682) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(native): extract streamer runtime helpers (OpenCloudGaming#684) * refactor(native): extract streamer runtime helpers Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): make path fixtures portable Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): normalize Windows path assertions Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(renderer): extract App stream runtime orchestration (OpenCloudGaming#690) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): decompose auth service (OpenCloudGaming#689) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): split input protocol modules (OpenCloudGaming#688) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize SDP transformations (OpenCloudGaming#687) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): compose WebRTC client from focused controllers (OpenCloudGaming#691) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(discord): show game artwork in rich presence (OpenCloudGaming#681) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(security): verify signaling TLS certificates Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> Co-authored-by: Anderson Shindy Oki <anderson.vs.oki@gmail.com>
…#4) * feat(stream): redesign Ctrl+G overlay with tabs and controller support (OpenCloudGaming#622) * refactor: split oversized modules into focused files (OpenCloudGaming#626) Co-authored-by: Zortos <zortosdev@proton.me> * feat(renderer): polish queue shaders and Motion animations (OpenCloudGaming#628) * feat(native): internal one-window renderer with external fallback (OpenCloudGaming#619) * Stabilize WebRTC streaming and native window behavior (OpenCloudGaming#635) * fix(native): honor Windows DPI scaling (OpenCloudGaming#637) * feat: add nightly builds and opt-in update channel (OpenCloudGaming#638) * fix(updater): Preserve nested macOS signatures (OpenCloudGaming#631) * fix(build): configure relocated GStreamer plugins * fix(ci): use supported macOS runner size * fix(native): mark Objective-C selectors thread-safe * fix(build): sign unsigned nested macOS bundles * fix(build): sign nested macOS Mach-O code * fix(build): enforce nested macOS signing order * fix(release): upload assets before publishing * fix(release): target repository when publishing * fix(native): stabilize high-FPS Vulkan streaming and input (OpenCloudGaming#639) * fix(native): enable DX11 tearing and VRR presentation (OpenCloudGaming#640) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: align settings/library UI and preserve GFN auth/library ownership (OpenCloudGaming#644) * fix(ui): repair settings interactions and accessibility (OpenCloudGaming#649) * fix(ui): smooth animation lifecycles (OpenCloudGaming#651) * feat(streaming): add 90 FPS mode (OpenCloudGaming#652) * fix(ci): preserve LF endings for patch files (OpenCloudGaming#653) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): build only patched D3D11 target (OpenCloudGaming#654) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): align Windows GStreamer Vulkan runtime (OpenCloudGaming#655) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): bundle and verify Vulkan loader (OpenCloudGaming#656) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(input): Scandinavian keyboard layouts (OpenCloudGaming#624) (OpenCloudGaming#660) * fix(controller): make bottom hint overlay clickable with mouse (OpenCloudGaming#620) (OpenCloudGaming#661) fixes OpenCloudGaming#620 * fix(streaming): stop synthesizing 90 FPS from entitlements (OpenCloudGaming#662) * feat(gfn): add Identify as Steam Deck option for Deck modes and 90 FPS (OpenCloudGaming#663) Spoof official Steam Deck device headers on MES/CloudMatch so entitlements return Deck resolutions and 90 FPS, and refresh video options when toggled. * fix: Mac missing fullscreen (OpenCloudGaming#642) * fix(deps): update dependencies and clear npm audit vulnerabilities (OpenCloudGaming#664) * feat: PostHog telemetry, consent, and in-app feedback (OpenCloudGaming#668) * fix(build): restore macOS plist packaging compatibility Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * docs: link the OpenNOW Switch prototype (OpenCloudGaming#670) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Fix Nintendo Switch release documentation (OpenCloudGaming#674) * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Korean) [ci skip] * fix(native): bundle Windows DLL dependency closure (OpenCloudGaming#676) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(native): add Linux and Raspberry Pi codec support (OpenCloudGaming#679) * feat(native): add Linux hardware codec support Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * ci(native): verify Linux release builds Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): centralize platform defaults (OpenCloudGaming#683) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): split stream settings modules (OpenCloudGaming#685) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(stream): decompose StreamView runtime (OpenCloudGaming#686) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize NVST RTSP probe (OpenCloudGaming#682) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(native): extract streamer runtime helpers (OpenCloudGaming#684) * refactor(native): extract streamer runtime helpers Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): make path fixtures portable Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): normalize Windows path assertions Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(renderer): extract App stream runtime orchestration (OpenCloudGaming#690) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): decompose auth service (OpenCloudGaming#689) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): split input protocol modules (OpenCloudGaming#688) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize SDP transformations (OpenCloudGaming#687) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): compose WebRTC client from focused controllers (OpenCloudGaming#691) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(discord): show game artwork in rich presence (OpenCloudGaming#681) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(security): verify signaling TLS certificates Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * chore(release): prepare v0.5.3 * fix(input): keep gameplay interactive after Escape unlock (OpenCloudGaming#711) * fix(input): preserve interaction after Escape unlock Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(input): pin cursor before fallback clicks Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(input): order fallback cursor pins reliably Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(main): harden auth and external lifecycle (OpenCloudGaming#715) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(main): tolerate closed output and streamer pipes (OpenCloudGaming#714) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(input): prevent recursive mouse flush scheduling (OpenCloudGaming#712) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(media): recover shader and audio playback (OpenCloudGaming#713) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(stream): align SDP and BWE with official client (OpenCloudGaming#720) Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * feat(catalog): add game detail modal (OpenCloudGaming#721) Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * Harden codec capability selection and negotiation fallback (OpenCloudGaming#722) Adds capability-aware codec selection and bounded negotiation fallback, preserving official-client SDP/BWE behavior while preventing unsupported codec choices from leaving sessions without video. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * Add accurate stream diagnostics telemetry (OpenCloudGaming#723) Adds typed telemetry for server game FPS, receive/decode rates, ICE transport, network capacity, and session location so the compact/full HUD reports distinct measurements accurately. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * Add GFN-style compact and full stats HUD (OpenCloudGaming#724) Adds off, compact, and full frame-stat modes with distinct server, receive, decode, and render telemetry; configurable corner placement; localized diagnostics; and a guarded Ctrl+N shortcut. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * Harden browser recording controls and performance (OpenCloudGaming#725) Adds bounded browser recording controls, presented-frame capture, ordered chunk persistence, and reliable finalization without importing native GStreamer recording scope. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * Reorganize streaming and diagnostics settings (OpenCloudGaming#726) Groups stream quality and recording controls under Stream, moves HUD and codec tests into Diagnostics, preserves persisted settings, and restores legacy search aliases. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * Harden media lifecycles and refresh dependencies (OpenCloudGaming#728) * Harden media lifecycles and refresh dependencies * Harden authorized CloudMatch endpoints * feat: add recurring anti-AFK reminders (OpenCloudGaming#729) * feat: add recurring anti-AFK reminders * docs: add anti-AFK reminder previews * fix(input): retain pointer capture on Escape (OpenCloudGaming#735) * feat(queue): add ad mute control (OpenCloudGaming#733) * feat(desktop): add account menu exit button (OpenCloudGaming#731) * fix(linux): restore app icon on Wayland (OpenCloudGaming#732) * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * feat: support an isolated secondary app instance (OpenCloudGaming#736) * fix(native): avoid X11 embedding under Wayland (OpenCloudGaming#737) * Improve app performance and repair light theme (OpenCloudGaming#739) * perf: optimize app runtime and repair light theme * fix: harden performance changes against regressions * Add controller-first console mode with PIN-protected profiles (OpenCloudGaming#697) * fix(release): keep changelog comparisons current (OpenCloudGaming#740) * fix(console): harden profile PINs and controller flows (OpenCloudGaming#741) * feat(console): suggest controller mode on gamepad connection (OpenCloudGaming#742) * feat(console): suggest controller mode on gamepad connection * feat(console): control mode prompt with gamepad * style(console): color controller action glyphs * refactor(console): reuse shared controller glyphs * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * style(console): polish controller mode prompt (OpenCloudGaming#747) * style(console): polish controller mode prompt * style(console): align prompt with standard modals --------- Co-authored-by: Capy Agent <agent@capy.test> * fix(stream): show accurate region and server GPU stats (OpenCloudGaming#748) * Add desktop bug reporting and session summaries * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix bug report timeout and consent handling * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * feat(catalog): show premium membership requirements * feat(settings): add compact icon rail variant (OpenCloudGaming#744) Co-authored-by: Capy Agent <agent@capy.test> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * chore(release): prepare v0.5.4 * fix(gfn): recover catalog requests from proxy failures (OpenCloudGaming#758) * feat(gfn): use Railway community session proxy (OpenCloudGaming#759) * chore(release): prepare v0.5.5 * Update star history image source URLs in README --------- Co-authored-by: Zortos <zortosdev@proton.me> Co-authored-by: Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com> Co-authored-by: Zortos <65777760+zortos293@users.noreply.github.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> Co-authored-by: Anderson Shindy Oki <anderson.vs.oki@gmail.com> Co-authored-by: Kiefer <67562560+Kief5555@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> Co-authored-by: Capy Agent <agent@capy.test> Co-authored-by: Kiefer <kieferlin1001@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Summary
keyboardLayoutquery param) and optionally mid-session viasetKeyboardLayout. Physical VK events are forwarded; the server remaps OEM keys from that layout ID (not a client-side character lookup table).resolveGfnKeyboardLayout→ CloudMatch session URL + settings dropdown). Scandinavian layouts were simply missing from the selectable ID list.da-DK(m-daon macOS), Norwegiannb-NO(m-no), Swedishsv-SE(m-sv), Finnishfi-FI(m-fi) — matching NVIDIA'sdefault_keyCode/mac_keyCodetables from the GFN web JS runtime.Fixes #624
Test plan
npm --prefix opennow-stable run typechecknpm --prefix opennow-stable test -- --test-name-pattern resolveGfnKeyboardLayoutm-da/m-no/m-sv/m-fi(optional)