XDG ユーザーディレクトリ
From freedesktop.org:
- xdg-user-dirs is a tool to help manage "well known" user directories like the desktop folder and the music folder. It also handles localization (i.e. translation) of the filenames.
- The way it works is that xdg-user-dirs-update(1) is run very early in the login phase. This program reads a configuration file, and a set of default directories. It then creates localized versions of these directories in the users home directory and sets up a config file in
$XDG_CONFIG_HOME/user-dirs.dirs
(XDG_CONFIG_HOME
defaults to~/.config
) that applications can read to find these directories.
Most file managers indicate XDG user directories with special icons.
インストール
xdg-user-dirs パッケージをインストールしてください。
デフォルトディレクトリの作成
$HOME
ディレクトリの中に、ローカライズされた完全なデフォルトユーザーディレクトリを作成するには、次のコマンドを入力:
$ xdg-user-dirs-update
コマンドを実行すると、以下も自動的に作成されます:
- ローカルの
~/.config/user-dirs.dirs
設定ファイル: アカウントごとのホームディレクトリを見つけて使用するのにアプリケーションが使用。 - グローバルの
/etc/xdg/user-dirs.defaults
設定ファイル: 一般のホームディレクトリを見つけて使うのにアプリケーションが使用。 - ローカルの
~/.config/user-dirs.locale
設定ファイル: 使用しているロケールにあわせて言語を設定するのに使用。
カスタムディレクトリの作成
ローカルの ~/.config/user-dirs.dirs
とグローバルの /etc/xdg/user-dirs.defaults
どちらの設定ファイルも次のような環境変数を使ってユーザーディレクトリを指定しています: XDG_DIRNAME_DIR="$HOME/directory_name"
。設定ファイルのサンプルは以下のようになります (どれもテンプレートのディレクトリです):
XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOCUMENTS_DIR="$HOME/Documents" XDG_DOWNLOAD_DIR="$HOME/Downloads" XDG_MUSIC_DIR="$HOME/Music" XDG_PICTURES_DIR="$HOME/Pictures" XDG_PUBLICSHARE_DIR="$HOME/Public" XDG_TEMPLATES_DIR="$HOME/.Templates" XDG_VIDEOS_DIR="$HOME/Videos"
xdg-user-dirs は、適当なユーザーディレクトリを記述しているローカルの設定ファイルを読み込むため、カスタムフォルダを指定することが可能です。例えば ~/.config/user-dirs.dirs
の XDG_DOWNLOAD_DIR
変数のカスタムフォルダを $HOME/Internet
にすれば、どのアプリケーションもこの変数でこのディレクトリを使用します。
また、コマンドラインを使ってカスタムフォルダを指定することもできます。例えば以下のコマンドは上述のように設定ファイルを編集したのと同じになります:
$ xdg-user-dirs-update --set DOWNLOAD ~/Internet
設定されているディレクトリを確認
一度設定されれば、xdg-user-dirs で全てのユーザーディレクトリを表示することができます。例えば、以下のコマンドは Templates
ディレクトリの場所を表示します (ローカルの設定ファイルの XDG_TEMPLATES_DIR
変数に相当):
$ xdg-user-dir TEMPLATES