diff --git a/ui/desktop/src/main.ts b/ui/desktop/src/main.ts
index 29fe8ec66..42c69496f 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';
-
- 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,
- },
- });
-
- win.loadURL(`data:text/html,
-
-
-
-
-
-
-
-
-
-
- `);
-
- win.once('ready-to-show', () => {
- win.show();
- });
-
- // Handle the URL submission
- ipcMain.once('install-extension-url', (event, url) => {
- win.close();
- const mockEvent = {
- preventDefault: () => {
- console.log('Default handling prevented.');
- },
- };
- if (url && url.trim()) {
- app.emit('open-url', mockEvent, url);
+ // 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}`,
+ });
+
+ 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,
+
+
+
+
+
+
+
+
+
+
+ `);
+
+ win.once('ready-to-show', () => {
+ win.show();
+ });
+
+ // Handle the URL submission
+ ipcMain.once('install-extension-url', (event, url) => {
+ win.close();
+ const mockEvent = {
+ preventDefault: () => {
+ console.log('Default handling prevented.');
+ },
+ };
+ if (url && url.trim()) {
+ app.emit('open-url', mockEvent, url);
}
- },
- })
- );
+ });
+ }
+ });
}
Menu.setApplicationMenu(menu);