From 20a14c985638a975ed7263bb80130436d1e9168e Mon Sep 17 00:00:00 2001 From: Llewllyn <90895630+Llewllyn@users.noreply.github.com> Date: Fri, 3 May 2024 19:25:28 +1200 Subject: [PATCH 1/2] Add vault window commands Add commands for open and toggle vault --- main.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/main.js b/main.js index 7f7c461..c128fbe 100644 --- a/main.js +++ b/main.js @@ -20,6 +20,8 @@ const LOG_PREFIX = "obsidian-tray", ACTION_HIDE = "Hide Vault", ACTION_RELAUNCH = "Relaunch Obsidian", ACTION_CLOSE = "Close Vault", + ACTION_OPEN = "Open Vault", + ACTION_TOGGLE = "Toggle Vault Window" DEFAULT_DATE_FORMAT = "YYYY-MM-DD", ACCELERATOR_FORMAT = ` This hotkey is registered globally and will be detected even if Obsidian does @@ -473,6 +475,16 @@ class TrayPlugin extends obsidian.Plugin { name: ACTION_CLOSE, callback: closeVault, }); + this.addCommand({ + id: "open-vault", + name: ACTION_OPEN, + callback: showWindows, + }); + this.addCommand({ + id: "toggle-vault", + name: ACTION_TOGGLE, + callback: toggleWindows, + }); } onunload() { cleanup(); From 7bf0055cb611fd6f444c4f4279923e4fca5bee5b Mon Sep 17 00:00:00 2001 From: Llewllyn <90895630+Llewllyn@users.noreply.github.com> Date: Fri, 3 May 2024 20:13:57 +1200 Subject: [PATCH 2/2] Fix toggle vault Adds workaround to toggle vault --- main.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index c128fbe..dbb02c5 100644 --- a/main.js +++ b/main.js @@ -21,7 +21,7 @@ const LOG_PREFIX = "obsidian-tray", ACTION_RELAUNCH = "Relaunch Obsidian", ACTION_CLOSE = "Close Vault", ACTION_OPEN = "Open Vault", - ACTION_TOGGLE = "Toggle Vault Window" + ACTION_TOGGLE = "Toggle Vault Window", DEFAULT_DATE_FORMAT = "YYYY-MM-DD", ACCELERATOR_FORMAT = ` This hotkey is registered globally and will be detected even if Obsidian does @@ -97,6 +97,19 @@ const vaultWindows = new Set(), }); if (openWindows) hideWindows(); else showWindows(); + }, + toggleVault = (checkForFocus = true) => { + const openWindows = getWindows().some((win) => { + return (!checkForFocus || win.isFocused()) && win.isVisible(); + }); + if (openWindows) hideWindows(); + else { + getWindows().forEach((win) => { + win.show(); + win.minimize(); + win.maximize(); + }); + }; }; const onWindowClose = (event) => event.preventDefault(), @@ -483,7 +496,7 @@ class TrayPlugin extends obsidian.Plugin { this.addCommand({ id: "toggle-vault", name: ACTION_TOGGLE, - callback: toggleWindows, + callback: toggleVault, }); } onunload() {