diff --git a/app/src/boot/globalShortcut.ts b/app/src/boot/globalShortcut.ts index 6f83816c3..188768426 100644 --- a/app/src/boot/globalShortcut.ts +++ b/app/src/boot/globalShortcut.ts @@ -54,6 +54,7 @@ import {fullscreen} from "../protyle/breadcrumb/action"; import {setPadding} from "../protyle/ui/initUI"; import {openRecentDocs} from "../business/openRecentDocs"; import {App} from "../index"; +import {commandPanel} from "../plugin/commandPanel"; const getRightBlock = (element: HTMLElement, x: number, y: number) => { let index = 1; @@ -602,6 +603,11 @@ export const globalShortcut = (app: App) => { syncGuide(app); return; } + if (matchHotKey(window.siyuan.config.keymap.general.commandPanel.custom, event)) { + event.preventDefault(); + commandPanel(app); + return; + } if (matchHotKey(window.siyuan.config.keymap.general.editMode.custom, event)) { event.preventDefault(); editor.setReadonly(); diff --git a/app/src/constants.ts b/app/src/constants.ts index 221f8e015..f59ba2607 100644 --- a/app/src/constants.ts +++ b/app/src/constants.ts @@ -211,6 +211,7 @@ export abstract class Constants { // "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义 public static readonly SIYUAN_KEYMAP: IKeymap = { general: { + commandPanel: {default: "⌥⇧P", custom: "⌥⇧P"}, editMode: {default: "⇧⌘G", custom: "⇧⌘G"}, syncNow: {default: "F9", custom: "F9"}, enterBack: {default: "⌥←", custom: "⌥←"}, diff --git a/app/src/layout/topBar.ts b/app/src/layout/topBar.ts index 7e3d12beb..e8c21c21d 100644 --- a/app/src/layout/topBar.ts +++ b/app/src/layout/topBar.ts @@ -313,6 +313,7 @@ const openPlugin = (app: App, target: Element) => { }); menu.addItem({ icon: "iconLayoutBottom", + accelerator: window.siyuan.config.keymap.general.commandPanel.custom, label: window.siyuan.languages.commandPanel, click() { commandPanel(app); diff --git a/app/src/plugin/commandPanel.ts b/app/src/plugin/commandPanel.ts index 967018a9c..0f27c7ac7 100644 --- a/app/src/plugin/commandPanel.ts +++ b/app/src/plugin/commandPanel.ts @@ -2,6 +2,7 @@ import {Dialog} from "../dialog"; import {App} from "../index"; import {upDownHint} from "../util/upDownHint"; import {openSetting} from "../config"; +import {updateHotkeyTip} from "../protyle/util/compatibility"; export const commandPanel = (app: App) => { const dialog = new Dialog({ @@ -23,7 +24,7 @@ export const commandPanel = (app: App) => { const liElement = document.createElement("li"); liElement.classList.add("b3-list-item") liElement.innerHTML = `${command.langText || plugin.i18n[command.langKey]} -${command.customHotkey}`; +${updateHotkeyTip(command.customHotkey)}`; liElement.addEventListener("click", () => { command.callback(); dialog.destroy(); @@ -46,6 +47,7 @@ export const commandPanel = (app: App) => { } const inputElement = dialog.element.querySelector(".b3-text-field") as HTMLInputElement; + inputElement.focus(); inputElement.addEventListener("keydown", (event: KeyboardEvent) => { event.stopPropagation(); if (event.isComposing) {