diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index a3aaa9bd..908e2440 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1,5 +1,5 @@ import { join } from "path"; -import { app, BrowserWindow as bw, ipcMain, ShareMenu, shell, screen, dialog } from "electron"; +import { app, BrowserWindow as bw, ipcMain, ShareMenu, shell, screen, dialog, nativeTheme } from "electron"; import * as windowStateKeeper from "electron-window-state"; import * as express from "express"; import * as getPort from "get-port"; @@ -441,6 +441,8 @@ export class BrowserWindow { this.options.hasShadow = true; break; } + + nativeTheme.themeSource = utils.getStoreValue("visual.overrideDisplayTheme") // Start the webserver for the browser window to load // LocalFiles.DB.init() @@ -1138,6 +1140,11 @@ export class BrowserWindow { BrowserWindow.win.setBounds({ x, y }); }); + // Override light, dark + ipcMain.on("changeDisplayTheme", (event, theme) => { + nativeTheme.themeSource = theme + }); + //Fullscreen ipcMain.on("setFullScreen", (_event, flag) => { BrowserWindow.win.setFullScreen(flag); diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 223c3e37..64ebbd81 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -200,6 +200,7 @@ export class Store { accentColor: "#fc3c44", purplePodcastPlaybackBar: false, maxElementScale: -1, // -1 default, anything else is a custom scale + overrideDisplayTheme : "system" // system , dark, light }, lyrics: { enable_mxm: true, diff --git a/src/renderer/views/components/settings-window.ejs b/src/renderer/views/components/settings-window.ejs index dde7df2d..41eb60da 100644 --- a/src/renderer/views/components/settings-window.ejs +++ b/src/renderer/views/components/settings-window.ejs @@ -471,6 +471,22 @@ +