summaryrefslogtreecommitdiffhomepage
path: root/gui/src/main/user-interface.ts
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2023-01-30 12:17:28 +0100
committerDavid Lönnhager <david.l@mullvad.net>2023-02-01 17:38:39 +0100
commit820bcbf9bd3db7cae550af08fb384ff30696f0f8 (patch)
tree85d23dc2157f87ddbe28a8c2fca18e74d03d7829 /gui/src/main/user-interface.ts
parent669f92d79a97b4de52c250189b916298a4b2570f (diff)
downloadmullvadvpn-820bcbf9bd3db7cae550af08fb384ff30696f0f8.tar.xz
mullvadvpn-820bcbf9bd3db7cae550af08fb384ff30696f0f8.zip
Add 'Go to System Settings' button to launch view
Diffstat (limited to 'gui/src/main/user-interface.ts')
-rw-r--r--gui/src/main/user-interface.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/gui/src/main/user-interface.ts b/gui/src/main/user-interface.ts
index 88922f3f75..78af002c58 100644
--- a/gui/src/main/user-interface.ts
+++ b/gui/src/main/user-interface.ts
@@ -1,6 +1,8 @@
+import { exec } from 'child_process';
import { app, BrowserWindow, dialog, Menu, nativeImage, screen, Tray } from 'electron';
import path from 'path';
import { sprintf } from 'sprintf-js';
+import { promisify } from 'util';
import { closeToExpiry, hasExpired } from '../shared/account-expiry';
import { connectEnabled, disconnectEnabled, reconnectEnabled } from '../shared/connect-helper';
@@ -20,6 +22,8 @@ import { isMacOs11OrNewer } from './platform-version';
import TrayIconController, { TrayIconType } from './tray-icon-controller';
import WindowController, { WindowControllerDelegate } from './window-controller';
+const execAsync = promisify(exec);
+
export interface UserInterfaceDelegate {
cancelPendingNotifications(): void;
resetTunnelStateAnnouncements(): void;
@@ -69,6 +73,16 @@ export default class UserInterface implements WindowControllerDelegate {
this.browsingFiles = false;
return response;
});
+
+ IpcMainEventChannel.app.handleShowLaunchDaemonSettings(async () => {
+ try {
+ await execAsync(
+ 'open -W x-apple.systempreferences:com.apple.LoginItems-Settings.extension',
+ );
+ } catch (error) {
+ log.error(`Failed to open launch daemon settings: ${error}`);
+ }
+ });
}
public createTrayIconController(