Чтобы принудительно переместить все пользовательские файлы конфигурации из корня домашней директории в отдельный каталог (допустим ~/.config) можно воспользоваться библиотекой libetc (http://ordiluc.net/fs/libetc/). libetc подгружается к приложениям через механизм LD_PRELOAD, подменяя собой некоторые библиотечные вызовы и самостоятельно обрабатывая ситуацию открытия файлов и директорий, начинающихся с точки. Базовый путь берется из переменной окружения $XDG_CONFIG_HOME, определенной для этих целей в стандарте http://standards.freedesktop.org/basedir-spec/Пример использования, в ~/.bashrc, ~/.zshrc или ~/.xsession добавляем:
# загружаем библиотеку
export LD_PRELOAD=libetc.so.0
# список игнорирования
export LIBETC_BLACKLIST=/bin/ls:/bin/mv:/bin/cp:/bin/ln:/usr/bin/find:/bin/rm
# Перемещаем файлы конфигурации в директорию /home/luc/config
export XDG_CONFIG_HOME=/home/luc/configЕсли явно не определена переменная окружения XDG_CONFIG_HOME, в качестве базового пути будет использована директория ~/.config/
Работа libetc проверена в таких программах, как OpenOffice.org, KDE, Gnome, Firefox, Mutt, vim, Thunderbird, Sylpheed, Gimp.
URL: http://muhas.ru/?p=130 http://ordiluc.net/fs/libetc/README
Обсуждается: http://www.opennet.me/tips/info/2330.shtml
давно бы уже унесли все настройки в одну директорию! это именно то что меня больше всего напрягает - куча точечных директорий муляющих под ногами
vim?
я бы не рискнул его изолировать. :)
Уже давно все в одной, $HOME зовётся.
Кстати да. Было бы неплохо так сделать сразу для целого дистра. Может подкинуть идейку Шаттворту?
Без паники, товарищи, без паники.Миграция всех ~/.fafa.conf в ~/.config уже идет полным ходом. Третьего дня обнаружил в ~/.vlc файл readme, где говорилось, что ~/.vlc по прочтении данного файла можно удалить, и что они переехали в ~/.config.
Все устроится в свое время. А костыль с LD_PRELOAD есть что-то на манер proof of concept. Не нужен он.
Система файлов-конфигов тоже как бы устарела - слишком примитивно. Линуксу давно уже надо было подумать о центральном реестре. Да, как у винды, что с того? Зато это универсальнее и переносимее.
Может оно и хорошо бы было, но глядя на виндовый реестр заметны некоторые проблемы:
1. Иногда реестр погибает, а поскольку формат бинарный и точно в его устройстве никто кроме как "разработчик" не уверен, восстановить его практически нереально (то что его необходимо бэкапить - это и коню понятно, только делают это далеко не все)
2. При эксплуатации реестр забивается различным информационным хламом, толково очистить от которого не в состоянии ни один "чистильщик реестра".
Я бы не хотел уходить от текстовых настроек
я вообще не вижу проблемы в файликах в хомесе ~/.*, на домашней эвм $HOME прожил 8 лет, ничего не было утеряно, проблем не замечал, на рабочем месте 4ре года -полёт нормальный.
>Система файлов-конфигов тоже как бы устарела - слишком примитивно. Линуксу давно ужеСогласен.
>надо было подумать о центральном реестре. Да, как у винды, что
>с того? Зато это универсальнее и переносимее.Реестр это утопия.
Не понимает это только ленивый. :)
> Система файлов-конфигов тоже как бы устарела - слишком примитивно.Колесо тоже как бы устарело - слишком примитивно.
>Система файлов-конфигов тоже как бы устарела - слишком примитивно. Линуксу давно уже надо было подумать о центральном реестре. Да, как у винды, что с того? Зато это универсальнее и переносимее.Можно пример того, как вы реестр перенесете реестр (в одном бинарном файле!) на другой тазик? Винда сама использует текстовые файлы для переноса кусков реестра в другое место. Получается два формата конфигурационных файлов вместо одного. Зачем?
Универсальностью и не пахнет. То есть мне нужен будет специальный костыль, чтобы открывать файлы конфигурации? Бррр. ИМХО F3/F4 в mc, cat, less, vi, kwrite, grep, sed (дальше перечислять не нужно?) намного универсальней.
<ИМХО> Система конфигурации в отдельных файлах в текстовом виде - гениальное изобретение Unix. Такое же, как архитектура клиент-сервер для большинства прог, единая root filesystem, простых и эфективных аттрибутов, /proc и /dev файловых систем, максимальная модульность и т. д. Что нужно конфигурационным файлам, так это унификация синтаксиса. Например вида "[section]\n parameter=value" или "#!/bin/sh\n variable=value" или уже XML (хотя XML немного страшноват для этого). Но это не критично. </ИМХО)
цитата1
"Перемещение всех пользовательских файлов конфигурации в отдельную директорию"цитата2
"Пример использования, в ~/.bashrc, ~/.zshrc или ~/.xsession добавляем:"Ну и что это за перенос ВСЕХ файлов, если мне нужно полюбом .bashrc оставить в стандартном месте ?
Не страдайте фигней..