Autorun open single instance of app

This commit is contained in:
Natsumi
2025-08-23 12:27:51 +12:00
parent 6a3b0cd24a
commit ae30ad978b
6 changed files with 58 additions and 7 deletions

View File

@@ -631,7 +631,8 @@
"folder": "Auto-Launch Folder",
"folder_tooltip": "To auto-launch apps with VRChat, place shortcuts in this folder.",
"enable": "Enable",
"auto_close": "Auto close apps"
"auto_close": "Auto close apps",
"run_process_once": "Open single instance of app"
},
"cache_debug": {
"header": "VRCX Instance Cache/Debug",

View File

@@ -25,6 +25,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
avatarRemoteDatabase: true,
enableAppLauncher: true,
enableAppLauncherAutoClose: true,
enableAppLauncherRunProcessOnce: true,
screenshotHelper: true,
screenshotHelperModifyFilename: false,
screenshotHelperCopyToClipboard: false,
@@ -58,6 +59,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
avatarRemoteDatabase,
enableAppLauncher,
enableAppLauncherAutoClose,
enableAppLauncherRunProcessOnce,
screenshotHelper,
screenshotHelperModifyFilename,
screenshotHelperCopyToClipboard,
@@ -84,6 +86,10 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
configRepository.getBool('VRCX_avatarRemoteDatabase', true),
configRepository.getBool('VRCX_enableAppLauncher', true),
configRepository.getBool('VRCX_enableAppLauncherAutoClose', true),
configRepository.getBool(
'VRCX_enableAppLauncherRunProcessOnce',
true
),
configRepository.getBool('VRCX_screenshotHelper', true),
configRepository.getBool(
'VRCX_screenshotHelperModifyFilename',
@@ -120,6 +126,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
state.avatarRemoteDatabase = avatarRemoteDatabase;
state.enableAppLauncher = enableAppLauncher;
state.enableAppLauncherAutoClose = enableAppLauncherAutoClose;
state.enableAppLauncherRunProcessOnce = enableAppLauncherRunProcessOnce;
state.screenshotHelper = screenshotHelper;
state.screenshotHelperModifyFilename = screenshotHelperModifyFilename;
state.screenshotHelperCopyToClipboard = screenshotHelperCopyToClipboard;
@@ -167,6 +174,9 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
const enableAppLauncherAutoClose = computed(
() => state.enableAppLauncherAutoClose
);
const enableAppLauncherRunProcessOnce = computed(
() => state.enableAppLauncherRunProcessOnce
);
const screenshotHelper = computed(() => state.screenshotHelper);
``;
const screenshotHelperModifyFilename = computed(
@@ -280,6 +290,15 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
);
handleSetAppLauncherSettings();
}
async function setEnableAppLauncherRunProcessOnce() {
state.enableAppLauncherRunProcessOnce =
!state.enableAppLauncherRunProcessOnce;
await configRepository.setBool(
'VRCX_enableAppLauncherRunProcessOnce',
state.enableAppLauncherRunProcessOnce
);
handleSetAppLauncherSettings();
}
async function setScreenshotHelper() {
state.screenshotHelper = !state.screenshotHelper;
await configRepository.setBool(
@@ -440,7 +459,8 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
function handleSetAppLauncherSettings() {
AppApi.SetAppLauncherSettings(
state.enableAppLauncher,
state.enableAppLauncherAutoClose
state.enableAppLauncherAutoClose,
state.enableAppLauncherRunProcessOnce
);
}
@@ -678,6 +698,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
avatarRemoteDatabase,
enableAppLauncher,
enableAppLauncherAutoClose,
enableAppLauncherRunProcessOnce,
screenshotHelper,
screenshotHelperModifyFilename,
screenshotHelperCopyToClipboard,
@@ -707,6 +728,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
setAvatarRemoteDatabase,
setEnableAppLauncher,
setEnableAppLauncherAutoClose,
setEnableAppLauncherRunProcessOnce,
setScreenshotHelper,
setScreenshotHelperModifyFilename,
setScreenshotHelperCopyToClipboard,

View File

@@ -197,7 +197,8 @@ declare global {
GetColourBulk(userIds: string[]): Promise<Record<string, number>>;
SetAppLauncherSettings(
enabled: boolean,
killOnExit: boolean
killOnExit: boolean,
runProcessOnce: boolean
): Promise<void>;
GetFileBase64(path: string): Promise<string | null>;

View File

@@ -1521,6 +1521,11 @@
:value="enableAppLauncherAutoClose"
:long-label="true"
@change="setEnableAppLauncherAutoClose" />
<simple-switch
:label="t('view.settings.advanced.advanced.app_launcher.run_process_once')"
:value="enableAppLauncherRunProcessOnce"
:long-label="true"
@change="setEnableAppLauncherRunProcessOnce" />
</div>
</template>
@@ -2118,6 +2123,7 @@
avatarRemoteDatabase,
enableAppLauncher,
enableAppLauncherAutoClose,
enableAppLauncherRunProcessOnce,
screenshotHelper,
screenshotHelperModifyFilename,
screenshotHelperCopyToClipboard,
@@ -2143,6 +2149,7 @@
setAvatarRemoteDatabase,
setEnableAppLauncher,
setEnableAppLauncherAutoClose,
setEnableAppLauncherRunProcessOnce,
setScreenshotHelper,
setScreenshotHelperModifyFilename,
setScreenshotHelperCopyToClipboard,