feat: Add option to disable the window frame (#400)

Co-authored-by: Ven <vendicated@riseup.net>
This commit is contained in:
Nick 2023-01-12 17:48:37 -05:00 committed by GitHub
parent e70abc57b6
commit 10fd51071e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 2 deletions

View File

@ -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: {}
};

View File

@ -106,6 +106,12 @@ function VencordSettings() {
note="Shows a toast on startup">
Get notified about new updates
</Switch>
<Switch
value={settings.frameless}
onChange={(v: boolean) => settings.frameless = v}
note="Requires a full restart">
Disable the window frame
</Switch>
</React.Fragment>
)}

View File

@ -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));