Как я могу найти файлы * .desktop?

85

Насколько мне известно, все ярлыки в Unity Launcher имеют соответствующий файл * .desktop. У меня есть один ярлык (для skrooge ), у которого нет иконки. Как найти файл * .desktop, соответствующий этому ярлыку, чтобы я мог добавить к нему значок?

KOVIKO
источник

Ответы:

113

Это, вероятно, сидит, /usr/share/applications/но если вы хотите найти каждый .desktopфайл в системе, запустите это:

find / -name '*.desktop'

или же

sudo updatedb
locate *.desktop

Чтобы найти файлы с «skrooge» в их пути или имени, добавьте grep в команду:

locate *.desktop | grep -iR "skrooge"
Оли
источник
21
locate -i "*skrooge*.desktop", Хотя в основном есть три места, где Unity будет искать файлы рабочего стола. ~/.local/share/applications, /usr/local/share/applicationsИ /usr/share/applications. Если в одной и той же команде есть файлы рабочего стола для одной и той же команды, она будет использовать крайнюю левую из трех перечисленных мной команд.
гейра
Показал как /usr/share/applications/kde4/skrooge.desktop. Благодарю. :)
KOVIKO
33

Система сохраняет файлы .desktop в /usr/share/applications/. К сожалению, если вы откроете эту папку в nautilus, файлы .desktop появятся со значком, указанным в файле, и с именем файла, которое вызывается из файла. Вам также не будет разрешено редактировать эти файлы, щелкнув по ним и выбрав «Редактировать».

Чтобы редактировать эти файлы, вам нужно открыть эту папку в окне терминала. Выполнение lsкоманды покажет все файлы .desktop с их настоящими именами. Когда вы найдете .desktop, который хотите изменить, запустите gksudo gedit {file-name}.desktop.

Обычная практика - хранить любые файлы .desktop, которые вы создаете или редактируете, в своей домашней папке ~/.local/share/applications.

Фрагос
источник
Запуск из терминала может быть удобнее для некоторых, но также возможно перетащить из nautilus в gedit или другой текстовый редактор.
Джон Ханна
какой смысл в каталоге "~ / .local / share / Applications"? Файлы там не используются, я не могу добавить их как «ярлык» в Unity.
Малахияш
2
@Malachiasz На самом деле, * .desktop файлы из ~/.local/share/applicationsперезагружаются при перезапуске сеанса. Итак, выйдите и снова войдите в систему. Обратите внимание, что они относятся к этому пользователю.
akshay2000
Я также нашел эти вопросы и ответы здесь на сайте полезными: Как заставить Unity перезагрузить ~ / .local / share / Applications /
hakre
8

Некоторые дополнительные детали, чтобы дополнить другие ответы:

Как правило, .desktopфайлы для пакетов будут расположены в /usr/share/applications.

Если вы хотите, вы можете скопировать ~/.local/share/applicationsи отредактировать его без необходимости sudo . Элементы в ~/.local/share/applicationsбудут переопределять соответствующие элементы в /usr/share/applicationsи /usr/local/share/applications, но видны только вашему пользователю.

В качестве альтернативы, вы можете поместить отредактированную копию /usr/local/share/applicationsтуда, где она будет перезаписывать любую, при /usr/share/applicationsэтом будучи видимой для всей системы.

Обратите внимание, что вы не должны редактировать .desktopфайлы /usr/share/applicationsнапрямую; любые внесенные вами изменения будут автоматически перезаписаны при обновлении приложения менеджером пакетов.

Извлечено отсюда

Сопалахо де Арриерес
источник
+1, самый полный ответ из всех них
Джон Бентли