Recommendation: do not bother about where an application creates its .dot configuration files. It also does not matter in your daily computer use: these configuration files are meant to be out of your sight most of the way.
Why: It is the application that decides where to put its user configuration files. The old conventions were to place configuration files directly in your home folder, like
pass seems to do, i.e.
$HOME/.password-store. More recently, the convention is to move such configuration under
If you want to take over management of where user configuration is stored, you will need to edit source code in many cases. Once you start doing that, you will need to keep patching updates of the software as well. Thus, as a general advise: leave it to the developer on where to place the configuration files. The developer in turn is behaving within current conventions: otherwise he/she can expect a lot of bug requests.
I want to change it anyway for
pass: Still, for learning purposes, you could change that easily in the case of
pass. This is open source. In this case, the directory is defined within the bash source code of the
pass script. In principle, you could change that to:
Because of the way the
PREFIX variable is assigned in the script, there is a safer approach, not requiring to change the script (with thanks to a comment by muru). That is to set or export the variable
PASSWORD_STORE_DIR before launching the
In the script, the variable PREFIX will assume the value of
PASSWORD_STORE_DIR if it is defined, else will be set to
That is likely any change that is required. Any folders are created with the
-p switch, so the entire folder structure will be created if
.config would not yet exist (e.g. on a very freshly installed system).
This is open source, so you can try: copy the original file under a new name, make an edit and see how it works. If it does not work, you can still copy back the original version.
Note that you need to study the source code again for every app where you want to change that. In some cases, more than one line may need to be changed.
In the end, again... do not bother.
ls -ltraThe "a" shows hidden files and is required to show those otherwise those are never shown. Same goes for file managers: by default those are hidden and control+h shows them (and hides them)