Автор Тема: Появление каталогов из /home на рабочем столе  (Прочитано 2636 раз)

Sim

  • Гость
В общем-то, в названии темы описана суть проблемы, которая уже решена, решил разместить на форуме, как помощь тем, кто наступит на те же грабли. Итак:

После некоторого "баловства шаловливых ручек" перезагрузился и обнаружил, что все каталоги из хомяка разместились на рабочем столе.

Причем интересен факт в том, что это проявлялось в типе комнаты "ПАПКА", в любых других комнатах ничего подобного не было. Это были именно каталоги и файлы из /home, а не ярлыки на них. Сам же каталог "Рабочий стол" из хомяка был пуст. Попытка удаления "лишнего" с рабочего стола удаляла их из домашнего каталога.   

Можно было просто использовать любой тип комнаты, кроме "Папка", но я уже привык к этому виджету и хотел найти причину такого поведения системы. В результате нашел решение:

1) Удалить каталог "Рабочий стол" из /home
2)  Открыть на редактирование файл ~/.config/user-dirs.dirs
Сам конфиг файла выглядит примерно следующим образом:
XDG_DESKTOP_DIR="$HOME/"
XDG_DOWNLOAD_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"
XDG_PHOTOS_DIR="$HOME/"
XDG_MOVIES_DIR="$HOME/"
Результатом ошибки было то, что в строчке
XDG_DESKTOP_DIR="$HOME/" Отсутствовала запись "Рабочий стол", как впрочем и другие записи
После приведения конфига к правильному виду, т.е. записи правильных значений
XDG_DESKTOP_DIR="$HOME/Рабочий стол" и перезагрузки все встало на свои места.
« Последнее редактирование: 12.03.2015 12:24:17 от Эрик »

dango

  • Гость
Спасибо. Хоть и не пользуюсь KDE, но решение оцениваю как нужное и применимое не только для KDE. Сам же правкой файла
~/.config/user-dirs.dirs
назначаю у себя нужные каталоги в нужном месте с нужными именами.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Сам конфиг файла выглядит примерно следующим образом:
XDG_DESKTOP_DIR="$HOME/"
XDG_DOWNLOAD_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"
XDG_PHOTOS_DIR="$HOME/"
XDG_MOVIES_DIR="$HOME/"
Результатом ошибки было то, что в строчке
XDG_DESKTOP_DIR="$HOME/" Отсутствовала запись "Рабочий стол", как впрочем и другие записи
После приведения конфига к правильному виду, т.е. записи правильных значений
XDG_DESKTOP_DIR="$HOME/Рабочий стол" и перезагрузки все встало на свои места.

Вообще-то здесь в каждой строке ошибки:
после XDG_*_DIR должен быть указан полный путь к директории содержащей каталоги и файлы.
$ cat .config/user-dirs.dirs |head -n 1
XDG_DOCUMENTS_DIR="$HOME/Documents"
Дополнить и/или отредактировать этот файл можно по своему вкусу и предпочтениям.
В том выбросе который привели вы, ни разу не указаны целевые директории.
Вообще. Нигде.

dango

  • Гость
В том выбросе который привели вы, ни разу не указаны целевые директории.
Вообще. Нигде.
Вопрос, что может так расхерачить конфиг?
Simply Linux 7.0.4
~/.config/user-dirs.dirs
Бэкап исходного по умолчанию
cat ~/.config/user-dirs.dirs.bak
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Рабочий стол"
XDG_DOWNLOAD_DIR="$HOME/Загрузки"
XDG_TEMPLATES_DIR="$HOME/Документы/Шаблоны"
XDG_PUBLICSHARE_DIR="$HOME/Общедоступные"
XDG_DOCUMENTS_DIR="$HOME/Документы"
XDG_MUSIC_DIR="$HOME/Документы/Музыка"
XDG_PICTURES_DIR="$HOME/Документы/Изображения"
XDG_VIDEOS_DIR="$HOME/Документы/Видео"
XDG_PHOTOS_DIR="$HOME/Документы/Фотографии"
XDG_MOVIES_DIR="$HOME/Документы/Фильмы"
Рабочий, скорректированный по себя
cat ~/.config/user-dirs.dirs
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOWNLOAD_DIR="$HOME/downloads"
XDG_TEMPLATES_DIR="$HOME/templates"
XDG_PUBLICSHARE_DIR="$HOME/shared"
XDG_DOCUMENTS_DIR="$HOME/documents"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/pictures"
XDG_VIDEOS_DIR="$HOME/video"
XDG_PHOTOS_DIR="$HOME/pictures"
XDG_MOVIES_DIR="$HOME/video"

Sim

  • Гость
Вообще-то здесь в каждой строке ошибки:
Не спорю, уважаемый. Но я решил свою проблему, так как описал.

Sim

  • Гость
Speccyfighter

На самом деле в этом хомяке кто уже только не стоял (начиная от симплика, е17 и заканчивая убунту)  ;-)
Я же написал в первом посте, что ошибка была результатом моих экспериментов. Приходилось даже менять владельца. И как выглядел первоначально мой  ~/.config/user-dirs.dirs я даже не в курсе.

 

dango

  • Гость
На самом деле в этом хомяке кто уже только не стоял (начиная от симплика, е17 и заканчивая убунту)
Вот кстати, напомнили. Как-то при очередной тестировании подсунул инсталлятору раздел /home с пользовательским каталогом, очищенный от всех конфигов. Внезапно был малость озадачен в новой системе под пользователем отсутствием ~/.bashrc. Как следствие, получил терминал дефолтнее некуда. Исправляется на раз, но задумался. Надо бы проверить.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Так, при создании нового пользователя, если у него уже есть домашний каталог, система ничего с каталогом не делает.

dango

  • Гость
Так, при создании нового пользователя, если у него уже есть домашний каталог, система ничего с каталогом не делает.
Это и была дежурная версия. Спасибо.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Так, при создании нового пользователя, если у него уже есть домашний каталог, система ничего с каталогом не делает.
Это и была дежурная версия. Спасибо.

Для прояснения:
ключ -k (useradd) через команду, невозможно использовать без ключа -m, а ключ -m не будет работать потому, что каталог существует. Соответственно скелейтон в него не попадёт.
/etc/skel/*

dango

  • Гость
Всем спасибо. Прояснили.