Попытка восстановить кучу файлов .desktop из Ubuntu 14.04, скопированных в 16.04, но они не отображаются в Launcher.
Сделано следующее (/14.04 смонтировано на старом Ubuntu disk / FS)
cd ~/.local/share/applications
cp -pr /14.04/home/ring0/.local/share/applications/[bunch-of].desktop .
, но они не появляются после входа в 14.04 . (тот же пользователь / uid в обеих версиях)
Посмотрел /usr/share/applications, но файлы находятся в директории .local.
Глядя на структуру .desktop файлы в обеих версиях выглядят одинаково.
Что-нибудь еще для проверки / настройки?
Спасибо
Вы должны добавить их в список избранных программ. Чтобы прочитать текущий список:
~$ dconf read /com/canonical/unity/launcher/favorites
['application://nautilus.desktop', 'application://firefox.desktop', 'application://libreoffice-writer.desktop', 'application://unity-control-center.desktop', 'application://gnome-terminal.desktop', 'unity://running-apps', 'unity://expo-icon', 'unity://devices']
Чтобы записать новый список
dconf write /com/canonical/unity/launcher/favorites "['application://nautilus.desktop', 'application://firefox.desktop', 'application://libreoffice-writer.desktop', 'application://unity-control-center.desktop', 'application://gnome-terminal.desktop', 'unity://running-apps', 'unity://expo-icon', 'unity://devices']"
Невозможно прочитать dconf db 14.04 с помощью chroot, если ваш 14.04 все еще загрузочный, загрузите его, затем используйте dconf read ..., чтобы получить список. В противном случае напишите список вручную с ls ~/.local/share/applications.
Вы проверили, имеют ли файлы * .desktop разрешение на выполнение? Я скопировал один раз (с опцией -p) в 16.04 из / usr / share / applications / в ~ / .local / share / applications /. Файлы потеряли разрешение на выполнение. Я думаю, это похоже на ситуацию.
Текущие ответы содержат биты и фрагменты правильного подхода. В этом ответе я хотел бы предоставить более последовательный обзор того, что необходимо сделать для переноса файлов .desktop.
В новой системе должны быть установлены реальные приложения. Файлы .desktop - это просто ярлыки для этих приложений. Если фактическое приложение не установлено, бессмысленно копировать файлы .desktop. В соответствии с политикой безопасности Ubuntu (ссылка https://wiki.ubuntu.com/SecurityTeam/Policies), файлы .desktop, находящиеся в домашней папке пользователя, должны иметь исполняемый бит, установленный для запуска (также обсуждается на другом Ask Ubuntu вопрос здесь). Быстрый тест подтверждает, что они не попадают в пусковую установку, если не установлен бит исполняемого файла. Без установленного битового набора они не будут запускаться, и Unity сочтет это приложение незапланированным. (Обратите внимание, что если .desktop кэшируется в памяти, он все равно может появиться на панели запуска, когда вы удаляете исполняемые разрешения - не обманывайте себя этим). Используйте chmod +x file.desktop в терминале или щелкните правой кнопкой мыши на приложении, а на вкладке «Разрешения» установите флажок «Разрешить выполнение как программа». Еще одна потенциальная проблема - права собственности и права на чтение. Если файл принадлежит разным пользователям и группам, без разрешений на чтение, вы не можете получить доступ к файлу .desktop, поэтому он не будет запущен и не останется в Unity Launcher. Решение здесь - либо sudo chmod +r name.desktop, либо chown $USER:$USER name.desktop. ПРИМЕЧАНИЕ. Я поместил прочерк над частями, которые оказались неверными. По самой своеобразной причине Unity-пусковая установка отклоняется от политики безопасности. Размещение .desktop файлов в ~/.local/share/applications (как было показано в комментариях) не приводит к появлению их на Unity launcher. Эта папка предназначена для хранения ваших собственных пользовательских файлов .desktop. Добавление элементов в Unity launcher может выполняться вручную или через командную строку с помощью команды gsetting или dconf. Однако есть альтернативные подходы. См. Это сообщение о нескольких способах добавления файлов .desktop в Launcher: https://askubuntu.com/a/829228/295286