diff --git a/app/src/constants.ts b/app/src/constants.ts
index f8aa9cf00..a18f11d79 100644
--- a/app/src/constants.ts
+++ b/app/src/constants.ts
@@ -109,6 +109,7 @@ export abstract class Constants {
toggleWin: {default: "⌥M", custom: "⌥M"},
lockScreen: {default: "⌥N", custom: "⌥N"},
move: {default: "", custom: ""},
+ selectOpen1: {default: "", custom: ""},
},
editor: {
general: {
diff --git a/app/src/layout/dock/Files.ts b/app/src/layout/dock/Files.ts
index 4e7164161..bf3cf1dc6 100644
--- a/app/src/layout/dock/Files.ts
+++ b/app/src/layout/dock/Files.ts
@@ -67,7 +67,7 @@ export class Files extends Model {
${window.siyuan.languages.fileTree}
-
+
diff --git a/app/src/util/globalShortcut.ts b/app/src/util/globalShortcut.ts
index 7279bd54e..56bbf36fd 100644
--- a/app/src/util/globalShortcut.ts
+++ b/app/src/util/globalShortcut.ts
@@ -646,6 +646,18 @@ const fileTreeKeydown = (event: KeyboardEvent) => {
return false;
}
const files = dockFile.data.file as Files;
+ if (matchHotKey(window.siyuan.config.keymap.general.selectOpen1.custom, event)) {
+ event.preventDefault();
+ const element = document.querySelector(".layout__wnd--active > .layout-tab-bar > .item--focus") ||
+ document.querySelector(".layout-tab-bar > .item--focus");
+ if (element) {
+ const tab = getInstanceById(element.getAttribute("data-id")) as Tab;
+ if (tab && tab.model instanceof Editor) {
+ files.selectItem(tab.model.editor.protyle.notebookId, tab.model.editor.protyle.path);
+ }
+ }
+ return;
+ }
if (!files.element.previousElementSibling.classList.contains("block__icons--active")) {
return false;
}