summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2019-12-29 13:41:14 +0100
committerFlorian Bruhin <me@the-compiler.org>2019-12-29 13:41:14 +0100
commit7c4ba0b86b70add9efa165bebf485df698479f01 (patch)
treed6da08f4fb1a47eb287a5a096a728e1bebde1323
parentab916993db88c0c5b9c8d67d0c8271d2030a5a13 (diff)
downloadqutebrowser-7c4ba0b86b70add9efa165bebf485df698479f01.tar.gz
qutebrowser-7c4ba0b86b70add9efa165bebf485df698479f01.zip
Add a qt.force_platformtheme setting
-rw-r--r--doc/changelog.asciidoc2
-rw-r--r--doc/help/settings.asciidoc11
-rw-r--r--qutebrowser/config/configdata.yml13
-rw-r--r--qutebrowser/config/configinit.py2
-rw-r--r--tests/unit/config/test_configinit.py1
5 files changed, 29 insertions, 0 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index cd6a0a7c3..9f7a22ac2 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -31,6 +31,8 @@ Added
- New `content.site_specific_quirks` setting which enables workarounds for
websites with broken user agent parsing (enabled by default, see the "Fixed"
section for fixed websites).
+- New `qt.force_platformtheme` setting to force Qt to use a given platform
+ theme.
Changed
~~~~~~~
diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc
index d48706ac9..3f43495c3 100644
--- a/doc/help/settings.asciidoc
+++ b/doc/help/settings.asciidoc
@@ -245,6 +245,7 @@
|<<prompt.radius,prompt.radius>>|Rounding radius (in pixels) for the edges of prompts.
|<<qt.args,qt.args>>|Additional arguments to pass to Qt, without leading `--`.
|<<qt.force_platform,qt.force_platform>>|Force a Qt platform to use.
+|<<qt.force_platformtheme,qt.force_platformtheme>>|Force a Qt platformtheme to use.
|<<qt.force_software_rendering,qt.force_software_rendering>>|Force software rendering for QtWebEngine.
|<<qt.highdpi,qt.highdpi>>|Turn on Qt HighDPI scaling.
|<<qt.low_end_device_mode,qt.low_end_device_mode>>|When to use Chromium's low-end device mode.
@@ -3036,6 +3037,16 @@ Type: <<types,String>>
Default: empty
+[[qt.force_platformtheme]]
+=== qt.force_platformtheme
+Force a Qt platformtheme to use.
+This sets the `QT_QPA_PLATFORMTHEME` environment variable which controls dialogs like the filepicker. By default, Qt determines the platform theme based on the desktop environment.
+This setting requires a restart.
+
+Type: <<types,String>>
+
+Default: empty
+
[[qt.force_software_rendering]]
=== qt.force_software_rendering
Force software rendering for QtWebEngine.
diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml
index 2d8d37e47..8d157d442 100644
--- a/qutebrowser/config/configdata.yml
+++ b/qutebrowser/config/configdata.yml
@@ -178,6 +178,19 @@ qt.force_platform:
This sets the `QT_QPA_PLATFORM` environment variable and is useful to force
using the XCB plugin when running QtWebEngine on Wayland.
+qt.force_platformtheme:
+ type:
+ name: String
+ none_ok: true
+ default: null
+ restart: true
+ desc: >-
+ Force a Qt platformtheme to use.
+
+ This sets the `QT_QPA_PLATFORMTHEME` environment variable which controls
+ dialogs like the filepicker. By default, Qt determines the platform theme
+ based on the desktop environment.
+
qt.process_model:
type:
name: String
diff --git a/qutebrowser/config/configinit.py b/qutebrowser/config/configinit.py
index e2c359e72..2924efeae 100644
--- a/qutebrowser/config/configinit.py
+++ b/qutebrowser/config/configinit.py
@@ -106,6 +106,8 @@ def _init_envvars() -> None:
if config.val.qt.force_platform is not None:
os.environ['QT_QPA_PLATFORM'] = config.val.qt.force_platform
+ if config.val.qt.force_platformtheme is not None:
+ os.environ['QT_QPA_PLATFORMTHEME'] = config.val.qt.force_platformtheme
if config.val.window.hide_decoration:
os.environ['QT_WAYLAND_DISABLE_WINDOWDECORATION'] = '1'
diff --git a/tests/unit/config/test_configinit.py b/tests/unit/config/test_configinit.py
index 671653b94..9d2843f63 100644
--- a/tests/unit/config/test_configinit.py
+++ b/tests/unit/config/test_configinit.py
@@ -308,6 +308,7 @@ class TestEarlyInit:
('qt.force_software_rendering', 'chromium',
'QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND', '1'),
('qt.force_platform', 'toaster', 'QT_QPA_PLATFORM', 'toaster'),
+ ('qt.force_platformtheme', 'lxde', 'QT_QPA_PLATFORMTHEME', 'lxde'),
('window.hide_decoration', True,
'QT_WAYLAND_DISABLE_WINDOWDECORATION', '1')
])