Как сделать мое .desktop-приложение глобальным?

Как сделать мое .desktop-приложение глобальным?

У меня есть .desktopприложение, которое запускает скрипт оболочки, этот скрипт оболочки запускает код Python при двойном щелчке по приложению, и я хочу иметь возможность запускать его из всех каталогов на моем ноутбуке и сохранять значок стабильным, даже если каталоги изображения, значка или приложения были изменены!

Как сделать свое приложение глобальным?

решение1

Как следует из ответа Zany_Zachary, лаунчеры в /usr/share/applicationsдоступны для всех пользователей. Лаунчеры в ~/.local/share/applicationsдоступны только для текущего пользователя. Когда лаунчер находится в этих местах, он будет выбран вашим меню рабочего стола или лаунчером. Местоположение /usr/share/applications— это каталог, используемый системой управления программным обеспечением APT операционной системы, поэтому, хотя это и будет работать, вам не следует размещать .desktopтам свои пользовательские файлы. Вместо этого используйте папку/usr/local/share/applications. Эта папка не существует по умолчанию в Ubuntu, поэтому вам может потребоваться сначала создать ее.

Вот как "глобальный" из вашего заголовка наиболее легко понять. Однако в вашем вопросе вы предполагаете, что под "глобальным" вы также понимаете что-то как "переносимое", т. е. то, что должно продолжать работать, даже если значок или приложение изменили местоположение. Тем не менее, вам придется подчиняться соглашениям операционной системы, где разместить ваш значок или исполняемый файл. Так что не существует такого понятия, как "глобальный" .desktopлаунчер, который продолжает работать независимо от того, где вы разместили значок или исполняемый файл.

В этой «переносимости» есть ограничения. Во-первых, имя значка или исполняемого файла не может измениться, поскольку имя жестко закодировано в файле .desktop. Однако вы можете опустить путь из файла .desktop, но тогда вам придется поместить значок и исполняемый файл в определенные места, которые ищет операционная система.

Значок

Значок определяется в .desktopфайле на Icon=строке.

Если вы укажете только имя значка (без расширения),операционная система выполнит поиск ~/.iconsи ~/.local/share/iconsсначала, а затем выполните поиск по системным каталогам иконок, в основном в /usr/share/iconsи /usr/local/share/icons. Графический файл с расширением .pngили .svgв одной из этих папок будет выбран системой меню. Если соответствующий графический файл не найден, система вернется к резервному значку по умолчанию.

Приложение

Исполняемый файл определяется в .desktopфайле в Exec=строке.

Также здесь система будет искать предопределенные пути для исполняемого файла с соответствующим именем, если не указан полный путь к файлу. Вы можете увидеть папки и порядок, в котором они ищутся с помощью команды echo $PATH.

решение2

Привет!

Чтобы сделать ваш файл .desktop глобальным, просто:

Поместите это в/usr/share/applications

Только для одного аккаунта, поместите его в/home/$USER/.local/share/applications


К сожалению, вы не можете сделать так, чтобы значок оставался прежним при перемещении файла изображения. Я рекомендую создать папку с вашим значком приложения в ней. Поместите эту папку в /usr/share.

Связанный контент