diff --git a/api/router.py b/api/router.py index 5431202..b851ed7 100644 --- a/api/router.py +++ b/api/router.py @@ -239,7 +239,12 @@ async def open_file(body: dict, user: dict = Depends(current_user)): dest = os.path.join(vault, os.path.basename(p)) shutil.copy2(p, dest) open_target = os.path.join(vault, os.path.basename(all_paths[0])) - uri = f"obsidian://open?path={quote(open_target, safe='/')}" + vault_name = os.path.basename(vault.rstrip("/")) if vault else "" + file_name = os.path.basename(open_target) + if vault_name: + uri = f"obsidian://open?vault={quote(vault_name)}&file={quote(file_name)}" + else: + uri = f"obsidian://open?path={quote(open_target, safe='/')}" obsidian_bin = shutil.which("obsidian") or "/usr/bin/obsidian" subprocess.Popen([obsidian_bin, uri]) elif mode == "folder" and shutil.which("dolphin"):