diff --git a/electron/config.js b/electron/config.js index c93be58..e5c1e3e 100644 --- a/electron/config.js +++ b/electron/config.js @@ -1,4 +1,5 @@ import Store from "electron-store" +import { isMac } from "./detect-platform" const isDev = !!process.env.VITE_DEV_SERVER_URL @@ -50,7 +51,7 @@ const schema = { const defaults = { settings: { keymap: "default", - emacsMetaKey: "meta", + emacsMetaKey: isMac ? "meta" : "alt", showLineNumberGutter: true, showFoldGutter: true, autoUpdate: true, diff --git a/playwright.config.ts b/playwright.config.ts index 52395ef..f4ea00d 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -20,7 +20,7 @@ export default defineConfig({ /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', + reporter: process.env.CI ? [['github'], ['html']] : 'list', /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Base URL to use in actions like `await page.goto('/')`. */ diff --git a/src/components/Editor.vue b/src/components/Editor.vue index 80a686a..5e58adb 100644 --- a/src/components/Editor.vue +++ b/src/components/Editor.vue @@ -13,7 +13,7 @@ }, emacsMetaKey: { type: String, - default: "Meta", + default: "alt", }, showLineNumberGutter: { type: Boolean, diff --git a/src/components/settings/Settings.vue b/src/components/settings/Settings.vue index 6d52fc2..39ab93e 100644 --- a/src/components/settings/Settings.vue +++ b/src/components/settings/Settings.vue @@ -60,7 +60,7 @@ showLineNumberGutter: this.showLineNumberGutter, showFoldGutter: this.showFoldGutter, keymap: this.keymap, - emacsMetaKey: this.metaKey, + emacsMetaKey: window.heynote.platform.isMac ? this.metaKey : "alt", allowBetaVersions: this.allowBetaVersions, enableGlobalHotkey: this.enableGlobalHotkey, globalHotkey: this.globalHotkey, diff --git a/src/editor/editor.js b/src/editor/editor.js index 8050c75..c98a310 100644 --- a/src/editor/editor.js +++ b/src/editor/editor.js @@ -40,7 +40,7 @@ export class HeynoteEditor { theme="light", saveFunction=null, keymap="default", - emacsMetaKey="Meta", + emacsMetaKey, showLineNumberGutter=true, showFoldGutter=true, bracketClosing=false, diff --git a/tests/emacs-clipboard-keys.spec.js b/tests/emacs-clipboard-keys.spec.js index 0c4b38c..560c098 100644 --- a/tests/emacs-clipboard-keys.spec.js +++ b/tests/emacs-clipboard-keys.spec.js @@ -17,17 +17,22 @@ test("test emacs copy/pase/cut key bindings", async ({ page, browserName }) => { await page.locator("css=.status-block.settings").click() //await page.locator("css=li.tab-editing").click() await page.locator("css=select.keymap").selectOption("emacs") - await page.locator("css=select.metaKey").selectOption("alt") + if (heynotePage.isMac) { + await page.locator("css=select.metaKey").selectOption("alt") + } await page.locator("body").press("Escape") await page.locator("body").pressSequentially("test") - await page.locator("body").press(heynotePage.isMac ? "Meta+A" : "Control+A") + await page.locator("body").press("Control+Space") + await page.locator("body").press("Control+A") await page.locator("body").press("Alt+W") expect(await heynotePage.getBlockContent(0)).toBe("test") await page.locator("body").press("Control+Y") expect(await heynotePage.getBlockContent(0)).toBe("testtest") - - await page.locator("body").press(heynotePage.isMac ? "Meta+A" : "Control+A") + + await page.locator("body").press("Control+E") + await page.locator("body").press("Control+Space") + await page.locator("body").press("Control+A") await page.locator("body").press("Control+W") expect(await heynotePage.getBlockContent(0)).toBe("") await page.locator("body").press("Control+Y") diff --git a/webapp/bridge.js b/webapp/bridge.js index 98048fb..914d187 100644 --- a/webapp/bridge.js +++ b/webapp/bridge.js @@ -61,7 +61,7 @@ const ipcRenderer = new IpcRenderer() let settingsData = localStorage.getItem("settings") let initialSettings = { keymap: "default", - emacsMetaKey: "meta", + emacsMetaKey: "alt", showLineNumberGutter: true, showFoldGutter: true, bracketClosing: false,