diff --git a/src/main/mainWindow.ts b/src/main/mainWindow.ts
index e646412..37fc9fd 100644
--- a/src/main/mainWindow.ts
+++ b/src/main/mainWindow.ts
@@ -246,7 +246,7 @@ export function createMainWindow() {
}));
win.on("close", e => {
- if (isQuitting || Settings.store.minimizeToTray === false) return;
+ if (isQuitting || Settings.store.minimizeToTray === false || Settings.store.tray === false) return;
e.preventDefault();
win.hide();
@@ -255,7 +255,7 @@ export function createMainWindow() {
});
initWindowBoundsListeners(win);
- if (Settings.tray !== false) initTray(win);
+ if (Settings.store.tray ?? true) initTray(win);
initMenuBar(win);
makeLinksOpenExternally(win);
initSettingsListeners(win);
diff --git a/src/renderer/components/Settings.tsx b/src/renderer/components/Settings.tsx
index 0e488de..7fcfd8c 100644
--- a/src/renderer/components/Settings.tsx
+++ b/src/renderer/components/Settings.tsx
@@ -21,7 +21,7 @@ export default function SettingsUi() {
Button
} = Common;
- const switches: [keyof typeof Settings, string, string, boolean?][] = [
+ const switches: [keyof typeof Settings, string, string, boolean?, (() => boolean)?][] = [
[
"tray",
"Use tray",
@@ -32,7 +32,8 @@ export default function SettingsUi() {
"minimizeToTray",
"Minimize to tray",
"Hitting X will make Vencord Desktop minimize to the tray instead of closing",
- true
+ true,
+ () => Settings["tray"] ?? true
],
[
"disableMinSize",
@@ -68,9 +69,10 @@ export default function SettingsUi() {
- {switches.map(([key, text, note, def]) => (
+ {switches.map(([key, text, note, def, predicate]) => (
(Settings[key] = v)}
note={note}
key={key}