From ac284501e7a48ee92c46a57ecc8733358b2deed8 Mon Sep 17 00:00:00 2001 From: Ryan Cao <70191398+ryanccn@users.noreply.github.com> Date: Sat, 8 Jul 2023 13:59:31 +0800 Subject: [PATCH] feat: use inset title bar style on macOS --- src/main/mainWindow.ts | 1 + src/renderer/patches/index.ts | 1 + src/renderer/patches/platformClass.tsx | 30 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 src/renderer/patches/platformClass.tsx diff --git a/src/main/mainWindow.ts b/src/main/mainWindow.ts index 65f2c46..903e845 100644 --- a/src/main/mainWindow.ts +++ b/src/main/mainWindow.ts @@ -290,6 +290,7 @@ function createMainWindow() { backgroundColor: "#ffffff00" } : {}), + ...(process.platform === "darwin" ? { titleBarStyle: "hiddenInset" } : {}), ...getWindowBoundsOptions() })); win.setMenuBarVisibility(false); diff --git a/src/renderer/patches/index.ts b/src/renderer/patches/index.ts index 997788a..9207728 100644 --- a/src/renderer/patches/index.ts +++ b/src/renderer/patches/index.ts @@ -6,3 +6,4 @@ // TODO: Possibly auto generate glob if we have more patches in the future import "./spellCheck"; +import "./platformClass"; diff --git a/src/renderer/patches/platformClass.tsx b/src/renderer/patches/platformClass.tsx new file mode 100644 index 0000000..62a37e0 --- /dev/null +++ b/src/renderer/patches/platformClass.tsx @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: GPL-3.0 + * Vencord Desktop, a desktop app aiming to give you a snappier Discord Experience + * Copyright (c) 2023 Vendicated and Vencord contributors + */ + +import { addPatch } from "./shared"; + +addPatch({ + patches: [ + { + find: "platform-web", + replacement: { + // eslint-disable-next-line no-useless-escape + match: /return (?=__OVERLAY__\?""\.concat\((\i))/, + replace: "$1=$self.getPlatformClass(); return " + } + } + ], + + getPlatformClass() { + const platform = navigator.platform.toLowerCase(); + + if (platform.includes("mac")) return "platform-osx"; + if (platform.includes("win")) return "platform-win"; + if (platform.includes("linux")) return "platform-linux"; + + return "platform-web"; + } +});