У меня странная проблема с 12.04 LTS.
Независимо от того, что я делаю с файлом ~/.config/user-dirs.dirs
, каждый раз, когда я снова вхожу в следующий раз, этот файл получает только значение $ HOME. Что-то происходит во время входа в систему с использованием lightdm, который переопределяет содержимое этого файла.
Если я войду в систему и сделаю xdg-user-dirs-update --force
, то содержимое файла в порядке. После того, как я выйду, файл все еще в порядке. Когда я снова захожу в систему с помощью lightdm, что-то идет не так.
Это довольно раздражает.
Существует сценарий автозапуска
/etc/xdg/autostart/user-dirs-update-gtk.desktop
, который вызывает программу xdg-user-dirs-gtk-update
, которая, по-видимому, не имеет man
страницы или --help
объяснения, но я предполагаю, что это может быть причиной. [ 117]
Вы можете либо удалить этот скрипт (который, кажется, принадлежит пакету xdg-user-dirs-gtk
, и может быть воссоздан при его обновлении), либо добавить строку Hidden=true
в файл автозапуска, что должно препятствовать его запуску (и Вас спросят, хотите ли вы сохранить свою измененную копию во время будущих обновлений).
После внесения изменений и сохранения файла, но перед повторным входом в систему выполните
echo "enabled=false" > ~/.config/user-dirs.conf
. Это создаст user-dirs . [ 112] conf , который должен предотвратить дальнейший сброс.
Поиск с помощью Google Вашей проблемы привел меня к xdg-user-dirs
, который может быть установлен от Центра программного обеспечения Ubuntu. Это требует следующей функции:
Эта программа читает конфигурационный файл и ряд каталогов по умолчанию. Это затем создает локализованные версии этих каталогов в пользовательском корневом каталоге и настраивает файл конфигурации в $ (XDG_CONFIG_HOME)/user-dirs.dirs (значения по умолчанию XDG_CONFIG_HOME к ~/.config), что приложения могут читать для нахождения этих каталогов.
Полная документация может быть найдена здесь.
Предлагаю проверить следующие моменты:
XDG_CONFIG_HOME
в другое место, как '~ / .config`. grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*
В качестве обходного пути используйте символические связи между стандартом и ваши пользовательские имена каталогов.
, например,
cd ${HOME}
function link() {
local dir=$1
shift 1
[ -e ${dir} ] || mkdir -p ${dir}
for name in $*
do
if [ -L ${name} ]
then
if [ "$(readlink ${name})" = "${dir}" ]
then
[ -e "${dir}" ] || mkdir -p "${dir}"
echo "${name} allready converted to ${dir}"
else
echo "${name} (link) converted to ${dir}"
[ -e "${dir}" ] || mkdir -p "${dir}"
mv -av ${name}/* ${dir}/ 2>/dev/null || true # can be emtpy
mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
rm -f ${name}
ln -svf ${dir} ${name}
fi
else
if [ -d ${name} ]
then
mv -av ${name}/* ${dir}/ 2>/dev/null || true # can be emtpy
mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
rmdir ${name}
ln -sv ${dir} ${name};
echo "${name} (dir) converted to ${dir}"
else
ln -sv ${dir} ${name};
echo "${name} linked to ${dir}"
fi
fi
done
}
# real DE EN
link ~/data/templates Vorlagen Templates
link ~/data/public Öffentlich Public
link ~/data/documents Dokumente Documents
link ~/data/music Musik Music
link ~/data/photo Bilder Pictures
link ~/data/video Videos
link ~/data/privat Privat
Записи будут сброшены, если пользовательские каталоги не существуют при запуске обновления. Возможно ли, что ваш домашний каталог не подключен до конца процесса входа в систему? Может быть, вы можете установить значения по умолчанию в /etc/xdg/user-dirs.defaults
, чтобы они все равно переписывались по тем же путям?