# Global Settings / Same settings, themes, and plugins across multiple vaults

**URL:** <https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789>\
**Category:** Feature requests\
**Tags:** valuable\
**Created:** [August 13, 2022, 7:55pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789 "2022-08-13T19:55:17Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![drew](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/d/b19c9b/32.png) [@drew](https://forum.obsidian.md/u/drew)\
**Post date:** [December 13, 2022, 4:46pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/81 "2022-12-13T16:46:42Z")

</div>

It blew my mind that I spent all this time setting up obsidian only to discover that it only works for the particular project I had open when I was setting it up. These are general application settings that have nothing to do with the project and have no business being scoped to the project. I can’t imagine why anyone would ever want to scope things like keyboard shortcuts and gui themes for one individual project. I expect an text editor to have the same basic behavior regardless of what text file I am editing. Look at literally any other test editor. Now I need to memorize a different set of keybinds for every single project? What kind of insanity is this? Can we please give users a reasonably consistent experience so they can have a realistic opportunity to learn how to use the application?

Forget about per-project configuration. It’s not important. Just move all the configuration to be globally scoped. That’s the simplest approach that the small dev team should be able to handle easily. Per-project configuration is a “nice to have” that can be added on top of global configuration, but it’s pretty limited in utility. I doubt the vast majority of users would be interested in it. So let’s not worry about the complexity from managing separate configuration sources for now. Just make it exclusively global. Should be trivial for established users to migrate settings from a project folder to a global folder.

---

<div class="post-metadata">

**Author:** ![CawlinTeffid](https://forum.obsidian.md/user_avatar/forum.obsidian.md/cawlinteffid/32/82899_2.png) [@CawlinTeffid](https://forum.obsidian.md/u/CawlinTeffid)\
**Post date:** [December 16, 2022, 12:37am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/82 "2022-12-16T00:37:39Z")

</div>

Not everyone’s vaults are scoped to project level.

---

<div class="post-metadata">

**Author:** ![peterkaminski](https://forum.obsidian.md/user_avatar/forum.obsidian.md/peterkaminski/32/5201_2.png) [@peterkaminski](https://forum.obsidian.md/u/peterkaminski)\
**Post date:** [December 28, 2022, 5:30pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/83 "2022-12-28T17:30:57Z")

</div>

I have a simple command-line tool I wrote in Python a while ago to help manage the settings files in the `.obsidian` folder: [Obsidian Settings Manager](https://github.com/peterkaminski/obsidian-settings-manager) (OSM).

OSM can:

- list all your Obsidian vaults (I have more than three dozen, lol)
- copy settings from one primary vault to the other vaults
- execute a command against all vaults (e.g., `git status`)

I never made a big deal of announcing it, because the _right_ way to do this is in an Obsidian plugin, rather than an external script.

But it **is** public and open source, and perhaps still of use. I haven’t updated it or stress-tested it in 1.5 years, but it still generally works. I can’t provide much user support for it, but I am happy to receive bug reports / feature requests in the [OSM repo’s issue tracker](https://github.com/peterkaminski/obsidian-settings-manager/issues), and would be happy to review pull requests. (Or to see it rewritten as an Obsidian plugin!)

Check it out: [https://github.com/peterkaminski/obsidian-settings-manager](https://github.com/peterkaminski/obsidian-settings-manager)

Please read the warnings and disclaimers before using Obsidian Settings Manager.

---

<div class="post-metadata">

**Author:** ![WillsterJohnson](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/w/e36b37/32.png) [@WillsterJohnson](https://forum.obsidian.md/u/WillsterJohnson)\
**Post date:** [January 24, 2023, 12:14am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/84 "2023-01-24T00:14:29Z")

</div>

I realize a lot of the ideas below have been posted above, but it makes for difficult reading for half of this to be “as [username] said”.

### `$HOME/.obsidian`

This will be exactly the same as the current per-vault directory, however _all_ plugins and themes which are installed from any vault will have the actual js/css/manifest stored here. There will also be a `data.json` here, which will use the same developer API as the current per-vault one, just via `Plugin.saveGlobalData`/`Plugin.loadGlobalData` instead of the existing ones (no breaking change is an added bonus).

Also no `workspace.json` or other vault-dependent fields.

### `$vault/.obsidian`

This remains mostly unchanged. The main difference will be that the plugins directories contain only the `data.json` file. It would be nice for plugin devs to have access to a `Plugin.loadMergedData` rather than being required to do their own comparisons and object merges should they need to handle hierarchy, which would also reduce plugin bundle size and execution times.

### Changing and loading settings

Could do a deep merge on the JSON with every change, could do that with some fancy caching to save execution time,  
Probably best to load the global configs, then iterate the local ones and set those for this app session. This ties in with the point below about global-first settings.  
Additionally, when a setting is changed, no matter if local or global, Obsidian can just do what it’s doing now and set it on the fly without additional processing.

For storing the settings then, a toggle at the top of the settings subwindow (and other subwindows within such as themes or plugins) can have a simple toggle at the top for switching between changing globally and changing locally.  
I would argue this should default to global, and if you close the settings then open them again, **it should reset to global**. To edit settings locally should require opening settings, _and_ clicking a toggle.  
My reasoning for this is because every other piece of software I’ve come across has global-only settings. People are used to changing a setting and it applying for all uses of the app. It’s the same reason content scrolls vertically and double-tap is like; everyone knows how it works, so working in the same way reduces friction. If a user changes something locally, works for an hour, then decides to change a setting, they won’t necessarily recall that they’re in local mode, even with the activated toggle.  
The toggle should be labelled of course, “global settings” when off, “vault settings” when on, and an on-hover/focus tooltip on that text briefly explaining what it’s for an a link to the relevant section in the docs.

This toggle’s status should be made available on `Plugin.vaultSettingsMode` so plugin developers can have a signal for when their plugin might want to use `Plugin.saveData` vs `Plugin.saveGlobalData`.

* * *

It’s been two and a half years since this feature request was opened.  
If developer time is an issue, I’ll happily come in temp and implement this for you as quickly as possible (email me).  
If it’s a design choice to continue to not have this feature, that’s frustrating for a lot of us.

---

<div class="post-metadata">

**Author:** ![gskoczylas](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/g/a6a055/32.png) [@gskoczylas](https://forum.obsidian.md/u/gskoczylas)\
**Post date:** [February 25, 2023, 5:03pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/85 "2023-02-25T17:03:24Z")

</div>

I want to have several vaults, but I want the same settings, keyboard shortcuts, plug-ins, etc. in each. Furthermore, if I change a parameter in one vault, I want to have identical settings in the other vaults. In other words, I want **all settings to be global**.

With this in mind, I have found a fairly simple solution that does not require installing any plug-ins. I have applied my solution to Windows. There are certainly analogous mechanisms available in other operating systems.

On my computer, I have created a _Notes_ folder on my `D:` drive. In this folder I create further vaults. I currently have two vaults: _personal_ and _professional_. The paths to the individual vaults look like this:

- `d:\Notes\personal`
- `d:\Notes\professional`

I created and configured one of _personal_ vault. A `.obsidian` sub folder has been created in the vault. I closed Obsidian and moved this folder (cut and paste) to the main _Notes_ folder. From now on, this is my main vault settings folder:

- `d:\Notes\.obsidian`

Next you must perform the following actions on the command line. Run the _Command Prompt_ **as administrator**. Now make _junction point_ of the main settings folder to individual vaults:

```auto
mklink /j d:\Notes\Personal\.obsidian d:\Notes\.obsidian
mklink /j d:\Notes\Professional\.obsidian d:\Notes\.obsidian

```

A brief explanation for those who do not use Windows and are not familiar with this mechanism: _junction point_ allows seeing the folder indicated in the second parameter also as the folder indicated in the first parameter. These folders can be on the same or different drives.

---

<div class="post-metadata">

**Author:** ![kiirani](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/k/f475e1/32.png) [@kiirani](https://forum.obsidian.md/u/kiirani)\
**Post date:** [May 3, 2023, 7:55am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/86 "2023-05-03T07:55:00Z")

</div>

I want to be able to collaborate with other people on repositories & keep most settings at the repo level, but I also want to use vim keybindings without forcing everybody else to.

---

<div class="post-metadata">

**Author:** ![varian93](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/v/3bc359/32.png) [@varian93](https://forum.obsidian.md/u/varian93)\
**Post date:** [October 5, 2020, 5:17pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/87 "2020-10-05T17:17:01Z")

</div>

Obsidian having custom settings per vault is a great feature allowing for flexibility. However, it also means that every time I create a new vault I have to go through & manually set all my settings back to the way I prefer. I imagine most people will have their own custom default that they’d prefer to start new vaults with other than the “factory” default that Obsidian ships with.

It would be great if there was a “Make Current Settings Default” option that could be triggered. All new vaults created thereafter would use the settings that were enabled when it was triggered.

Also to aid in troubleshooting it would probably make sense to also include a “Restore Factory Default” settings ability.

I suppose another option would be for all new vaults to use the current vault’s settings. Most people will likely only make small changes from their preferred settings for any new vaults. It’s easier to remember what you want to change from where you already are, than it is to to get to where you want from an unfamiliar state.

---

<div class="post-metadata">

**Author:** ![adamj](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/a/85f322/32.png) [@adamj](https://forum.obsidian.md/u/adamj)\
**Post date:** [October 5, 2020, 6:17pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/88 "2020-10-05T18:17:20Z")

</div>

The way I have been dealing with this is copying the .obsidian folder and obsidian.css in to my new vault.

Or you could duplicate the entire vault, change the name and then remove all notes inside.

Not idea, but it works well for me

---

<div class="post-metadata">

**Author:** ![menatarp](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/m/bcef8e/32.png) [@menatarp](https://forum.obsidian.md/u/menatarp)\
**Post date:** [November 28, 2020, 2:33am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/89 "2020-11-28T02:33:02Z")

</div>

seconding this request!

---

<div class="post-metadata">

**Author:** ![superium](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/s/90db22/32.png) [@superium](https://forum.obsidian.md/u/superium)\
**Post date:** [March 21, 2021, 8:10am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/90 "2021-03-21T08:10:33Z")

</div>

+1  
this default settings may contains:  
plugins, themes, configs.

---

<div class="post-metadata">

**Author:** ![acbrown](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/a/6a8cbe/32.png) [@acbrown](https://forum.obsidian.md/u/acbrown)\
**Post date:** [March 21, 2021, 8:47am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/91 "2021-03-21T08:47:00Z")

</div>

I would also find this very useful.

---

<div class="post-metadata">

**Author:** ![Ronald](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/r/ea666f/32.png) [@Ronald](https://forum.obsidian.md/u/Ronald)\
**Post date:** [April 25, 2021, 11:19am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/92 "2021-04-25T11:19:05Z")

</div>

Copying the contents of the .obsidian folder worked for me. Good one!

---

<div class="post-metadata">

**Author:** ![mana99](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/m/9de053/32.png) [@mana99](https://forum.obsidian.md/u/mana99)\
**Post date:** [May 7, 2021, 4:27pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/93 "2021-05-07T16:27:18Z")

</div>

+1  
It’d be good if a $HOME/.obsidian/ were replicated in each new vault…

---

<div class="post-metadata">

**Author:** ![realactualprice](https://forum.obsidian.md/user_avatar/forum.obsidian.md/realactualprice/32/295_2.png) [@realactualprice](https://forum.obsidian.md/u/realactualprice)\
**Post date:** [November 8, 2021, 2:37pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/94 "2021-11-08T14:37:29Z")

</div>

This would be tremendously useful. It would allow for using the “Open folder as vault” option to effectively open a temporary vault to work within a given thought context.

For me, this would effectively solve the problem I outlined at [Context Overwhelm, Concentric Vaults, and Sensemaking - Thinking On Thinking In Notes - #2 by realactualprice](https://forum.obsidian.md/t/context-overwhelm-concentric-vaults-and-sensemaking-thinking-on-thinking-in-notes/26742/2).

---

<div class="post-metadata">

**Author:** ![bunnyhero](https://forum.obsidian.md/user_avatar/forum.obsidian.md/bunnyhero/32/40358_2.png) [@bunnyhero](https://forum.obsidian.md/u/bunnyhero)\
**Post date:** [December 28, 2022, 3:44pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/95 "2022-12-28T15:44:44Z")

</div>

i have barely started to use obsidian but this is already the first feature i want that i was surprised wasn’t already a thing. i even tried closing all vaults and selecting the “Settings…” menu, thinking i might be able to set global defaults that way, but that just shows me a javascript error dialog (on mac).

for now i will copy the `.obsidian` folder. thank you for that tip! i hope someday this extra bit of friction can be reduced.

---

<div class="post-metadata">

**Author:** ![MichaelMcDonald](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/m/d26b3c/32.png) [@MichaelMcDonald](https://forum.obsidian.md/u/MichaelMcDonald)\
**Post date:** [January 8, 2023, 1:44am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/96 "2023-01-08T01:44:24Z")

</div>

Gonna throw my vote in for this as well. Was rather surprised it wasn’t already a thing.

---

<div class="post-metadata">

**Author:** ![KL94](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/k/e19adc/32.png) [@KL94](https://forum.obsidian.md/u/KL94)\
**Post date:** [April 13, 2021, 3:49pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/97 "2021-04-13T15:49:02Z")

</div>

### Use case or problem

I want to have my configurations/plugins/themes all standardized between my vaults, making it machine-wide.

### Proposed solution

Let us put the .obsidian folder outside of the vault (preferably in the Obsidian installation folder) and point our vaults to it allow us to have a machine-wide configuration.

### Current workaround (optional)

Using symbolic links. It’s not user friendly or safe.

---

<div class="post-metadata">

**Author:** ![mmorowitz](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mmorowitz/32/12724_2.png) [@mmorowitz](https://forum.obsidian.md/u/mmorowitz)\
**Post date:** [April 13, 2021, 4:23pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/98 "2021-04-13T16:23:44Z")

</div>

My other workaround is to have a script that copies the folders periodically across vaults.

Also not user friendly, but a little safer than managing a symlink.

---

<div class="post-metadata">

**Author:** ![Moonbase59](https://forum.obsidian.md/user_avatar/forum.obsidian.md/moonbase59/32/13648_2.png) [@Moonbase59](https://forum.obsidian.md/u/Moonbase59)\
**Post date:** [April 14, 2021, 1:08am UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/99 "2021-04-14T01:08:36Z")

</div>

Having a hidden `.obsidian` folder per vault (much like _git_) has pros and cons, like everything. I was originally against having to set up everything again for every vault, but eventually found out that the pros outweigh the cons, at least for me:

- Turned out I’m not using as many vaults as I originally thought. I actually put my personal, professional, and writing “digital life” into just _one_, eventually. It’s so much easier to handle, and fast enough.
- I mainly use 3 devices for the same vault: A Linux desktop, a Linux laptop, and my Android phone (no Obsidian here, just Markor to handle the inbox and to-dos).
- So having “everything in one box (folder)” is a great plus for syncing between devices (I use _Syncthing_): I have to sync just one folder and don’t have to mess trying to sync system folders, or parts of them.
- Having to backup just one set of folders is also a plus (I use _(g)rsync_). You’re always sure to _have it all_.
- Yes, I do use a (very) few symlinked files and folders outside the Obsidian vault, but since these are in identical locations on all three devices (below the “Documents” folder), I can simply sync/backup those as symlinks.

So in my case practical use has shown that I’m actually quite happy with the developers’ original decision of “one set of settings per vault”.

I still see your use case, and I wonder how easy or compatible it might be to maybe have a “main vault” and just symlink all other vaults’ `.obsidian` folders into that. Don’t know if that would break anything (assuming that all plugins use relative paths, that is). Also, I’m a little unsure about how robust symlinking on Windows might be.

---

<div class="post-metadata">

**Author:** ![jeetsukumaran](https://forum.obsidian.md/user_avatar/forum.obsidian.md/jeetsukumaran/32/42020_2.png) [@jeetsukumaran](https://forum.obsidian.md/u/jeetsukumaran)\
**Post date:** [May 5, 2023, 5:44pm UTC](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789/100 "2023-05-05T17:44:45Z")

</div>

(1) Standard model for this would be a configuration in OS standard user-space location, typically either (older convention):

```auto
~./obsidian

```

or:

```auto
~/.config/obsidian/
~/.local/share/obsidian/settings

```

etc.

Then settings in a local vault `~/path/to/vault/.obsidian` will (selectively) override the host-specific settings in `~/.config/obsidian`.

(2) It would be nice to go one step further, and for Obisidian to store cross-device configurations in the cloud, synced server-side, with the host-specific `~/.config/obsidian` settings selectively overriding this, and the vault-specific `~/path/to/vault/.obsidian` selective overriding this.

(3) Personally, when I first started, I had all my vaults in their own Git repo, but the `.obsidian` subdirectory in each repo a submodule. Lots of ways to get these to autosync, but before I figured out a working solution, I evolved toward just one single vault for everything and the problem went away 🤣 … for the time being until my system changes again 😅

[Previous page](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789.md?page=4)

[Next page](https://forum.obsidian.md/t/global-settings-same-settings-themes-and-plugins-across-multiple-vaults/41789.md?page=6)
