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

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

90
задан 4 October 2015 в 10:43

6 ответов

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

find / -name '*.desktop'

или

sudo updatedb
locate *.desktop

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

locate *.desktop | grep -iR "skrooge"
0
ответ дан 4 October 2015 в 10:43

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

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

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

0
ответ дан 4 October 2015 в 10:43

Некоторые дополнительные сведения дополняют другие ответы:

Как правило, .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 напрямую; любые внесенные вами изменения будут автоматически перезаписаны при обновлении приложения менеджером пакетов.

Извлечено из здесь

0
ответ дан 4 October 2015 в 10:43

Я знаю, что опаздываю стороне, но у меня есть более быстрое решение, чем то, принятое как ответ:

find / -iname "*desktop" -type f -not -path "/media*" -exec grep -il skrooge '{}' ';' 2> /dev/null

Это быстрее, потому что это не ищет, данные смонтировали файловые системы, и по всей вероятности файл на рабочем столе расположен в системном разделе.

, Кроме того, это, более вероятно, найдет то, что пропустила бы команда из принятого ответа. Поэтому файлы на рабочем столе не должны содержать имя приложения. Эта команда на самом деле ищет текст в каждом файле на рабочем столе.

0
ответ дан 16 November 2019 в 09:46

Файлы пакетов snap для рабочего стола можно найти в /var/lib /snapd/desktop/applications/ и ниже /snap/.

7
ответ дан 27 November 2019 в 07:33

На самом деле я не знаю, какой файл .desktop вступает в силу. Я думаю, что из https://wiki.archlinux.org/index.php/Desktop_entries создать такой скрипт и запустить его:

#!/bin/sh

# try to find the effective desktop file
# (there seems to be no documented standard for this)

use_if_desktop_file () {
  if [ -r "$1" ] &&
     [ "$(xdg-mime query filetype "$1")" = application/x-desktop ]; then
       echo "$1"
       exit
  fi
}

for d in ~/.local/share/applications /usr/local/share/applications \
         /usr/share/applications; do
  use_if_desktop_file "$d/$1"
  use_if_desktop_file "$d/$1.desktop"
done

# no file found
exit 1
-2
ответ дан 6 June 2020 в 10:32

Другие вопросы по тегам:

Похожие вопросы: