Die Datei '.desktop' wird nicht in der Befehlsliste 'ls' angezeigt

7

Ich habe Visual Studio installiert, aber das Symbol der App wird nicht angezeigt. So war ich folgende diese ein Symbol zu setzen.

Wenn ich hineingehe, /usr/share/applicationssehe ich die .desktopDatei von Visual Studio Code . Da ich jedoch keinen Zugriff habe, kann ich ihn nicht bearbeiten. Also habe ich das Terminal geöffnet und versucht, es mit zu öffnen sudo gedit. Also habe ich zuerst versucht, den Namen mit zu überprüfen ls. Das Symbol wird jedoch nicht aufgelistet. Visual Studio-Code in / usr / share / applications Geben Sie hier die Bildbeschreibung ein

Warum ist das so? Wie kann ich .desktopvscode bearbeiten , um das Symbol festzulegen?

Thidasa Pankaja
quelle
Ich verstehe nicht, warum es nicht im lsBefehl angezeigt wird. Aber ich habe das Symbol geändert, indem ich den Ordner mitsudo nautilus /usr/share/applications
Thidasa Pankaja
2
Vielleicht ist der tatsächliche Name der .desktopDatei etwas völlig anderes. Die obere Hälfte Ihrer lsAusgabe fehlt im Screenshot.
Pomsky
4
Um das zu ergänzen, was pomsky gesagt hat, hat jede .desktopDatei eine NameEigenschaft, die sich vom tatsächlichen Dateinamen unterscheiden kann. Im Terminal sehen Sie den Dateinamen, aber in Nautilus sehen Sie die NameEigenschaft (oder möglicherweise eine übersetzte Version davon).
Devius
@devius +1 Ich habe gerade die Antwort so geschrieben. Ich hoffe, es hilft, das Problem zu klären.
N0rbert
1
Bitte poste keine Screenshots von Text. Die ls-Ausgabe sollte als Text mit Code-Formatierung veröffentlicht werden.
Muru

Antworten:

13

Anstatt die .desktopDatei unter zu bearbeiten /usr/share/applications/(kann viele Probleme verursachen, wird nach einem Upgrade des zugehörigen Pakets überschrieben), können Sie zuerst die Datei kopieren und unter einfügen ~/.local/share/applications/. Dann bearbeiten Sie die kopierte Datei mit gedit, sudoist nicht erforderlich.

Warum lswird die Datei nicht
ls aufgelistet ? Listet die tatsächliche Datei auf,filename.desktop während Nautilus den Namen der Anwendung gemäß dem Name=Feld in anzeigt filename.desktop. Diese beiden können unterschiedlich sein. Hier in diesem Fall Name=Visual Studio Codein der filename.desktop, filenamekann aber etwas ganz anderes sein.

pomsky
quelle
Vielen Dank. Es war ein Konflikt zwischen dem Namen des vscode-Symbols und dem Namen des vscode-Symbols im numix-Thema. Der Symbolname wurde von codein geändert vscodeund das Problem wurde behoben (natürlich habe ich ihn in kopiert ~/.local/share/applications/). Ich benutze kein PNG.
Thidasa Pankaja
Aber warum wird lsdie Datei nicht aufgelistet?
Thidasa Pankaja
5
@PankajaParanavitharana lslistet die tatsächliche auf, filename.desktopwährend Nautilus den Namen der Anwendung gemäß dem Name=Feld in anzeigt filename.desktop. Diese beiden können unterschiedlich sein. Hier in diesem Fall Name=Visual Studio Codein der filename.desktop, filenamekann aber etwas ganz anderes sein.
Pomsky
7

Normalerweise entspricht der Symbolname in Nautilus oder einem anderen Dateimanager, der in geöffnet ist, /usr/share/applications/ möglicherweise nicht dem .desktopDateinamen.

Der richtige Weg ist, den .desktopDateiinhalt wie folgt zu überprüfen :

  1. wenn wir den Namen der ausführbaren Datei kennen ( codein diesem Fall)

    grep -ir Exec=.*code /usr/share/applications/
    
  2. wenn wir einen benutzerfreundlichen Namen kennen ( Visual Studio Code )

    grep -ir Name=.*Visual /usr/share/applications/
    

Anschließend können Sie diese Datei in ~/.local/share/applications/das Icon=Feld kopieren und dort bearbeiten .

Außerdem sollten Sie die .desktop-Dateispezifikation lesen, um zu erfahren, wie sie funktioniert.

N0rbert
quelle
Aber warum wird lsder Dateiname nicht aufgelistet?
Thidasa Pankaja
Siehe dazu meinen Kommentar zu Ihrer Frage oben.
Devius
Sie können versuchen, den ersten Befehl auszuführen, dann kennen Sie den Namen der Desktop-Datei. Dann können Sie natürlich tun ls /usr/share/applications/real-name-vs-code.desktop.
N0rbert