Skip to content

feat(input): add macOS Steam Controller compatibility toggle - #587

Merged
zortos293 merged 1 commit into
devfrom
capy/steam-controller-compat-toggle
Jul 4, 2026
Merged

feat(input): add macOS Steam Controller compatibility toggle#587
zortos293 merged 1 commit into
devfrom
capy/steam-controller-compat-toggle

Conversation

@zortos293

@zortos293 zortos293 commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

This PR adds an experimental macOS-only Input setting that restores Chromium's older HID gamepad path to fix Steam Controller recognition on Electron 42.3.3 (Chromium 135), which broke compatibility by enabling kXboxUseGameControllerDataFetcherMac by default. The setting is opt-in, defaults to off, applies after app restart, and includes a warning about potential Xbox controller compatibility trade-offs.

  • Added opennow-stable/src/main/chromiumCommandLine.ts with buildChromiumCommandLine to conditionally append XboxUseGameControllerDataFetcherMac to disable-features on macOS when the setting is enabled.
  • Added steamControllerCompatibilityMode to Settings interface in opennow-stable/src/main/settings.ts and opennow-stable/src/shared/gfn.ts, with normalization and migration to ensure boolean type.
  • Updated opennow-stable/src/main/index.ts to use the new command-line builder and bootstrap preferences loader on startup.
  • Added macOS-only toggle in Input settings in opennow-stable/src/renderer/src/components/SettingsPage.tsx with experimental badge and hint explaining the trade-offs.
  • Added English localization strings for the new setting.
  • Added unit tests for Chromium command-line building and preference normalization.

Open OPE-245 OPE-245


Note

Medium Risk
Changes low-level gamepad discovery via Chromium flags at process start; opt-in and restart-bound, but wrong platform/state could affect Xbox vs Steam Controller behavior.

Overview
Adds an opt-in, macOS-only Input setting Steam Controller Compatibility Mode (default off) that takes effect after restart.

Startup Chromium flags are built through a new buildChromiumCommandLine path: when the toggle is on on darwin, it appends XboxUseGameControllerDataFetcherMac to disable-features so Chromium uses the older HID gamepad path for Steam Controller, with UI copy warning this may hurt Xbox controller compatibility.

The setting is wired through shared types, settings.json defaults/migration, bootstrap preference loading in main, a macOS-only experimental toggle in Input settings (plus search keywords and English strings), and unit tests for normalization and platform-gated feature flags.

Reviewed by Cursor Bugbot for commit 57319d1. Configure here.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@zortos293 zortos293 added the capy Generated by capy.ai label Jul 4, 2026 — with Image Capy AI
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e1214f74-7676-41b7-995b-5347ff97704b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch capy/steam-controller-compat-toggle

Comment @coderabbitai help to get the list of available commands.

@zortos293
zortos293 merged commit ebf1f3c into dev Jul 4, 2026
17 checks passed
Chizuui pushed a commit to Chizuui/OpenNOW-Modified that referenced this pull request Aug 11, 2026
…#587)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

capy Generated by capy.ai

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant