diff options
author | Florian Bruhin <me@the-compiler.org> | 2022-05-08 00:55:20 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2022-06-22 17:41:11 +0200 |
commit | 2e6c6a81b8ac24bd712fd7baac294a4c83aa509a (patch) | |
tree | 76a3b4840efb005324426af91137861ce41da27b | |
parent | 505495da4342d580dc83157990730d699aad558b (diff) | |
download | qutebrowser-2e6c6a81b8ac24bd712fd7baac294a4c83aa509a.tar.gz qutebrowser-2e6c6a81b8ac24bd712fd7baac294a4c83aa509a.zip |
Add colors.webpage.darkmode.increase_text_contrast
TODO: changelog
-rw-r--r-- | qutebrowser/browser/webengine/darkmode.py | 32 | ||||
-rw-r--r-- | qutebrowser/config/configdata.py | 2 | ||||
-rw-r--r-- | qutebrowser/config/configdata.yml | 13 |
3 files changed, 45 insertions, 2 deletions
diff --git a/qutebrowser/browser/webengine/darkmode.py b/qutebrowser/browser/webengine/darkmode.py index a548ef9a4..ead34d49f 100644 --- a/qutebrowser/browser/webengine/darkmode.py +++ b/qutebrowser/browser/webengine/darkmode.py @@ -90,6 +90,17 @@ https://chromium-review.googlesource.com/c/chromium/src/+/2232922 - Now needs to be 0 for dark and 1 for light (before: 0 no preference / 1 dark / 2 light) + +Qt 6.2 +------ + +No significant changes over 5.15.3 + +Qt 6.3 +------ + +- New IncreaseTextContrast: +https://chromium-review.googlesource.com/c/chromium/src/+/2893236 """ import os @@ -113,6 +124,7 @@ class Variant(enum.Enum): qt_515_2 = enum.auto() qt_515_3 = enum.auto() + qt_63 = enum.auto() # Mapping from a colors.webpage.darkmode.algorithm setting value to @@ -153,6 +165,11 @@ _BOOLS = { False: 'false', } +_INT_BOOLS = { + True: '1', + False: '0', +} + @dataclasses.dataclass class _Setting: @@ -222,12 +239,18 @@ class _Definition: """Get a new _Definition object with a changed attribute. NOTE: This does *not* copy the settings list. Both objects will reference the - same list. + same (immutable) tuple. """ new = copy.copy(self) setattr(new, attr, value) return new + def copy_add_setting(self, setting: _Setting) -> '_Definition': + """Get a new _Definition object with an additional setting.""" + new = copy.copy(self) + new._settings = self._settings + (setting,) + return new + # Our defaults for policy.images are different from Chromium's, so we mark it as # mandatory setting. @@ -268,6 +291,9 @@ _DEFINITIONS: MutableMapping[Variant, _Definition] = { switch_names={'enabled': _BLINK_SETTINGS, None: 'dark-mode-settings'}, ), } +_DEFINITIONS[Variant.qt_63] = _DEFINITIONS[Variant.qt_515_3].copy_add_setting( + _Setting('increase_text_contrast', 'IncreaseTextContrast', _INT_BOOLS), +) _PREFERRED_COLOR_SCHEME_DEFINITIONS = { @@ -296,7 +322,9 @@ def _variant(versions: version.WebEngineVersions) -> Variant: except KeyError: log.init.warning(f"Ignoring invalid QUTE_DARKMODE_VARIANT={env_var}") - if (versions.webengine == utils.VersionNumber(5, 15, 2) and + if versions.webengine >= utils.VersionNumber(6, 3): + return Variant.qt_63 + elif (versions.webengine == utils.VersionNumber(5, 15, 2) and versions.chromium_major == 87): # WORKAROUND for Gentoo packaging something newer as 5.15.2... return Variant.qt_515_3 diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 2d8829fa9..9c5e99374 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -161,6 +161,8 @@ def _parse_yaml_backends_dict( True: True, False: False, 'Qt 5.15': qtutils.version_check('5.15'), + 'Qt 6.2': qtutils.version_check('6.2'), + 'Qt 6.3': qtutils.version_check('6.3'), } for key in sorted(node.keys()): if conditionals[node[key]]: diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 702200726..d3e8a441d 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -3150,6 +3150,9 @@ colors.webpage.darkmode.enabled: - "With selective inversion of everything": Combines the two variants above. + + - "With increased text contrast": Set + `colors.webpage.darkmode.increase_text_contrast` (QtWebEngine 6.3+) restart: true backend: QtWebEngine @@ -3281,6 +3284,16 @@ colors.webpage.darkmode.grayscale.images: restart: true backend: QtWebEngine +colors.webpage.darkmode.increase_text_contrast: + default: false + type: Bool + desc: >- + Increase text contrast by drawing an outline of the uninverted color. + restart: true + backend: + QtWebEngine: Qt 6.3 + QtWebKit: false + # emacs: ' ## fonts |