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仕様には、その他にもキャッシュ、データファイル、ランタイムの情報、システムディレクトリなどが定められているので、見てみると面白いかもしれません。