Use case or problem
When working with multiple vaults, the vault selector window appears only if there’s a vault already open. If there’s no Obsidian window currently open, using the default application shortcut opens the last used vault, whether or not it is the one you’ll want to work with.
Obsidian supports a custom URI protocol
obsidian://
which can be used to trigger various actions within the app.
This gives us greater control over the workflow, allowing us to create separate shortcuts for each vault. It does, however, lead to unnecessary cluttering of workspace. I am currently working with 6 vaults, which forces me to either contend with the automatic last-vault reopening, or to have 6 same-looking icons on my shortcut toolbar.
I can already see a couple more usages for Obsidian in my life, so I’ll probably create more vaults in the near future, but that will only make my problem worse. It would be much more convenient if I could have a single Obsidian icon, launching the application with the vault selector every time.
Proposed solution
Currently, the Obsidian protocol allows us to create shortcuts to specific vaults using the open
action:
obsidian://open?vault=my%20vault
If the vault
parameter is omitted (or has a wrong value and no vault with that name/id can be located), Obsidian displays an error message Vault not found. Unable to find a vault for the URL obsidian://open(...)
. After closing the error message, the default last-opened vault is loaded.
I propose two possible solutions:
- Add a new action (
select
?), which would cause Obsidian to open a new instance starting with the vault selector, regardless of whether there is an instance already open or not. - Modify the
open
action to allow for usage with empty parameters (obsidian://open?vault=
,obsidian://open?vault
) or without any parameters (obsidian://open
). When no vault parameter is specified, or if its value is null, the vault selector should be displayed.