diff --git a/packages/uhk-agent/src/electron-main.ts b/packages/uhk-agent/src/electron-main.ts index decb2798..c585a689 100644 --- a/packages/uhk-agent/src/electron-main.ts +++ b/packages/uhk-agent/src/electron-main.ts @@ -18,6 +18,7 @@ import { AppService } from './services/app.service'; import { SudoService } from './services/sudo.service'; import { UhkBlhost } from '../../uhk-usb/src'; import * as isDev from 'electron-is-dev'; +import { setMenu } from './electron-menu'; const optionDefinitions = [ {name: 'addons', type: Boolean}, @@ -101,7 +102,7 @@ function createWindow() { }, icon: path.join(__dirname, 'renderer/assets/images/agent-app-icon.png') }); - win.setMenuBarVisibility(false); + setMenu(win); win.maximize(); uhkHidDeviceService = new UhkHidDevice(logger, options); uhkBlhost = new UhkBlhost(logger, packagesDir); diff --git a/packages/uhk-agent/src/electron-menu.ts b/packages/uhk-agent/src/electron-menu.ts new file mode 100644 index 00000000..0672ffa9 --- /dev/null +++ b/packages/uhk-agent/src/electron-menu.ts @@ -0,0 +1,36 @@ +import { app, BrowserWindow, Menu, systemPreferences } from 'electron'; + +export const setMenu = (win: BrowserWindow): void => { + if (process.platform !== 'darwin') { + win.setMenuBarVisibility(false); + + return; + } + + const template = [ + { + label: app.getName(), + submenu: [ + {role: 'quit'} + ] + }, + { + label: 'Edit', + submenu: [ + {role: 'cut'}, + {role: 'copy'}, + {role: 'paste'}, + {role: 'delete'}, + {role: 'selectall'} + ] + } + ]; + + // hide "Start Dictation" submenu item in Edit menu + systemPreferences.setUserDefault('NSDisabledDictationMenuItem', 'boolean', true as any); + // hide "Emoji & Symbols" submenu item in Edit menu + systemPreferences.setUserDefault('NSDisabledCharacterPaletteMenuItem', 'boolean', false as any); + + const menu = Menu.buildFromTemplate(template); + Menu.setApplicationMenu(menu); +};