[devel] xdg-* и как жить дальше

Afanasov Dmitry ender на altlinux.org
Пт Фев 11 09:02:53 UTC 2011


On Thu, Feb 10, 2011 at 06:35:46PM +0300, Радик Юсупов wrote:
> http://www.freedesktop.org/wiki/Software/xdg-user-dirs
посмотрел я зверя. признаться, мне не нравится логика
xdg-user-dirs-update. даже название не самое логичное для complete'а.

в логике user-dir я вижу несколько частей:
1. единое хранилище для хранилище для базовых пользовательских путей. это
документы, рабочий стол, закачки, шаблоны - ну вы видели. к этому
хранилищу должны обращаться все gui приложения, а не настраиваться каждый
по отдельности.
2. русификация данных путей. независимо от выбранного языка, пути могут
быть на родном языке.
3. автоматическое создание этих каталогов в случае их отсутствия. это
часть функционала зоопарка /etc/skel.$LANG.

принцип единого хранилища считаю удобным. раздражает, когда переименовал
Documents в kde, а gnome создает обратно.

идея русификации тоже удобна, но для отключения, что очень нужно,
приходится жертвовать автосозданием. автоматом создаются только
локализованные пути, латиница создается только для LANG с латиницей.

принцип действия user-dir:

в системном и пользовательском user-dirs.defaults находятся неперведенные
описания каталогов. это чистой воды msgid для gettext'а.

при запуске xdg-user-dirs считывается user-dirs.defaults, переводится, и
на этом основании создаются каталоги.

созданные каталоги записываются в то самое хранилище user-dirs.dirs.

при повторном запуске xdg-user-dirs-update сравнивается home и
содержимое user-dirs.dirs. если в user-dirs.dirs каталога нет, то он
_переводится_ и создается. если нет в home, то проставляется fallback ==
$HOME. проставляется, и сбрасывается в user-dirs.dirs.

выводы:
1. в user-dirs.defaults указываются только называния для перевода. нет,
конечно там можно сказать какое-нибудь filmoteka, и она так и создастся
(msgid нет переводе), но если хочется films латиницей, то там сделать это
получится.
2. прописанное в user-dirs.dirs автоматом не создается, но после удаления
может сбросится.

исходя из всего этого, для настройки этого самого хранилища приходится
вручную править user-dirs.dirs на нужные себе каталоги, что неудобно. но
на это можно не обращать внимание при новой установке.

так что с текущей логикой xdg-user-dirs не приспособлен для обновлений,
когда нужно оставить текущую структуру и лишь дать возможность прописать
её в хранилище. а вот для новых установок вполне пригодна - поставил,
изменил содержимое user-dirs.dirs, изменил либо вручную либо через gui и
пользуешься системой.

> В своем дистре это реализовано следующими кривохаками:
> http://git.altlinux.org/people/radik/packages/?p=branding.git;a=commit;h=cc7c177d5f982526d6c902c726a0488e93c52dca 
> http://git.altlinux.org/people/radik/packages/?p=branding.git;a=commit;h=2cda7566bd4b9c383b01c54129ac3fae641db5a1 
пока не будет обеспечено сохранение структуры при обновлении это не хаки,
это кастомиация дистрибутива.

> Собственно в самом m-p-d пришлось следующее:
> http://git.altlinux.org/people/radik/packages/?p=mkimage-profiles-desktop.git;a=commit;h=72b9772822017e35677cd5cbc1969e295152f628 
> http://git.altlinux.org/people/radik/packages/?p=mkimage-profiles-desktop.git;a=commit;h=368e270fd5b0a595a2312046e2a58d90899689e6 
а вот от удаления папки Desktop можно избавится, реализовав вызов
xdg-user-dirs для новых пользователей. это позволит убрать Desktop и
Documents из etcskel.

-- 
С уважением
Афанасов Дмитрий
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20110211/99ccaab5/attachment-0001.bin>


Подробная информация о списке рассылки Devel