设置默认配置文件目录

设置默认配置文件目录

我可以在主文件夹中设置默认配置目录吗?

我不喜欢:

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

我想:

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

答案1

一般来说这是不可能的,因为程序往往会硬编码(将路径直接放入源代码中)配置目录路径(存在例外,请参阅darent的回答)。

例如:

我使用stackapplet它来通知我 askubuntu 帐户的状态变化。它的代码是 ( config_store.py):

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

将 设置CONFIG_FILE_PATH~/.stackapplet。我必须手动更改源代码才能覆盖此设置。


另一个例子: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);

这将从 HOME 环境变量或/etc/passwd当前用户的条目中获取主目录路径,或者/tmp如果全部失败则将其设置为。


不同的程序以不同的方式获取 HOME 路径,您无法将所有“home”引用更改为/home/user/.config

答案2

这取决于每个程序,而不是系统。在某些情况下,您可以使用特定配置的快捷方式启动它们。即:

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

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

这些命令会将其配置保存在 .config 中(我也不喜欢我的主页上堆满小文件和文件夹)。但我不知道是否有办法将其设为默认值,或者您必须为每个程序设置配置和启动程序(如果他们允许您设置的话)。我不这么认为,因为那意味着要更改您的整个 $HOME 值。如果我错了,请纠正我。

相关内容