Не так давно на welinux в комментариях к одному из постов состоялась беседа о том что хорошо бы хранить все конфиги не в
~/ а в определенном каталоге. Мало того что кому-то это хорошо так ещё и стандарт такой имеется. Согласно этому стандарту все пользовательские настройки должны храниться в переменной
$XDG_CONFIG_HOME, а если она не установлена то в каталоге
~/.config.
Однако, по разным причинам, многими программами этот стандарт не поддерживается.
На помощь таким программам приходит LD_PRELOAD-able библиотека
libetc с помощью которой любая попытка открыть dot-файл (файл с точкой в начале) перенаправляется в
$XDG_CONFIG_HOME т.е. конфиги всех программ можно хранить в папке определенной стандартом. Библиотека достаточно старая, и я удивлен почему о ней знает не так много людей
Для использования достаточно экспортировать несколько переменных
|
export LD_PRELOAD=libetc.so.0 # загружаем библиотеку
export LIBETC_BLACKLIST=/bin/ls:/bin/mv:/bin/cp:/bin/ln:/usr/bin/find:/bin/rm # на эти программы внимания не обращать
|
Ну и XDG_CONFIG_HOME можно выставить.
После сих нехитрых манипуляций пути будут транслироваться из
~/.* в
$XDG_CONFIG_HOME/* (~/.config/*)
Более подробно о использовании библиотеки можно прочитать в её README файле
Домашняя страничка libetc
Заметки аскетичного гика