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 .config
indeed.
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:
PREFIX="${PASSWORD_STORE_DIR:-$HOME/.config/password-store}"
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 pass
, i.e.
PASSWORD_STORE_DIR=$HOME/.config/password-store
In the script, the variable PREFIX will assume the value of PASSWORD_STORE_DIR
if it is defined, else will be set to $HOME/.password-store
.
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.