TL;DR
- ソフトウェアが設定ファイルなどを置く
$HOME/.config
というディレクトリは、XDG Base Directory仕様に則ったもの - ユーザー個別の設定ファイルを置く用途で利用される
$HOME/.config
ディレクトリってなんだ?
Linuxでソフトウェアを利用していると、その時の設定情報などを$HOME/.config
ディレクトリ内に作るものを目にすると思います。
たとえば、Visual Studio Codeであれば$HOME/.config/Code
ですね。
settings.json
であれば、$HOME/.config/Code/User/settings.json
にあるわけです。
いろんなソフトウェアがこの$HOME/.config
配下にディレクトリを作っていくので、「これはなにに従っているのだろう?」と思って調べた結果「XDG Base Diretory仕様」にいきつきました。
XDG Base Directory仕様
XDG Base Directory仕様とは、「FreeDesktop.org」によって定められたものです。
XDG Base Directory Specification
FreeDesktop.orgとは、
freedesktop.org(フリーデスクトップドットオルグ。fd.o(エフディードットオー)などと略されることもある)は、Unix系のシステムの環境のデスクトップ環境(もっぱらX Window Systemを利用する)の、相互運用性の向上と共通基盤技術の整備を目指したプロジェクトである。
だそうで。
「XDG」というのは、FreeDesktop.orgが以前に「X Destop Group」と名乗っていた時の名残りだとか。
このXDG Base Directory仕様のうち、$XDG_CONFIG_HOME
がユーザーごとの設定ファイルを配置するディレクトリで、そのデフォルト値が$HOME/.config
なのだとか。
なるほどですねぇ。
(名前の重複で困ったりしないのかな…?)
XDG Base Directory仕様には、その他にもキャッシュ、データファイル、ランタイムの情報、システムディレクトリなどが定められているので、見てみると面白いかもしれません。