Заставляем работать с $XDG_CONFIG_HOME тех кто не умеет

Не так давно на 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
s2h 10-03-2010
я просил, я просил! Спасибо!
muhas 10-03-2010
всегда пожалуйста, сам случайно увидел — даже не предполагая что такое в принципе может быть
зашел на аур комменты почитать а там libetc на первой странице =)
dion 10-03-2010
А я забил на это дело. Поигрался, не проникся.

Но конфиги версионировать стал, во всяком случае больщую часть из $HOME. Некоторые вещи правда Unison-ом синкаю на разных хостах (вроде истории Psi). До конца еще не приспособился.
ixti 10-03-2010
Огромное спасибо! Тоже долго искал как бы от этих непроходимых "джунглей" избавится - даже думал решить радикально - удалить большую часть программ которыми пользуюс редко :)) Теперь явно надобность такая отпадает :)) Ещё раз, спасибо!
muhas 10-03-2010
всегда пожалуйста. а от "джунглей" бы не избавился ибо bash(zsh) всё-равно пользуют по-умолчанию ~/
а так у многих программ параметры есть для указания файла конфига
Sergunya 10-03-2010
Честно говоря не понял как с ней работать ничего не получается.кто-нибудь может разжевать
muhas 10-03-2010
в посте же написано ;)
alparo 10-05-2010
сенкс
а как по-твоему, есть ли надежда, что со временем разработчики перейдут на формат xdg и будут конфиги в .config хранить?
тенденция вообще есть?
alparo 10-05-2010
А знаешь что еще плохо? С перемещенными файлами не работает vim синтакс. Если бы не было так лениво, то сейчас же бы откатил все обратно. А так попробую пару дней пожить, мож понравится.)
muhas 10-05-2010
> что со временем разработчики перейдут на формат xdg и будут конфиги в .config хранить?

сомневаюсь, xdg же только для fdo, но софт и на тех платформах где о fdo и не слыхивали

>А знаешь что еще плохо?
я не использую libetc =) раз попробывал, но как-то уже привык к старому порядку - часть тут часть там, к тому же все конфиги в ~/ с точкой и не видны как скрытые файлы
gg 10-09-2010
Вопрос.
Какой толк с того, что кучка дотфайлов перенесется из ~/ в ~/.config?
Насколько понял, они от этого не перестанут быть кучкой, или по вашему "джунглями", а вот лишняя прокладка, к тому же, судя по гуглю, не очень безопасная и не редко приводящая к глюкам - появится.

Второй вопрос.
Чем вам помешали дотфайлы в ~/, если практически все "файлменеджеры" начиная от ls умеют их отфильтровывать?
Или, по-моему, вы немного того, если вам не нравятся "джунгли" файлов настроек и вы одновременно плодите энтропию размещая другие "джунгли" уже своих файлов в том же корне хомяка. Попахивает взаимоисключающими параграфами.
У меня никаких проблем с этим нет. ~/ полностью отдан на откуп настроечным файлам. всё что мне нужно самому складывается в ~/Desktop/, ~/Documents/ и ~/Downloads/ и всё, никакой неразберихи и хаоса: в корне хомяка находятся только три директории которые мне нужны, всё, что надо - в них.

Я не против стандартов freedesktop.org/xdg, те программы которые им следую - пусть следуют. но не ломать же ради этого то что и так работает. К тому же есть FHS.
alparo 10-09-2010
все конфигурационные файлы удобно хранить в ~/.config хотя бы с той точки зрения, что тогда их удобнее синкать и переносить.

а прокладка, что описана в топике на самом деле ненужна.
muhas 10-09-2010
@gg ты бы прежде чем комментировать прочел бы комменты, в частности тот что перед твоим. я не использую. но кому-то все конфиги в $XDG_CONFIG_HOME более приятны ибо придают однородность - конфиги в одном месте(в .config) данные в другом и как следствие упращают синхронизацию или бэкап только конфигов.

> У меня никаких проблем блаблабла
ну что же... поздравляю, если тебе не нужно то это ещё не значит что это не нужно всем остальным

> но не ломать же ради этого то что и так работает
а разве libetc это ломает? просто делает удобнее в некоторых случаях...

зы. FHS не определяет куда софтина ложить конфиги, хотя и выделяет под это дело /etc/ /usr/etc и т.д.
Антон 14-12-2014
последняя версия. не могу найти папку с конфигом.
muhas 14-12-2014
так нету у libetc отдельного конфига, в посте пример настройки через переменные окружения