概要
XDG_CONFIG_HOMEは、XDG Base Directory Specification(freedesktop.orgの仕様)の一部として、ユーザー固有の設定ファイルの保存場所を定義しています。
この記事ではまず「XDGについて」説明し、その後XDG_CONFIG_HOMEについて説明いたします。
XDGとは
XDGとは「X Desktop Group」の略称で、後に「freedesktop.org」と改名されたプロジェクトが策定した一連の標準規格のことです。
わかりやすく説明すると、XDGは「デスクトップコンピュータの統一ルールブック」のようなものです。
XDGの主な目的
XDGが作られた理由は、異なるLinuxデスクトップ環境(GNOMEやKDEなど)の間で共通のルールを作り、互換性を高めるためです。これにより:
- 一貫性がある – アプリケーションがどこに設定ファイルを保存するか、どうやってメニューに表示されるかなどの基本ルールが統一されます
- 整理されている – ファイルがどこにあるべきかの明確な指針があるため、システムが整理されます
- 開発者に優しい – 開発者は複数のデスクトップ環境向けに別々の実装をする必要がなくなります
XDGが定める主な規格
XDGが定める主要な標準規格には以下のようなものがあります:
- Base Directory Specification – 設定ファイル、データファイル、キャッシュファイルをどこに保存するかを定義
- XDG_CONFIG_HOME: 設定ファイル(~/.config)
- XDG_DATA_HOME: データファイル(~/.local/share)
- XDG_CACHE_HOME: 一時キャッシュファイル(~/.cache)
- Desktop Entry Specification – アプリケーションのショートカットやメニュー項目の定義方法
- MIME Type Specification – ファイルタイプの認識方法とそれに対応するアプリケーションの関連付け
- Icon Theme Specification – アイコンの標準的な名前付けとテーマの仕組み
XDG_CONFIG_HOMEとは
目的
- アプリケーション設定ファイルの保存場所を統一する
- ホームディレクトリのクラッタ(散らかり)を減らす
- 複数のアプリケーション間で設定ファイルの管理方法を標準化する
利用手順
- 環境変数の確認: 現在の設定を確認するには、ターミナルで以下のコマンドを実行します。
echo $XDG_CONFIG_HOME
- 設定方法: 設定されていない場合、デフォルトでは
$HOME/.config
が使用されます。明示的に設定するには:- 一時的に設定する場合: bash
export XDG_CONFIG_HOME=$HOME/.config
- 永続的に設定する場合:
~/.bashrc
、~/.zshrc
などのシェル設定ファイルに以下を追加:export XDG_CONFIG_HOME=$HOME/.config
- 一時的に設定する場合: bash
- アプリケーションでの利用: XDG対応アプリケーションは自動的にこの変数を参照します。例えば:
- Vim:
$XDG_CONFIG_HOME/vim/vimrc
- Git:
$XDG_CONFIG_HOME/git/config
- Bash:
$XDG_CONFIG_HOME/bash
- Vim: