diff --git a/ui/desktop/src/main.ts b/ui/desktop/src/main.ts index 29fe8ec6..42c69496 100644 --- a/ui/desktop/src/main.ts +++ b/ui/desktop/src/main.ts @@ -426,96 +426,91 @@ app.whenReady().then(async () => { }) ); - fileMenu.submenu.append( - new MenuItem({ - label: 'Install MCP Extension', - accelerator: 'Shift+Command+Y', - click() { - const defaultUrl = - 'goose://extension?cmd=npx&arg=-y&arg=%40modelcontextprotocol%2Fserver-github&id=github&name=GitHub&description=Repository%20management%2C%20file%20operations%2C%20and%20GitHub%20API%20integration&env=GITHUB_TOKEN%3DGitHub%20personal%20access%20token'; + // Register global shortcut for Install MCP Extension + globalShortcut.register('Shift+Command+Y', () => { + const defaultUrl = + 'goose://extension?cmd=npx&arg=-y&arg=%40modelcontextprotocol%2Fserver-github&id=github&name=GitHub&description=Repository%20management%2C%20file%20operations%2C%20and%20GitHub%20API%20integration&env=GITHUB_TOKEN%3DGitHub%20personal%20access%20token'; - const result = dialog.showMessageBoxSync({ - type: 'question', - buttons: ['Install', 'Edit URL', 'Cancel'], - defaultId: 0, - cancelId: 2, - title: 'Install MCP Extension', - message: 'Install MCP Extension', - detail: `Current extension URL:\n\n${defaultUrl}`, - }); + const result = dialog.showMessageBoxSync({ + type: 'question', + buttons: ['Install', 'Edit URL', 'Cancel'], + defaultId: 0, + cancelId: 2, + title: 'Install MCP Extension', + message: 'Install MCP Extension', + detail: `Current extension URL:\n\n${defaultUrl}`, + }); - if (result === 0) { - // User clicked Install - const mockEvent = { - preventDefault: () => { - console.log('Default handling prevented.'); - }, - }; - app.emit('open-url', mockEvent, defaultUrl); - } else if (result === 1) { - // User clicked Edit URL - // Create a simple input dialog - const win = new BrowserWindow({ - width: 800, - height: 120, - frame: false, - transparent: false, - resizable: false, - minimizable: false, - maximizable: false, - parent: BrowserWindow.getFocusedWindow(), - modal: true, - show: false, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - }); + if (result === 0) { + // User clicked Install + const mockEvent = { + preventDefault: () => { + console.log('Default handling prevented.'); + }, + }; + app.emit('open-url', mockEvent, defaultUrl); + } else if (result === 1) { + // User clicked Edit URL + // Create a simple input dialog + const win = new BrowserWindow({ + width: 800, + height: 120, + frame: false, + transparent: false, + resizable: false, + minimizable: false, + maximizable: false, + parent: BrowserWindow.getFocusedWindow(), + modal: true, + show: false, + webPreferences: { + nodeIntegration: true, + contextIsolation: false, + }, + }); - win.loadURL(`data:text/html, - -
- -