web-dev-qa-db-ja.com

デフォルトの設定ファイルディレクトリを設定する

ホームフォルダにデフォルトの構成ディレクトリを設定できますか?

私は嫌い:

/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
2
Shara

プログラムはハードコード(パスをソースコードに直接入力)configディレクトリパス(例外が存在する、darentの答えを参照)になる傾向があるため、一般にこれは不可能です。

例えば:

Askubuntuアカウントのステータス変更を通知するstackappletを使用しています。そのコードには(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/user/.configに変更することはできません。

2
arrange

それはシステムよりも各プログラムに依存します。場合によっては、特定の構成へのショートカットを使用して起動できます。すなわち:

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

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

これらのコマンドは、構成を.configに保存します(私は私の家が小さなファイルやフォルダーでいっぱいであることも嫌いです)。しかし、デフォルトにする方法があるかどうか、または各プログラムの設定と起動を設定する必要があるかどうかはわかりません(設定できる場合)。それはあなたの全体の$ HOME値を変更することを意味するので、私は考えていません。私が間違っている場合、誰かが私を修正します。

1