我可以在主文件夹中设置默认配置目录吗?
我不喜欢:
/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 值。如果我错了,请纠正我。