add nord and olivial themes (#7)

* add nord and olivial themes

* made the selected keycap color the accent color instead of white

* rename olivial to olivia

* fix active key text not showing issue
main
Patryk 2021-01-12 23:12:01 +00:00 committed by GitHub
parent e4c0f7acdf
commit deb2628747
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 60 additions and 3 deletions

View File

@ -237,10 +237,10 @@ class KeyboardWidget(QWidget):
# for currently selected keycap
active_pen = qp.pen()
active_pen.setColor(QApplication.palette().color(QPalette.Button))
active_pen.setColor(QApplication.palette().color(QPalette.HighlightedText))
active_brush = QBrush()
active_brush.setColor(QApplication.palette().color(QPalette.ButtonText))
active_brush.setColor(QApplication.palette().color(QPalette.Highlight))
active_brush.setStyle(Qt.SolidPattern)
mask_font = qp.font()

View File

@ -149,13 +149,23 @@ class MainWindow(QMainWindow):
theme_set_dark.triggered.connect(lambda: self.set_theme("dark"))
theme_set_arc = QAction(tr("MenuTheme", "Arc"), self)
theme_set_arc.triggered.connect(lambda: self.set_theme("arc"))
theme_set_arc.triggered.connect(lambda: self.set_theme("arc"))
theme_set_nord = QAction(tr("MenuTheme", "Nord"), self)
theme_set_nord.triggered.connect(lambda: self.set_theme("nord"))
theme_set_olivia = QAction(tr("MenuTheme", "Olivia"), self)
theme_set_olivia.triggered.connect(lambda: self.set_theme("olivia"))
self.theme_menu = self.menuBar().addMenu(tr("Menu", "Theme"))
self.theme_menu.addAction(theme_set_default)
self.theme_menu.addAction(theme_set_light)
self.theme_menu.addAction(theme_set_dark)
self.theme_menu.addAction(theme_set_arc)
self.theme_menu.addAction(theme_set_nord)
self.theme_menu.addAction(theme_set_olivia)
def on_layout_load(self):
dialog = QFileDialog()

View File

@ -45,6 +45,47 @@ arc_palette.setColor(QPalette.Disabled, QPalette.Text, QColor("#d3dae3"))
arc_palette.setColor(QPalette.Disabled, QPalette.Light, QColor("#404552"))
nord_palette = QPalette()
nord_palette.setColor(QPalette.Window, QColor("#2e3440"))
nord_palette.setColor(QPalette.WindowText, QColor("#eceff4"))
nord_palette.setColor(QPalette.Base, QColor("#2e3440"))
nord_palette.setColor(QPalette.AlternateBase, QColor("#434c5e"))
nord_palette.setColor(QPalette.ToolTipBase, QColor("#4c566a"))
nord_palette.setColor(QPalette.ToolTipText, QColor("#eceff4"))
nord_palette.setColor(QPalette.Text, QColor("#eceff4"))
nord_palette.setColor(QPalette.Button, QColor("#2e3440"))
nord_palette.setColor(QPalette.ButtonText, QColor("#eceff4"))
nord_palette.setColor(QPalette.BrightText, QColor("#88c0d0"))
nord_palette.setColor(QPalette.Link, QColor("#88c0d0"))
nord_palette.setColor(QPalette.Highlight, QColor("#88c0d0"))
nord_palette.setColor(QPalette.HighlightedText, QColor("#eceff4"))
nord_palette.setColor(QPalette.Active, QPalette.Button, QColor("#2e3440"))
nord_palette.setColor(QPalette.Disabled, QPalette.ButtonText, QColor("#eceff4"))
nord_palette.setColor(QPalette.Disabled, QPalette.WindowText, QColor("#eceff4"))
nord_palette.setColor(QPalette.Disabled, QPalette.Text, QColor("#eceff4"))
nord_palette.setColor(QPalette.Disabled, QPalette.Light, QColor("#88c0d0"))
olivia_palette = QPalette()
olivia_palette.setColor(QPalette.Window, QColor("#181818"))
olivia_palette.setColor(QPalette.WindowText, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.Base, QColor("#181818"))
olivia_palette.setColor(QPalette.AlternateBase, QColor("#2c2c2c"))
olivia_palette.setColor(QPalette.ToolTipBase, QColor("#363636 "))
olivia_palette.setColor(QPalette.ToolTipText, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.Text, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.Button, QColor("#181818"))
olivia_palette.setColor(QPalette.ButtonText, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.BrightText, QColor("#fabcad"))
olivia_palette.setColor(QPalette.Link, QColor("#fabcad"))
olivia_palette.setColor(QPalette.Highlight, QColor("#fabcad"))
olivia_palette.setColor(QPalette.HighlightedText, QColor("#2c2c2c"))
olivia_palette.setColor(QPalette.Active, QPalette.Button, QColor("#181818"))
olivia_palette.setColor(QPalette.Disabled, QPalette.ButtonText, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.Disabled, QPalette.WindowText, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.Disabled, QPalette.Text, QColor("#d9d9d9"))
olivia_palette.setColor(QPalette.Disabled, QPalette.Light, QColor("#fabcad"))
def set_theme(theme):
if theme == "light":
QApplication.setPalette(QApplication.style().standardPalette())
@ -55,5 +96,11 @@ def set_theme(theme):
elif theme == "arc":
QApplication.setPalette(arc_palette)
QApplication.setStyle("Fusion")
elif theme == "nord":
QApplication.setPalette(nord_palette)
QApplication.setStyle("Fusion")
elif theme == "olivia":
QApplication.setPalette(olivia_palette)
QApplication.setStyle("Fusion")
# For default/system theme, do nothing
# User will have to restart the application for it to be applied