Jak wymusić przeładowanie Unity ~ / .local / share / applications /

66

Powiedzmy, że zmieniłem / dodałem myapp.desktopplik o ~/.local/share/applications/. Przez pewien czas Ubuntu Unity nadal pokaże mi stare skróty do aplikacji w soczewce Unity pod przyciskiem Ubuntu. Aktualizacja listy aplikacji zajmie trochę czasu (lub tylko jeden restart).

Jak zmusić Unity do ponownego załadowania ~/.local/share/applicationsi prawidłowego odzwierciedlenia skrótów w obiektywie?

Vladimir
źródło
Próbowałeś unity --reset?
sayantankhan
Korekta. Tak powinno być unity. Naciśnij alt + F2 i wpisz polecenie.
sayantankhan
Tak. To nie pomogło. Nadal pokazuje starą nazwę aplikacji po unitylub unity --reset(która była przed modyfikacją pliku myapp.desktop).
vladimir
Dziwne, wydaje się, że działa dobrze, kiedy robię dokładnie to samo, co ty. Upewnij się, że .desktopplik jest wykonywalny?
sayantankhan
Działa tylko po wylogowaniu / ponownym uruchomieniu. Spróbuj po prostu zmienić nazwę istniejącej aplikacji w pliku pulpitu. Nie zmieniaj nic innego. Na przykład dodaj „Test” do nazwy istniejącej aplikacji. Teraz naciśnij przycisk Ubuntu i zacznij pisać nazwę aplikacji - nadal pokazuje mi starą nazwę bez „Testuj”. Powiedziałem to zarówno na urządzeniach domowych, jak i domowych oraz na laptopie żony. Myślę, że jest w 100% odtwarzalna.
vladimir

Odpowiedzi:

69

Trochę późno, ale natknąłem się na ten wątek, zanim znalazłem rozwiązanie, przynajmniej na mój problem, googlując coś związanego, prawie się poddając.

Zgodnie z tym przewodnikiem help.ubuntu.com nie edytuj ani nie twórz .desktopplików w /usr/local/share/applicationslub ~/.local/share/applications. Zamiast tego utwórz plik gdzieś indziej i użyj

desktop-file-install <your_file.desktop>

aby dodać plik.

Np. Tworzysz ~/myapp.desktopi robisz

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

Istniejące pliki o tej samej nazwie zostaną zastąpione, a jedność zaktualizowana, możesz użyć, --delete-originaljeśli źródło nie jest już potrzebne, lub

sudo desktop-file-install ~/myapp.desktop

zainstalować go dla wszystkich użytkowników.

Rodin
źródło
+1 to działa. Zgrubny
Tino
4
po prostu umieszczenie kopii pliku .desktop w ~ / .local / share / application zadziałało dla mnie
chrismarx 18'15
Zwykle ręcznie edytuję plik i dodam go do .local/share/applications/. Próbowałem za pomocą polecenia z --delete-originali dostałem ostrzeżenie: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. W rezultacie plik źródłowy został usunięty i nic nie zostało skopiowane do katalogu docelowego. Evil OS ... w zasadzie nuknął mój plik i musiałem stworzyć nowy od zera.
Daniel
2
Nadal dostaję problem, który OP zauważyło, nawet gdy to robiłem.
JAB
Nadal dostaję zauważony problem, nawet gdy to robię (a nawet po ponownym uruchomieniu) (Ubuntu 16.04).
Dan Nissenbaum
17

Sposobem na to jest uruchomienie polecenia

killall unity-scope-home

po otwarciu myślnika proces rozpoczyna się automatycznie.

Wyświetlane są prawidłowe ikony ...

wa4557
źródło
1
Nie działa po mojej stronie. Usunąłem .desktopplik, który nadal pojawia się na compizpasku uruchamiania.
Tino
Cóż, zatrzymany z BUG 1287663 rozwiązaniem było wykorzystanie gsettings setnastępnie( unity --replace & )
Tino
Nie wiem, co masz na myśli przez pasek uruchamiania compiz ?! Myślałem, że mówisz o desce rozdzielczej?
wa4557
Działa dla mnie dobrze, aplikacje są ponownie wymienione
Sjaak Trekhaak
Jakieś alternatywy w 15.10? Dostajęunity-scope-home: no process found
ardila
10

update-desktop-databaseto polecenie odświeżenia .desktopbazy danych.

Pekka Kuronen
źródło
To mi nie zadziałało. Uruchamianie Ubuntu 16.04. Nadal nie widzę na ikonie programu uruchamiającego zmian dokonanych w pliku .desktop.
RichArt
2
To polecenie aktualizuje tylko bazy danych typu MIME. Nie aktualizuje żadnych innych zmian. Zobacz: manpages.ubuntu.com/manpages/zesty/man1/...
hife
To zadziałało dla mnie
aless80
działa dla mnie z sudo
Mahoor13
8

Zgodnie z tą odpowiedzią (i można znaleźć wiele innych w tym samym sensie), niestety wydaje się, że nie ma polecenia pozwalającego demonowi unity-applications-odświeżać pamięć podręczną aplikacji. Ale mogę potwierdzić, że jedność automatycznie wykryje wszelkie zmiany w .desktopplikach ~/.local/share/applications. Jeśli te zmiany nie są natychmiast dostępne, spróbuj się wylogować i zalogować ponownie, aby je odświeżyć.

Radu Rădeanu
źródło
3
Tak, automatycznie wykryje .... za godzinę ...
Vladimir
@vladimir Jak już powiedziałem, jeśli chcesz, aby zmiany były natychmiast dostępne, spróbuj się wylogować i zalogować ponownie, aby je odświeżyć.
Radu Rădeanu,
3
W pełni zrozumiałem twoją odpowiedź i prawdopodobnie ją zaakceptuję. Rozumiesz wady wylogowywania się - wszystkie otwarte aplikacje zostały zamknięte. To nie jest rozwiązanie, to obejście i nie jest przyjazne dla użytkownika. Czy jesteś deweloperem przez przypadek? Jeśli tak, czy możesz wskazać mi źródła demonów? Chyba to jest to: unity-lens-aplikacje daemon.vala
Vladimir
3

Ta odpowiedź nie wymaga ponownego uruchomienia komputera.


Chociaż dość późno, istnieje polecenie narzędzia do aktualizacji nazwanej pamięci podręcznej bazy danych na pulpicie update-desktop-database.

Aktualizując dodane elementy $HOME/.local/share/applications/, użyj:

>> update-desktop-database

Aktualizacja spożywczych addded w tych globalnych, jak /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applications, itd., Zastosowanie:

>> sudo update-desktop-database
Adam
źródło
To działa dla mnie.
Honghe.Wu
0

Niektóre aplikacje mogą przestać działać poprawnie po tym poleceniu. Na przykład chrom stał się całkowicie czarny.

unity --replace
Juliano ENS
źródło
Czy możesz wyjaśnić swoje ostrzeżenie (?)?
Zanna,
0

Miałem podobny problem, naprawiony przy ponownym uruchomieniu. Używam Ubuntu 16.04

Zwykle tworzę .desktoppliki, /usr/share/applications/jeśli chcę udostępnić pliki pulpitu innym użytkownikom i ~/.local/share/applicationstylko dla jednego użytkownika. I zwykle zaczynam od nowa.

Saahithyan Vigneswaran
źródło