Як змусити Unity перезавантажувати ~ / .local / share / applications /


66

Скажімо, я змінив / додав myapp.desktopфайл у ~/.local/share/applications/. Протягом певного часу Ubuntu Unity все ще показуватиме мені ярлики старих програм на об'єктиві Unity під кнопкою Ubuntu. Щоб оновити список програм там, знадобиться деякий час (або лише один перезапуск).

Як змусити Unity перезавантажувати ~/.local/share/applicationsта правильно відображати ярлики в об'єктиві?


Ви пробували unity --reset?
sayantankhan

Корекція. Це просто повинно бути unity. Натисніть alt + F2 і введіть команду.
sayantankhan

Так. Це не допомогло. Він все ще показує стару назву програми після unityабо unity --reset(що було до того, як я змінив файл myapp.desktop).
Владимир

Як не дивно, здається, що це добре працює, коли я роблю саме те, що ви робите. Переконалися, що .desktopфайл виконується?
sayantankhan

Він працює лише після виходу з системи / перезавантаження. Спробуйте просто змінити назву існуючої програми всередині файлу робочого столу. Не змінюйте нічого іншого. Наприклад, додайте "Тест" до імені деяких існуючих додатків. Тепер натисніть кнопку Ubuntu і почніть вводити назву програми - вона все ще відображає стару назву без "Тесту" для мене. Я відтворив це як на робочих, так і на домашніх машинах та на ноутбуці дружини. Я думаю, що це приблизно на 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 це працює. Грубий сценарій редагування за допомогою цього рецепта знаходиться на сайті gist.github.com/hilbix/f468fcbb15c3f68670d8
Тіно,

4
просто поміщаючи копію файлу .desktop у ~ / .local / share / програми, які працювали на мене
chrismarx

Я зазвичай вручну редагую файл і додаю його .local/share/applications/. Пробував з допомогою команди з --delete-originalі я отримав попередження: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. Результатом було видалено вихідний файл і нічого не скопійовано у цільовий каталог. Evil OS ... в основному заграв мій файл, і мені довелося створити новий з нуля.
Даніель

2
Я все ще помічаю питання ОП, навіть коли це роблю.
JAB

Я також все ще помічаю проблему ОП, навіть коли це роблять (і навіть після перезавантаження) (Ubuntu 16.04).
Dan Nissenbaum

17

Спосіб зробити це - запустити команду

killall unity-scope-home

після відкриття тире процес запускається автоматично знову.

Потім відображаються правильні значки ...


1
Не працює у мене. Я видалив .desktopфайл, і він все ще відображається на compizпанелі запуску.
Тіно

Ну, застряг з BUG 1287663 рішення було використовувати gsettings setпотім( unity --replace & )
Tino

Я не знаю, що ви маєте на увазі під панеллю запуску compiz ?! Я думав, ти говориш про тире?
wa4557

Для мене добре працює, додатки перераховані знову
Sjaak Trekhaak

Будь-які альтернативи до 15.10? Я отримуюunity-scope-home: no process found
ardila

10

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


Це не спрацювало для мене. Запуск Ubuntu 16.04. На піктограмі запуску я все ще не бачу змін, внесених у файл .desktop.
RichArt

2
Ця команда оновлює лише бази даних типу MIME. Інші зміни не оновлюються. Дивіться: manpages.ubuntu.com/manpages/zesty/man1/…
hife

Це працювало для мене
aless80

працює для мене з
судо

8

Відповідно до цієї відповіді (і ви можете знайти багато інших у тому ж сенсі), на жаль, здається, що немає команди, щоб дозволити единості-застосунки-демона оновити кеш додатків. Але я можу підтвердити, що єдність автоматично виявить будь-які зміни з .desktopфайлами в ~/.local/share/applications. Якщо ці зміни одразу недоступні, спробуйте вийти та знову, щоб оновити їх.


3
Так, він автоматично виявить .... через годину ...
Владимир

@vladimir Як я вже говорив, якщо ви хочете, щоб зміни були негайно доступними, спробуйте вийти із системи та знову, щоб оновити їх.
Radu Rădeanu

3
Я повністю отримав вашу відповідь і, ймовірно, прийму її. Ви розумієте недоліки виходу з системи - усі відкриті додатки закриті. Це не рішення, це обхідне рішення, а не зручне для користувача. Ви будь-який випадковий розробник? Якщо так, чи не могли б ви вказати мені джерела демона? Я здогадуюсь, що це: об’єднання-лінзи-програми daemon.vala
vladimir

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

Деякі програми можуть перестати працювати належним чином після цієї команди. Наприклад, Chrome став повністю чорним.

unity --replace

Не могли б ви уточнити своє попередження (?)?
Занна

0

У мене була подібна проблема, виправлена ​​під час перезавантаження. Я використовую ubuntu 16.04

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.