43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
|
/*
|
||
|
* 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 { app } from "electron";
|
||
|
import { existsSync, mkdirSync, rmSync, writeFileSync } from "fs";
|
||
|
import { join } from "path";
|
||
|
|
||
|
function makeAutoStartLinux() {
|
||
|
const dir = join(process.env.HOME!, ".config", "autostart");
|
||
|
const file = join(dir, "vencord.desktop");
|
||
|
|
||
|
return {
|
||
|
isEnabled: () => existsSync(file),
|
||
|
enable() {
|
||
|
const desktopFile = `
|
||
|
[Desktop Entry]
|
||
|
Type=Application
|
||
|
Version=1.0
|
||
|
Name=Vencord
|
||
|
Comment=Vencord autostart script
|
||
|
Exec=${process.execPath}
|
||
|
Terminal=false
|
||
|
StartupNotify=false
|
||
|
`.trim();
|
||
|
|
||
|
mkdirSync(dir, { recursive: true });
|
||
|
writeFileSync(file, desktopFile);
|
||
|
},
|
||
|
disable: () => rmSync(file, { force: true })
|
||
|
};
|
||
|
}
|
||
|
|
||
|
const autoStartWindowsMac = {
|
||
|
isEnabled: () => app.getLoginItemSettings().openAtLogin,
|
||
|
enable: () => app.setLoginItemSettings({ openAtLogin: true }),
|
||
|
disable: () => app.setLoginItemSettings({ openAtLogin: false })
|
||
|
};
|
||
|
|
||
|
export const autoStart = process.platform === "linux" ? makeAutoStartLinux() : autoStartWindowsMac;
|