My Obsidian vaults are in ~/Obsidian, because I have two vaults (one for work stuff and one for personal).
Sometimes when I am editing a note in Obsidian I would like to link to ie a pdf invoice located in ~/Documents or to a photo located in ~/Pictures, but I can’t because ~/Documents and ~/Pictures are not under ~/Obsidian folder.
I believe this should be a frequent issue, how is it the normal way to approach this? Please, keep in mind I am syncing (by Syncthing) my folders to my Android phone.
I know we have some kind of absolute path reference linking to outside the vault folder, but I want this reference works also in my phone. Also I would like that if I rename a PDF in Documents the Obsidian’s referents get updated.
¿Should I set Documents and Pictures as subfolders of Obsidian? like ~/Obsidian/pesonal-vault/Documents and ~/Obsidian/pesonal-vault/Pictures? It looks a bit weird to me. Maybe I could solve this by using symbolic links, but I believe Syncthing does not go through them.
The only way I am aware of linking to an external file indeed is by using a file: URI, and these can only take absolute paths.
Placing your entire Documents folder indeed would allow for internal referencing, but yes, it looks weird, and I do not know to which extent there is a penalty on performance of Obsidian.
Probably not really the “clean” solution you were hoping for, but the good news is that in Linux, you could have your Documents in your Obsidian vault and leave it in its current location at the same time: by using a “mount --bind”. This allows to mount a directory tree rather than a file system to another directory. User applications cannot differentiate between the mount and the original directory. Thus, Obsidian will seamlessly see all files, and synthing will take them all along to your phone.
Just my two cents — feel free to disagree, of course. I think there’s a bit of a clash of concepts in what you’re hoping to do.
One of the reasons I love Obsidian is because it’s so simply portable — like a self-contained shipping container. Much like a Git repo, a vault lives entirely within one folder. If you move that folder to another computer, it just works.
Absolute paths are required for file: URIs — but absolute paths are almost never the same across devices, especially between Windows, Linux, and Android. Tools like Syncthing follow a similar “container” logic: they sync folders, not arbitrary locations, because the path above the shared folder differs from system to system.
I actually think this separation from your system’s “Documents” folder is a strength, not a weakness. If you want a document to be part of your vault, you can deliberately move it in. You don’t need to maintain two copies — you can just work with the one in the vault. (I would not do this, by the way.) This also allows you to keep private or messy documents separate from curated, meaningful ones in Obsidian.
Even iffile: URIs worked across platforms (which is unlikely), you’d still face practical issues. Every time Obsidian loads, it would need to check whether linked files still exist, whether their names or locations have changed, whether checksums or metadata match, etc. That adds complexity and potential bloat (code needed to check names, checksums on load etc. or otherwise letting Obsidian know that the file changed/renamed outside Obsidian is still the same file), and it breaks the vault’s “just works” simplicity. Also, those links would be long, ugly, URL-encoded paths with things like %20, which isn’t great for readability.
Putting your entire “Documents” folder inside Obsidian might solve the link issue — but then you lose the intentional separation described in point 3. Plus, most people have a lot of stuff in Documents. Pulling it all into a vault would dilute the usefulness of the vault itself.