Allow using an env var on linux for dark mode

This commit is contained in:
Kovid Goyal 2019-12-08 08:50:42 +05:30
parent 9d50e774b9
commit 537fcd9021
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 41 additions and 23 deletions

View File

@ -1009,27 +1009,8 @@ class Application(QApplication):
load_builtin_fonts() load_builtin_fonts()
def set_dark_mode_palette(self): def set_dark_mode_palette(self):
p = self.palette() from calibre.gui2.palette import dark_palette
dark_color = QColor(45,45,45) self.set_palette(dark_palette())
disabled_color = QColor(127,127,127)
p.setColor(p.Window, dark_color)
p.setColor(p.WindowText, Qt.white)
p.setColor(p.Base, QColor(18,18,18))
p.setColor(p.AlternateBase, dark_color)
p.setColor(p.ToolTipBase, Qt.white)
p.setColor(p.ToolTipText, Qt.white)
p.setColor(p.Text, Qt.white)
p.setColor(p.Disabled, p.Text, disabled_color)
p.setColor(p.Button, dark_color)
p.setColor(p.ButtonText, Qt.white)
p.setColor(p.Disabled, p.ButtonText, disabled_color)
p.setColor(p.BrightText, Qt.red)
p.setColor(p.Link, QColor(42, 130, 218))
p.setColor(p.Highlight, QColor(42, 130, 218))
p.setColor(p.HighlightedText, Qt.black)
p.setColor(p.Disabled, p.HighlightedText, disabled_color)
self.set_palette(p)
def setup_styles(self, force_calibre_style): def setup_styles(self, force_calibre_style):
if iswindows or isosx: if iswindows or isosx:
@ -1038,8 +1019,14 @@ class Application(QApplication):
using_calibre_style = os.environ.get('CALIBRE_USE_SYSTEM_THEME', '0') == '0' using_calibre_style = os.environ.get('CALIBRE_USE_SYSTEM_THEME', '0') == '0'
if force_calibre_style: if force_calibre_style:
using_calibre_style = True using_calibre_style = True
if iswindows and windows_is_system_dark_mode_enabled() and using_calibre_style: if using_calibre_style:
self.set_dark_mode_palette() use_dark_palette = False
if iswindows:
use_dark_palette = windows_is_system_dark_mode_enabled()
elif not isosx:
use_dark_palette = os.environ.get('CALIBRE_USE_DARK_PALETTE') == '1'
if use_dark_palette:
self.set_dark_mode_palette()
self.using_calibre_style = using_calibre_style self.using_calibre_style = using_calibre_style
if DEBUG: if DEBUG:

View File

@ -0,0 +1,31 @@
#!/usr/bin/env python2
# vim:fileencoding=utf-8
# License: GPL v3 Copyright: 2019, Kovid Goyal <kovid at kovidgoyal.net>
from __future__ import absolute_import, division, print_function, unicode_literals
from PyQt5.Qt import QColor, QPalette, Qt
def dark_palette():
p = QPalette()
dark_color = QColor(45,45,45)
disabled_color = QColor(127,127,127)
p.setColor(p.Window, dark_color)
p.setColor(p.WindowText, Qt.white)
p.setColor(p.Base, QColor(18,18,18))
p.setColor(p.AlternateBase, dark_color)
p.setColor(p.ToolTipBase, Qt.white)
p.setColor(p.ToolTipText, Qt.white)
p.setColor(p.Text, Qt.white)
p.setColor(p.Disabled, p.Text, disabled_color)
p.setColor(p.Button, dark_color)
p.setColor(p.ButtonText, Qt.white)
p.setColor(p.Disabled, p.ButtonText, disabled_color)
p.setColor(p.BrightText, Qt.red)
p.setColor(p.Link, QColor(42, 130, 218))
p.setColor(p.Highlight, QColor(42, 130, 218))
p.setColor(p.HighlightedText, Qt.black)
p.setColor(p.Disabled, p.HighlightedText, disabled_color)
return p