diff --git a/src/utils/main.ts b/src/utils/main.ts index 0ea65aa69..f7b303751 100644 --- a/src/utils/main.ts +++ b/src/utils/main.ts @@ -61,8 +61,8 @@ export function setupMacWindowOnDockIconClick() { }); } -export function setupMainMenu() { - Menu.setApplicationMenu(buildMenuBar()); +export async function setupMainMenu() { + Menu.setApplicationMenu(await buildMenuBar()); } export function setupMainHotReload() { diff --git a/src/utils/menu.ts b/src/utils/menu.ts index a1c58df8d..8b1e67c8a 100644 --- a/src/utils/menu.ts +++ b/src/utils/menu.ts @@ -7,6 +7,7 @@ import { } from 'electron'; import { isUpdateAvailable, setIsAppQuitting } from '../main'; import { showUpdateDialog } from './appUpdater'; +import autoLauncher from './autoLauncher'; const isMac = process.platform === 'darwin'; @@ -92,7 +93,9 @@ export function buildContextMenu( return contextMenu; } -export function buildMenuBar(): Menu { +export async function buildMenuBar(): Promise { + const isAutoLaunchEnabled = await autoLauncher.isEnabled(); + let latestValue = isAutoLaunchEnabled; const template: MenuItemConstructorOptions[] = [ { label: 'ente', @@ -105,6 +108,22 @@ export function buildMenuBar(): Menu { }, ] : []) as MenuItemConstructorOptions[]), + { type: 'separator' }, + { + label: 'Preferences', + submenu: [ + { + label: 'Open ente on startup', + type: 'checkbox', + checked: latestValue, + click: () => { + autoLauncher.toggleAutoLaunch(); + latestValue = !latestValue; + }, + }, + ], + }, + { type: 'separator' }, ...((isMac ? [ {