From 10fd51071e90c47b6cd0041fb1260ea284864905 Mon Sep 17 00:00:00 2001 From: Nick Date: Thu, 12 Jan 2023 17:48:37 -0500 Subject: [PATCH] feat: Add option to disable the window frame (#400) Co-authored-by: Ven --- src/api/settings.ts | 2 ++ src/components/VencordSettings/VencordTab.tsx | 6 ++++++ src/patcher.ts | 9 +++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/api/settings.ts b/src/api/settings.ts index 2617903a..384647c5 100644 --- a/src/api/settings.ts +++ b/src/api/settings.ts @@ -30,6 +30,7 @@ export interface Settings { useQuickCss: boolean; enableReactDevtools: boolean; themeLinks: string[]; + frameless: boolean; plugins: { [plugin: string]: { enabled: boolean; @@ -43,6 +44,7 @@ const DefaultSettings: Settings = { useQuickCss: true, themeLinks: [], enableReactDevtools: false, + frameless: false, plugins: {} }; diff --git a/src/components/VencordSettings/VencordTab.tsx b/src/components/VencordSettings/VencordTab.tsx index e59c4499..9429cddc 100644 --- a/src/components/VencordSettings/VencordTab.tsx +++ b/src/components/VencordSettings/VencordTab.tsx @@ -106,6 +106,12 @@ function VencordSettings() { note="Shows a toast on startup"> Get notified about new updates + settings.frameless = v} + note="Requires a full restart"> + Disable the window frame + )} diff --git a/src/patcher.ts b/src/patcher.ts index 96cb23ca..4369782c 100644 --- a/src/patcher.ts +++ b/src/patcher.ts @@ -65,12 +65,18 @@ if (!process.argv.includes("--vanilla")) { }; } + let settings = {} as any; + try { + settings = JSON.parse(readSettings()); + } catch { } + class BrowserWindow extends electron.BrowserWindow { constructor(options: BrowserWindowConstructorOptions) { if (options?.webPreferences?.preload && options.title) { const original = options.webPreferences.preload; options.webPreferences.preload = join(__dirname, "preload.js"); options.webPreferences.sandbox = false; + options.frame = settings.frameless; process.env.DISCORD_PRELOAD = original; @@ -118,8 +124,7 @@ if (!process.argv.includes("--vanilla")) { }); try { - const settings = JSON.parse(readSettings()); - if (settings.enableReactDevtools) + if (settings?.enableReactDevtools) installExt("fmkadmapgofadopljbjfkapdkoienihi") .then(() => console.info("[Vencord] Installed React Developer Tools")) .catch(err => console.error("[Vencord] Failed to install React Developer Tools", err));