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. -- С уважением Афанасов Дмитрий