summaryrefslogtreecommitdiff
path: root/qutebrowser/config/qtargs.py
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2020-10-05 18:57:37 +0200
committerFlorian Bruhin <me@the-compiler.org>2020-10-05 18:57:37 +0200
commite1484d9038f5282e39f6d2d957f3a1d246ab8251 (patch)
treeaf842c19894ecd065f2e69f022f456f9ad377c0b /qutebrowser/config/qtargs.py
parentaa03c1d9037ccb9e402156a2707e15d00ee8bd7a (diff)
downloadqutebrowser-e1484d9038f5282e39f6d2d957f3a1d246ab8251.tar.gz
qutebrowser-e1484d9038f5282e39f6d2d957f3a1d246ab8251.zip
Implement dark mode for Qt 5.15.2
See #5752
Diffstat (limited to 'qutebrowser/config/qtargs.py')
-rw-r--r--qutebrowser/config/qtargs.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py
index b81194c22..a9d92e95d 100644
--- a/qutebrowser/config/qtargs.py
+++ b/qutebrowser/config/qtargs.py
@@ -61,6 +61,21 @@ def qt_args(namespace: argparse.Namespace) -> typing.List[str]:
return argv
+def _darkmode_prefix() -> str:
+ """Return the prefix to use for darkmode settings."""
+ try:
+ from PyQt5.QtWebEngine import PYQT_WEBENGINE_VERSION
+ except ImportError:
+ # Added in PyQt 5.13
+ return 'darkMode'
+
+ if PYQT_WEBENGINE_VERSION >= 0x050f02:
+ # QtWebEngine 5.15.2 comes with Chromium 83
+ return 'forceDarkMode'
+ else:
+ return 'darkMode'
+
+
def _darkmode_settings() -> typing.Iterator[typing.Tuple[str, str]]:
"""Get necessary blink settings to configure dark mode for QtWebEngine."""
if not config.val.colors.webpage.darkmode.enabled:
@@ -139,10 +154,7 @@ def _darkmode_settings() -> typing.Iterator[typing.Tuple[str, str]]:
if mapping is not None:
value = mapping[value]
- # FIXME: This is "forceDarkMode" starting with Chromium 83
- prefix = 'darkMode'
-
- yield prefix + key, str(value)
+ yield _darkmode_prefix() + key, str(value)
def _qtwebengine_enabled_features(