XDG ユーザーディレクトリ
freedesktop.org より:
- xdg-user-dirs はデスクトップフォルダや音楽フォルダのような、「よく知られた」ユーザーディレクトリを管理するためのツールです。また、ファイル名のローカライズ (すなわち翻訳) も行います。
- 仕組みとしては、xdg-user-dirs-update(1) がログイン時の非常に早い段階で実行されます。このプログラムは設定ファイルとデフォルトのディレクトリのセットを読み込みます。このプログラムは設定ファイルと一連のデフォルトディレクトリを読み込み、ユーザーのホームディレクトリにこれらのディレクトリのローカライズ版を作成し、
$XDG_CONFIG_HOME/user-dirs.dirs
(XDG_CONFIG_HOME
のデフォルトは~/.config
) にアプリケーションがこれらのディレクトリを見つけるために読める設定ファイルを設定します。
ほとんどのファイルマネージャは、XDG ユーザーディレクトリを特別なアイコンで表示します。
インストール
xdg-user-dirs をインストールしてください。
デフォルトディレクトリの作成
以下を実行することで、ローカライズされたデフォルトユーザディレクトリの完全なスイートを $HOME
ディレクトリ内に自動で作成することができます:
$ xdg-user-dirs-update
このコマンドを実行すると、以下のことも自動的に行われます:
- ローカルの
~/.config/user-dirs.dirs
設定ファイルの作成: これは、アカウント固有のホームディレクトリを探索し使用するためにアプリケーションによって使用されます。 - ローカルの
~/.config/user-dirs.locale
設定ファイルの作成: これは、使用中のロケールに合わせて言語を設定するために使用されます。
xdg-user-dirs-update.service
ユーザサービスもデフォルトでインストールされ有効化されます。このサービスは、ログインセッションの開始時に上記のコマンドを実行して、ディレクトリを最新に保ちます。
カスタムディレクトリの作成
ローカルの ~/.config/user-dirs.dirs
とグローバルの /etc/xdg/user-dirs.defaults
どちらの設定ファイルも次のような環境変数を使ってユーザーディレクトリを指定しています: XDG_DIRNAME_DIR="$HOME/directory_name"
。設定ファイルのサンプルは以下のようになります (どれもテンプレートのディレクトリです):
~/.config/user-dirs.dirs
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