So erzwingen Sie das Neuladen von Unity ~ / .local / share / applications /

66

Nehmen wir an, ich habe eine myapp.desktopDatei unter geändert / hinzugefügt ~/.local/share/applications/. Für einige Zeit zeigt mir Ubuntu Unity immer noch alte Anwendungsverknüpfungen bei Unity unter der Ubuntu-Schaltfläche. Es dauert einige Zeit (oder nur einen Neustart), um die Anwendungsliste dort zu aktualisieren.

Wie kann ich das Neuladen von Unity erzwingen ~/.local/share/applicationsund Verknüpfungen im Objektiv korrekt wiedergeben?

Wladimir
quelle
Hast du es versucht unity --reset?
sayantankhan
Korrektur. Es sollte einfach so sein unity. Drücken Sie Alt + F2 und geben Sie den Befehl ein.
Sayantankhan
Ja. Es hat nicht geholfen. Es zeigt immer noch den alten Anwendungsnamen nach unityoder unity --reset(der war, bevor ich die Datei myapp.desktop geändert habe).
Vladimir
Seltsamerweise scheint es gut zu funktionieren, wenn ich genau dasselbe tue, was du tust. Haben Sie sichergestellt, dass die .desktopDatei ausführbar ist?
sayantankhan
Es funktioniert nur nach dem Abmelden / Neustarten. Versuchen Sie einfach, den Namen der vorhandenen Anwendung in der Desktop-Datei zu ändern. Ändere nichts anderes. Fügen Sie beispielsweise "Test" zum Namen einer vorhandenen App hinzu. Drücken Sie nun die Ubuntu-Taste und geben Sie den Namen der Anwendung ein - es wird immer noch der alte Name ohne "Test" für mich angezeigt. Ich habe es sowohl auf Arbeits- als auch auf Heimcomputern und auf dem Laptop meiner Frau reproduziert. Ich denke, es ist zu 100% reproduzierbar.
Wladimir

Antworten:

69

Ein bisschen zu spät, aber ich bin über diesen Thread gestolpert, bevor ich eine Lösung gefunden habe, zumindest für mein Problem, etwas Ähnliches gegoogelt und fast aufgegeben habe.

Bearbeiten oder erstellen Sie Ihre Dateien gemäß dieser Anleitung unter help.ubuntu.com nicht einfach .desktopin /usr/local/share/applicationsoder ~/.local/share/applications. Erstellen Sie die Datei stattdessen an einer anderen Stelle und verwenden Sie sie

desktop-file-install <your_file.desktop>

um die Datei hinzuzufügen.

ZB kreierst du ~/myapp.desktopund machst es

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

Vorhandene Dateien mit demselben Namen werden überschrieben und die Einheit wird aktualisiert. Sie können sie verwenden, --delete-originalwenn die Quelle nicht mehr benötigt wird, oder

sudo desktop-file-install ~/myapp.desktop

um es für alle Benutzer zu installieren.

Rodin
quelle
+1 das funktioniert. Ein grobes Bearbeitungsskript, das dieses Rezept verwendet, finden Sie unter gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino,
4
Nur eine Kopie der .desktop-Datei in ~ / .local / share / applications abzulegen, hat für mich funktioniert
chrismarx
Normalerweise bearbeite ich die Datei manuell und füge sie hinzu .local/share/applications/. Versucht , den Befehl mit --delete-originalund ich bekam eine Warnung: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. Das Ergebnis war, dass die Quelldatei gelöscht und nichts in das Zielverzeichnis kopiert wurde. Evil OS ... hat meine Datei grundlegend überarbeitet und ich musste eine neue von Grund auf neu erstellen.
Daniel
2
Ich bekomme immer noch das Problem OP bemerkt, auch wenn Sie dies tun.
JAB
Ich bekomme auch noch das Problem OP aufgefallen, auch wenn ich dies tue (und auch nach dem Neustart) (Ubuntu 16.04).
Dan Nissenbaum
17

Um dies zu tun, führen Sie den Befehl aus

killall unity-scope-home

nach dem öffnen des dash wird der prozess automatisch neu gestartet.

Die richtigen Symbole werden dann angezeigt ...

wa4557
quelle
1
Funktioniert nicht an meiner Seite. Ich habe eine .desktopDatei entfernt und sie wird immer noch in der compizStartleiste angezeigt.
Tino
Nun, bei BUG 1287663 sollte die Lösung verwendet werden, gsettings setgefolgt von( unity --replace & )
Tino
Ich weiß nicht, was Sie mit Compiz-Startleiste meinen ?! Ich dachte du sprichst über das Dash?
wa4557
Funktioniert gut für mich, Anwendungen sind wieder aufgeführt
Sjaak Trekhaak
Irgendwelche Alternativen in 15.10? Ich bekommeunity-scope-home: no process found
Ardila
10

update-desktop-databaseist der Befehl zum Aktualisieren der .desktopDatenbank.

Pekka Kuronen
quelle
Das hat bei mir nicht funktioniert. Ausführen von Ubuntu 16.04. Ich sehe immer noch nicht auf dem Launcher-Symbol die Änderungen, die in der .desktop-Datei vorgenommen wurden.
RichArt
2
Dieser Befehl aktualisiert nur Datenbanken vom Typ MIME. Andere Änderungen werden nicht aktualisiert. Siehe: manpages.ubuntu.com/manpages/zesty/man1/...
Hife
Es hat bei mir
funktioniert
arbeitet für mich mit sudo
Mahoor13
8

Nach dieser Antwort (und Sie können viele andere im gleichen Sinne finden) scheint es leider keinen Befehl zu geben, den Anwendungs-Cache des unity-applications-daemons aktualisieren zu lassen. Ich kann jedoch bestätigen, dass Unity Änderungen an .desktopDateien in automatisch erkennt ~/.local/share/applications. Wenn diese Änderungen nicht sofort verfügbar sind, melden Sie sich ab und wieder an, um sie zu aktualisieren.

Radu Rădeanu
quelle
3
Ja, es wird automatisch erkennen ... in einer Stunde ...
Vladimir
@vladimir Wie gesagt, wenn die Änderungen sofort verfügbar sein sollen, melden Sie sich ab und wieder an, um sie zu aktualisieren.
Radu Rădeanu
3
Ich habe Ihre Antwort vollständig erhalten und werde sie wahrscheinlich annehmen. Sie verstehen die Nachteile des Abmeldens - alle geöffneten Apps sind geschlossen. Es ist keine Lösung, es ist eine Problemumgehung und keine benutzerfreundliche. Sind Sie zufällig Entwickler? Wenn ja, können Sie mich bitte auf die Daemon-Quellen verweisen? Ich denke , das ist es: Einheit-Objektiv-Anwendungen daemon.vala
vladimir
3

Diese Antwort erfordert keinen Neustart des Desktops.


Obwohl es ziemlich spät ist, gibt es einen Utility-Befehl zum Aktualisieren des Desktop-Datenbank-Cache mit dem Namen update-desktop-database.

Zum Aktualisieren der hinzugefügten Inhalte $HOME/.local/share/applications/verwenden Sie:

>> update-desktop-database

Aktualisierung der globalen diejenigen added stopft, wie /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applicationsusw., zu verwenden:

>> sudo update-desktop-database
Adam
quelle
Das funktioniert bei mir.
Honghe.Wu
0

Einige Anwendungen funktionieren nach diesem Befehl möglicherweise nicht mehr ordnungsgemäß. Chrom wurde zum Beispiel total schwarz.

unity --replace
Juliano ENS
quelle
Könnten Sie Ihre Warnung klarstellen (?)?
Zanna
0

Ich hatte ein ähnliches Problem, das beim Neustart behoben wurde. Ich benutze Ubuntu 16.04

Ich erstelle normalerweise .desktopDateien in, /usr/share/applications/wenn ich die Desktop-Dateien für andere Benutzer freigeben möchte und ~/.local/share/applicationswenn nur für einen Benutzer. Und ich starte normalerweise neu.

Saahithyan Vigneswaran
quelle