diff --git a/src/main/tray.ts b/src/main/tray.ts index 10e5689..f5aebe4 100644 --- a/src/main/tray.ts +++ b/src/main/tray.ts @@ -4,7 +4,7 @@ * Copyright (c) 2023 Vendicated and Vencord contributors */ -import { dialog, NativeImage, nativeImage } from "electron"; +import { dialog, NativeImage, nativeImage, nativeTheme } from "electron"; import { mkdirSync, readFileSync, writeFileSync } from "fs"; import { readFile } from "fs/promises"; import { join } from "path"; @@ -185,3 +185,7 @@ export async function pickTrayIcon(iconName: string) { export async function getIconWithBadge(dataURL: string) { tray.setImage(nativeImage.createFromDataURL(dataURL)); } + +nativeTheme.on("updated", () => { + generateTrayIcons(); +}); diff --git a/src/renderer/patches/tray.ts b/src/renderer/patches/tray.ts index 746461f..50784d8 100644 --- a/src/renderer/patches/tray.ts +++ b/src/renderer/patches/tray.ts @@ -32,8 +32,10 @@ function changeColorsInSvg(svg: string, stockColor: string) { const fillColor = VesktopNative.settings.get().trayAutoFill ?? "auto"; const reg = new RegExp(stockColor, "gim"); svg = svg.replace(reg, "#" + (pickedColor ?? stockColor)); - if (fillColor !== "auto") { + + if (fillColor === "white") { svg = svg.replace(/black/gim, fillColor); + } else if (fillColor === "black") { svg = svg.replace(/white/gim, fillColor); } return svg;