Add chromeoptionsexclude: drop individual default Chromium flags - #67
Merged
Conversation
…flags The built-in flag list can only be extended (chromeoptions) or replaced wholesale (disabledefaultchromeoptions). This adds a per-flag exclusion knob so a single default can be dropped without forking the whole list -- for environments where one default misbehaves (e.g. --kiosk fullscreen re-assertion on wlroots compositors, which can occlude VPX's windows and stall its renderer). - chromeoptionsexclude ini key (same parsing as chromeoptions), applied in get_builtin_chromium_options; default empty = behavior unchanged - ManagerUI: Chrome Options section groups Additional / Disabled Default Options (Disable All + per-flag box, coupled); effective-options preview now reflects exclusions and additions live
Owner
|
Looks good. I will get it built into a release. Thanks! |
superhac
added a commit
that referenced
this pull request
Jul 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Chromium behaves a little differently on every distro, compositor, and GPU stack, and the config currently gives users two levers for dealing with that:
chromeoptionscan add flags, anddisabledefaultchromeoptionsthrows out the whole default set — including the backgrounding/throttling disables most setups want to keep. This adds the missing third lever:chromeoptionsexclude, a per-flag exclusion list, so a user can turn off a single default that misbehaves in their environment without giving up the rest.What sent me here: on sway (wlroots), the default
--kioskflag re-asserts fullscreen around table launch; a fullscreen FE window occludes VPX's windows on that screen, Wayland compositors stop sending frame callbacks to occluded surfaces, and VPX's render loop blocks waiting on them — total render freeze with the ROM still running. That render-loop behavior looks like a VPX bug and I'll report it to vpinball separately, but excluding--kioskremoves the trigger — and since sway tiles the windows to fill each screen anyway, the result looks identical to kiosk mode.chromeoptionsexclude = --kioskhas my cab (Debian 13, sway 1.10, three screens, portrait playfield) running clean.The change:
[Settings] chromeoptionsexcludekey, parsed the same way aschromeoptions(space/newline/semicolon separated). Matching is on the flag name, so excluding--disable-featuresdrops that default regardless of its=value.get_builtin_chromium_options(), threaded throughlaunch_window()like the existing options.disabledefaultchromeoptionsas a "Disable All" checkbox, plus the new per-flag box, greyed out when Disable All is on. The effective-options preview reflects exclusions and additions live.No impact on existing behavior: the key defaults to empty, the built-in flag list and the per-OS handling already in the code are untouched, and nothing changes for anyone who doesn't set it.
Happy to adjust the key name or split off the UI changes if you'd rather take the knob alone.