Как заставить перезагрузить Unity ~ / .local / share / Applications /

66

Допустим, я изменил / добавил myapp.desktopфайл в ~/.local/share/applications/. Некоторое время Ubuntu Unity будет показывать мне ярлыки старых приложений на объективе Unity под кнопкой Ubuntu. Обновление списка приложений займет некоторое время (или только один перезапуск).

Как заставить принудительно перезагрузить Unity ~/.local/share/applicationsи правильно отразить ярлыки в объективе?

владимир
источник
Ты пробовал unity --reset?
Саянтанхан
Коррекция. Так и должно быть unity. Нажмите alt + F2 и введите команду.
Саянтанхан
Да. Это не помогло. Он по-прежнему показывает старое имя приложения после unityили unity --reset(что было до того, как я изменил файл myapp.desktop).
Владимир
Странно, кажется, что все работает нормально, когда я делаю то же самое, что и ты Убедитесь, что .desktopфайл исполняемый?
Саянтанхан
Работает только после выхода из системы / перезагрузки. Попробуйте просто изменить имя существующего приложения внутри файла рабочего стола. Больше ничего не меняй. Например, добавьте «Test» в название какого-либо существующего приложения. Теперь нажмите кнопку Ubuntu и начните вводить имя приложения - оно все еще показывает старое имя без «Test» для меня. Я воспроизвел это на рабочих и домашних машинах и на ноутбуке жены. Я думаю, что это примерно на 100% воспроизводимо.
Владимир

Ответы:

69

Немного поздно, но я наткнулся на эту тему, прежде чем нашел решение, по крайней мере, для моей проблемы, погуглил что-то связанное, почти сдался.

Согласно этому руководству help.ubuntu.com , не просто редактируйте или создавайте свои .desktopфайлы в /usr/local/share/applicationsили ~/.local/share/applications. Вместо этого создайте файл где-нибудь еще и используйте

desktop-file-install <your_file.desktop>

добавить файл.

Например, вы создаете ~/myapp.desktopи делаете

desktop-file-install --dir=$HOME/.local/share/applications ~/myapp.desktop

Существующие файлы с тем же именем будут перезаписаны и обновлены как единое целое, вы можете использовать, --delete-originalесли источник больше не нужен, или

sudo desktop-file-install ~/myapp.desktop

установить его для всех пользователей.

Родин
источник
+1 это работает. Примерный
Tino
4
просто поместив копию файла .desktop в ~ / .local / share / Applications работал для меня
chrismarx
Я обычно вручную редактирую файл и добавляю его в .local/share/applications/. Пробовал с помощью команды с --delete-originalи я получил предупреждение: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. В результате исходный файл был удален и ничего не скопировано в целевой каталог. Злая ОС ... в основном уничтожила мой файл, и мне пришлось создавать новый с нуля.
Даниил
2
Я все еще замечаю проблему, замеченную ОП, даже когда делаю это.
JAB
Я также до сих пор замечаю проблему, которую OP замечал даже при этом (и даже после перезапуска) (Ubuntu 16.04).
Дан Ниссенбаум
17

Способ сделать это - запустить команду

killall unity-scope-home

после открытия приборной панели процесс снова запускается автоматически.

Затем отображаются правильные значки ...

wa4557
источник
1
Не работает на моей стороне. Я удалил .desktopфайл, и он все еще отображается в compizпанели запуска.
Тино
Ну, застрял с BUG 1287663 решение было использовать gsettings setзатем( unity --replace & )
Tino
Я не знаю, что вы имеете в виду под запуском compiz ?! Я думал, что вы говорите о тире?
wa4557
У меня работает нормально, Приложения снова перечислены
Сяак Трехаак
Какие-нибудь альтернативы в 15.10? Я получаюunity-scope-home: no process found
Ардила
10

update-desktop-databaseэто команда для обновления .desktopбазы данных.

Пекка Куронен
источник
Это не сработало для меня. Запуск Ubuntu 16.04. Я все еще не вижу на значке запуска изменения, внесенные в файл .desktop.
RichArt
2
Эта команда обновляет только базы данных MIME-типа. Он не обновляет никаких других изменений. Смотрите: manpages.ubuntu.com/manpages/zesty/man1/…
hife
У меня это сработало
aless80
работает для меня с sudo
Mahoor13
8

Согласно этому ответу (и вы можете найти много других в том же смысле), к сожалению, похоже, что нет команды, которая позволила бы Демону единства приложений обновить свой кэш приложений. Но я могу подтвердить, что Unity автоматически обнаружит любые изменения в .desktopфайлах ~/.local/share/applications. Если эти изменения не доступны сразу, попробуйте выйти и снова, чтобы обновить его.

Раду Рэдяну
источник
3
Да, он автоматически обнаружит .... через час ...
Владимир
@vladimir Как я уже сказал, если вы хотите, чтобы изменения были немедленно доступны, попробуйте выйти из системы и войти снова, чтобы обновить ее.
Раду Радеану
3
Я полностью получил ваш ответ и, вероятно, приму его. Вы понимаете недостатки выхода из системы - все открытые приложения закрыты. Это не решение, это обходной путь и не удобный для пользователя. Вы разработчик случайно? Если да, не могли бы вы указать мне на источники демонов? Наверное, это так: unity-lens-Applications daemon.vala
Владимир
3

Этот ответ не включает перезагрузку рабочего стола.


Хотя и довольно поздно, есть утилита для обновления кеша базы данных рабочего стола update-desktop-database.

Обновление материалов добавлено $HOME/.local/share/applications/, используйте:

>> update-desktop-database

Обновление питания addded в глобальные, как /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applicationsи т.д., использование:

>> sudo update-desktop-database
Адам
источник
Это работает для меня.
Honghe.Wu
0

Некоторые приложения могут перестать работать должным образом после этой команды. Хром, например, стал полностью черным.

unity --replace
Джулиано ЭНС
источник
Не могли бы вы уточнить свое предупреждение (?)?
Занна
0

У меня была похожая проблема, исправленная при перезагрузке. Я использую Ubuntu 16.04

Я обычно создаю .desktopфайлы, /usr/share/applications/если хочу поделиться файлами на рабочем столе с другими пользователями и ~/.local/share/applicationsтолько для одного пользователя. И я обычно перезагружаюсь.

Саахитян Виньесваран
источник