web-dev-qa-db-fra.com

Définir le répertoire des fichiers de configuration par défaut

Puis-je définir le répertoire de configuration par défaut dans le dossier d'accueil?

Je n'aime pas:

/home/user/Documents
/home/user/Music
/home/user/.progconf1
/home/user/.progconf2

Je voudrais:

/home/user/Documents
/home/user/Music
/home/user/.config/.progconf1
/home/user/.config/.progconf2
2
Shara

Généralement, cela n'est pas possible, car les programmes ont tendance à hardcode (mettre le chemin directement dans le code source) le chemin du répertoire de configuration (des exceptions existent, voir la réponse de darent).

Par exemple:

J'utilise stackapplet qui m'informe des changements de statut sur mon compte askubuntu. Dans son code, il dit (config_store.py):

CONFIG_FILE_PATH = os.path.join(os.path.expanduser("~"),".stackapplet") 

qui définit le CONFIG_FILE_PATH à ~/.stackapplet. Je devrais changer le code source manuellement pour remplacer cela.


Un autre exemple: wireshark

homedir = getenv("HOME");
if (homedir == NULL) {
    pwd = getpwuid(getuid());
    if (pwd != NULL) {
        homedir = g_strdup(pwd->pw_dir);
    } else
        homedir = "/tmp";
}
persconffile_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", homedir, PF_DIR);

Ceci obtient le chemin du répertoire personnel soit à partir de la variable d'environnement HOME, soit à partir de /etc/passwd entrée pour l'utilisateur actuel, ou il la définit sur /tmp si tout échoue.


Différents programmes obtiennent le chemin HOME de différentes manières, vous ne pouvez tout simplement pas changer toutes les références "home" en /home/user/.config.

2
arrange

Cela dépend de chaque programme plus que du système. Dans certains cas, vous pouvez les lancer avec des raccourcis vers des configurations spécifiques. c'est à dire:

conky -c /home/user/.config/.conkyrc

dosbox /home/user/.config/.dosbox/

Ces commandes enregistreraient leurs configurations dans .config (je n'aime pas non plus avoir ma maison pleine de petits fichiers et dossiers). Mais je ne sais pas s'il existe un moyen de le faire par défaut ou si vous devez définir la configuration et le lancement de chaque programme (que s'ils vous permettent de le définir). Je ne pense pas, car cela signifierait changer toute votre valeur $ HOME. Quelqu'un me corrige si je me trompe.

1
animaletdesequia