diff --git a/src/api/settings.ts b/src/api/settings.ts index 2617903a5..384647c53 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 e59c44991..9429cddc5 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 96cb23ca2..4369782c2 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));