Jak znaleźć pliki * .desktop?

85

Zgodnie z moją najlepszą wiedzą wszystkie skróty w Unity Launcher mają odpowiedni plik * .desktop. Mam jeden skrót (do skrooge ), który nie ma ikony. Jak znaleźć plik * .desktop odpowiadający temu skrótowi, aby móc dodać do niego ikonę?

KOVIKO
źródło

Odpowiedzi:

113

Prawdopodobnie siedzi, /usr/share/applications/ale jeśli chcesz znaleźć każdy .desktopplik w systemie, uruchom to:

find / -name '*.desktop'

lub

sudo updatedb
locate *.desktop

Aby znaleźć pliki z „skrooge” w ścieżce lub nazwie, dodaj polecenie grep do polecenia:

locate *.desktop | grep -iR "skrooge"
Oli
źródło
20
locate -i "*skrooge*.desktop". Chociaż istnieją głównie trzy miejsca, w których jedność będzie szukać plików na pulpicie. ~/.local/share/applications, /usr/local/share/applicationsI /usr/share/applications. Jeśli istnieją pliki pulpitu dla tego samego polecenia w wielu miejscach, użyje ono skrajnie lewej z trzech wymienionych na liście.
geirha
Wyświetlany jako /usr/share/applications/kde4/skrooge.desktop. Dzięki. :)
KOVIKO
33

System przechowuje pliki .desktop w /usr/share/applications/. Niestety, jeśli otworzysz ten folder w nautilus, pliki .desktop pojawią się z ikoną określoną w pliku i nazwą pliku wywoływaną w pliku. Nie będziesz również mógł edytować tych plików, klikając je i wybierając edytuj.

Aby edytować te pliki, musisz otworzyć ten folder w oknie terminala. Wykonanie lspolecenia spowoduje wyświetlenie wszystkich plików .desktop z ich rzeczywistymi nazwami. Po zlokalizowaniu pulpitu, który chcesz zmienić, uruchom gksudo gedit {file-name}.desktop.

Normalną praktyką jest przechowywanie wszelkich plików .desktop tworzonych lub edytowanych w folderze domowym ~/.local/share/applications.

fragos
źródło
Uruchamianie z terminala może być dla niektórych wygodniejsze, ale można również przeciągnąć z nautilus do gedit lub innego edytora tekstu.
Jon Hanna
jaki jest sens katalogu „~ / .local / share / applications”? Pliki tam nie wydają się być używane, nie mogę dodać ich jako „skrótu” do Unity.
Malachiasz
2
@Malachiasz W rzeczywistości pliki * .desktop z ~/.local/share/applicationssą ładowane ponownie po ponownym uruchomieniu sesji. Wyloguj się i zaloguj ponownie. Pamiętaj, że są one specyficzne dla tego użytkownika.
akshay2000
Uznałem również, że te pytania i odpowiedzi tutaj na stronie są przydatne: Jak zmusić Unity do przeładowania ~ / .local / share / applications /
hakre
8

Kilka dodatkowych szczegółów uzupełniających inne odpowiedzi:

Zazwyczaj .desktoppliki pakietów będą znajdować się w /usr/share/applications.

Jeśli chcesz, możesz skopiować jeden z nich ~/.local/share/applicationsi edytować go bez potrzeby sudo . Pozycje w ~/.local/share/applicationsbędzie zastąpić dopasowania się /usr/share/applicationsi /usr/local/share/applications, ale są widoczne tylko do użytkownika.

Alternatywnie możesz umieścić edytowaną kopię w /usr/local/share/applicationsmiejscu, w którym zastąpi ona dowolną, /usr/share/applicationsa jednocześnie będzie widoczna dla całego systemu.

Pamiętaj, że nie powinieneś edytować .desktopplików /usr/share/applicationsbezpośrednio; wszelkie wprowadzone zmiany zostaną automatycznie zastąpione, gdy aplikacja zostanie zaktualizowana przez menedżera pakietów.

Wydobyto stąd

Sopalajo de Arrierez
źródło
+1, najbardziej kompletna odpowiedź ze wszystkich
Jon Bentley