Скопируйте Unity Launchers с 14.04 по 16.04

Попытка восстановить кучу файлов .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 файлы в обеих версиях выглядят одинаково.

Что-нибудь еще для проверки / настройки?

Спасибо

1
задан 30 September 2016 в 18:30

3 ответа

Вы должны добавить их в список избранных программ. Чтобы прочитать текущий список:

~$ 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.

3
ответ дан 23 May 2018 в 05:37

Вы проверили, имеют ли файлы * .desktop разрешение на выполнение? Я скопировал один раз (с опцией -p) в 16.04 из / usr / share / applications / в ~ / .local / share / applications /. Файлы потеряли разрешение на выполнение. Я думаю, это похоже на ситуацию.

0
ответ дан 23 May 2018 в 05:37
  • 1
    Внимательно прочитав вопрос, вы увидите, что копия находится от /14.04/home/ring0/.local/share/applications/[bunch-of].desktop до ~/.local/share/applications (где ~ - ring0). В любом случае, проверьте ACL, и они верны. – Ring Ø 30 September 2016 в 19:44
  • 2
    Для запуска исполняемый файл не имеет значения. – Jacob Vlijm 3 January 2017 в 22:39
  • 3
    @JacobVlijm Nope. Если файлы .desktop расположены в любом месте в папке пользователя, что также ~/.local/share/applications/, им необходимы исполняемые разрешения для запуска и размещения на панели запуска. Это соответствует политике безопасности Ubuntu. Я также проверил его. Пусковая установка без разрешений exec не может быть размещена на пусковой установке – Sergiy Kolodyazhnyy 5 January 2017 в 12:51
  • 4
    @Serg, действительно, но нет. Ни одна из моих пусковых установок в ~/.local/share/applications не является исполняемой. Никогда не было иначе. Что ты бежишь? – Jacob Vlijm 5 January 2017 в 12:55
  • 5
    @JacobVlijm Ubuntu 16.04 LTS. Пожалуйста, прочитайте wiki.ubuntu.com/SecurityTeam/Policies Я не знаю, что не так с вашим Ubuntu, но так работают все версии Ubuntu. Если вы хотите, я могу предоставить цитаты из других ответов AU. Только элементы, помещенные в /usr/share/application, не требуют бита исполняемого бита. Для папки пользователя требуется бит – Sergiy Kolodyazhnyy 5 January 2017 в 12:57

Текущие ответы содержат биты и фрагменты правильного подхода. В этом ответе я хотел бы предоставить более последовательный обзор того, что необходимо сделать для переноса файлов .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
0
ответ дан 23 May 2018 в 05:37
  • 1
    # 2 в значительной степени полностью неверно (- кроме части собственности, хотя снова x не требуется в ~ / .local / share / applications – doug 8 January 2017 в 16:35
  • 2
    @doug Я поместил strickethough неправильные части. Тот факт, что вам нужен исполняемый бит, установленный для двойного щелчка, является правдой - в вопросе о проблемах есть буквально много вопросов о том, почему мой файл .desktop не работает? & Quot; и 90% времени это исполняемый бит. Проверьте ссылки, которые я предоставил – Sergiy Kolodyazhnyy 8 January 2017 в 16:48
  • 3
    D. Щелчок, да, но вопрос касался использования через пусковую установку (единство). Кроме того, 2-я собственная собственность, вероятно, также не имеет отношения к ~ / .local / share / applications – doug 8 January 2017 в 16:57
  • 4
    @doug мое первоначальное предположение заключалось в том, что политика безопасности также распространяется на Unity launcher, что оказалось ложным. В моих тестах у меня было несколько пусковых установок, которые просто не вставили бы, и я все еще не могу объяснить. Что касается собственности, ну, попробуйте сами: chmod root:root один из файлов .desktop и посмотрите, придерживается ли он в Unity Launcher. Я проверяю свои ответы, поэтому я знаю, что собственность влияет на него. – Sergiy Kolodyazhnyy 8 January 2017 в 17:06
  • 5
    @doug позволяет мне добавить исправление к этому: если файл принадлежит другому пользователю: группе, а у вас (или вашей группы) нет разрешений на чтение по этому файлу, то это не сработает. Если файл -rwxr-xr-x 1 root root (так, разрешение на чтение предоставляется всем), тогда он может придерживаться панели запуска – Sergiy Kolodyazhnyy 8 January 2017 в 17:16

Другие вопросы по тегам:

Похожие вопросы: