add multi instance

This commit is contained in:
smartfrigde 2023-08-20 21:14:26 +02:00
parent 5ec56c8cc1
commit 831d45dc45
7 changed files with 44 additions and 6 deletions

View file

@ -7,6 +7,7 @@ import {
checkIfConfigExists,
firstRun,
getConfig,
getConfigSync,
injectElectronFlags,
installModLoader,
modInstallState,
@ -54,10 +55,12 @@ async function args(): Promise<void> {
}
}
args(); // i want my top level awaits
if (!app.requestSingleInstanceLock()) {
if (!app.requestSingleInstanceLock() && getConfigSync("multiInstance") == (false ?? undefined)) {
// if value isn't set after 3.2.4
// kill if 2nd instance
app.quit();
} else {
app.commandLine.appendSwitch("disable-features", "WidgetLayering"); // fix dev tools layers
// Your data now belongs to CCP
crashReporter.start({uploadToServer: false});
// enable webrtc capturer for wayland

View file

@ -80,6 +80,14 @@
</div>
<br />
<div class="switch acMultiInstance">
<label class="header" data-string="settings-MultiInstance"></label>
<input id="mInstance" class="tgl tgl-light left" data-setting="multiInstance" type="checkbox" />
<label class="tgl-btn left" for="mInstance"></label>
<p class="description" data-string="settings-MultiInstance-desc"></p>
</div>
<br />
<div class="switch acWebsocket">
<label class="header" data-string="settings-invitewebsocket"></label>
<input id="websocket" class="tgl tgl-light left" data-setting="inviteWebsocket" type="checkbox" />

View file

@ -140,6 +140,7 @@
disableAutogain: false,
mods: options.mod,
dynamicIcon: false,
multiInstance: false,
useLegacyCapturer: false,
tray: /true/i.test(document.getElementById("tray").value),
startMinimized: false,

View file

@ -46,6 +46,7 @@ export function setup(): void {
automaticPatches: false,
keybinds: [],
alternativePaste: false,
multiInstance: false,
mods: "none",
spellcheck: true,
performanceMode: "none",
@ -253,6 +254,7 @@ export interface Settings {
minimizeToTray: boolean;
automaticPatches: boolean;
alternativePaste: boolean;
multiInstance: boolean;
spellcheck: boolean;
mods: string;
dynamicIcon: boolean;
@ -282,6 +284,12 @@ export async function getConfig<K extends keyof Settings>(object: K): Promise<Se
console.log(`[Config manager] ${object}: ${returndata[object]}`);
return returndata[object];
}
export function getConfigSync<K extends keyof Settings>(object: K) {
let rawdata = fs.readFileSync(getConfigLocation(), "utf-8");
let returndata = JSON.parse(rawdata);
console.log(`[Config manager] ${object}: ${returndata[object]}`);
return returndata[object];
}
export async function setConfig<K extends keyof Settings>(object: K, toSet: Settings[K]): Promise<void> {
let rawdata = fs.readFileSync(getConfigLocation(), "utf-8");
let parsed = JSON.parse(rawdata);