Compare commits

...

3 commits

Author SHA1 Message Date
Lewis Crichton
bb09596485
chore: prep for flatpak 2023-12-09 23:09:54 +00:00
Lewis Crichton
894ec4b902
chore: lint 2023-12-09 23:01:35 +00:00
Lewis Crichton
dd44602730
fix: make minimize only run on autostart 2023-12-09 23:00:47 +00:00
2 changed files with 23 additions and 9 deletions

View file

@ -10,38 +10,51 @@ import { join } from "path";
interface AutoStart {
isEnabled(): boolean;
wasAutoStarted(): boolean;
enable(): void;
disable(): void;
}
const isFlatpak = process.env.FLATPAK_ID !== undefined;
function makeAutoStartLinux(): AutoStart {
const configDir = process.env.XDG_CONFIG_HOME || join(process.env.HOME!, ".config");
const dir = join(configDir, "autostart");
const file = join(dir, "vencord.desktop");
return {
isEnabled: () => existsSync(file),
isEnabled: () => existsSync(file), // TODO: flatpak
wasAutoStarted: () => process.argv.includes("--autostart"),
enable() {
const desktopFile = `
if (isFlatpak) {
} else {
const desktopFile = `
[Desktop Entry]
Type=Application
Version=1.0
Name=Vencord
Comment=Vencord autostart script
Exec=${process.execPath}
Exec=${process.execPath} --autostart
Terminal=false
StartupNotify=false
`.trim();
mkdirSync(dir, { recursive: true });
writeFileSync(file, desktopFile);
mkdirSync(dir, { recursive: true });
writeFileSync(file, desktopFile);
}
},
disable: () => rmSync(file, { force: true })
disable: () => {
if (isFlatpak) {
} else {
rmSync(file, { force: true });
}
}
};
}
const autoStartWindowsMac: AutoStart = {
isEnabled: () => app.getLoginItemSettings().openAtLogin,
wasAutoStarted: () => app.getLoginItemSettings().wasOpenedAtLogin,
enable: () => app.setLoginItemSettings({ openAtLogin: true }),
disable: () => app.setLoginItemSettings({ openAtLogin: false })
};

View file

@ -24,6 +24,7 @@ import type { SettingsStore } from "shared/utils/SettingsStore";
import { ICON_PATH } from "../shared/paths";
import { createAboutWindow } from "./about";
import { initArRPC } from "./arrpc";
import { autoStart } from "./autoStart";
import {
DATA_DIR,
DEFAULT_HEIGHT,
@ -442,8 +443,8 @@ function createMainWindow() {
const runVencordMain = once(() => require(join(VENCORD_FILES_DIR, "vencordDesktopMain.js")));
export async function createWindows() {
const { startMinimized } = Settings.store;
const splash = createSplashWindow(startMinimized);
const shouldStartMinimized = Settings.store.startMinimized && autoStart.wasAutoStarted();
const splash = createSplashWindow(shouldStartMinimized);
// SteamOS letterboxes and scales it terribly, so just full screen it
if (isDeckGameMode) splash.setFullScreen(true);
await ensureVencordFiles();
@ -454,7 +455,7 @@ export async function createWindows() {
mainWin.webContents.on("did-finish-load", () => {
splash.destroy();
if (!startMinimized || isDeckGameMode) mainWin!.show();
if (!shouldStartMinimized || isDeckGameMode) mainWin!.show();
if (isDeckGameMode) {
// always use entire display