summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-05-08 00:55:20 +0200
committerFlorian Bruhin <me@the-compiler.org>2022-06-22 17:41:11 +0200
commit2e6c6a81b8ac24bd712fd7baac294a4c83aa509a (patch)
tree76a3b4840efb005324426af91137861ce41da27b
parent505495da4342d580dc83157990730d699aad558b (diff)
downloadqutebrowser-2e6c6a81b8ac24bd712fd7baac294a4c83aa509a.tar.gz
qutebrowser-2e6c6a81b8ac24bd712fd7baac294a4c83aa509a.zip
Add colors.webpage.darkmode.increase_text_contrast
TODO: changelog
-rw-r--r--qutebrowser/browser/webengine/darkmode.py32
-rw-r--r--qutebrowser/config/configdata.py2
-rw-r--r--qutebrowser/config/configdata.yml13
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