Как добавить приложение в меню приложений GNOME?

Вопрос или проблема

У меня есть приложение, которое я запускаю только из командной строки. Как я могу добавить команду (и, желательно, красивую иконку) в меню приложений Gnome?

В GNOME и других окружениях рабочего стола, совместимых с freedesktop.org, таких как KDE и Unity, приложения добавляются в меню рабочего стола через desktop entries, определенные в текстовых файлах с расширением .desktop (называемых desktop files). Окружения рабочего стола формируют меню для пользователя из собранной информации, извлеченной из доступных записей рабочего стола.

Файлы рабочего стола могут быть созданы в одном из двух мест:

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

Вам может понадобиться перезапустить GNOME, чтобы новые добавленные приложения заработали.

По соглашению, файлы рабочего стола не должны содержать пробелов или международных символов в своем названии.

Каждый файл рабочего стола разделен на группы, каждая из которых начинается с заголовка группы в квадратных скобках ([]). Каждый раздел содержит ряд ключ, значение пар, разделенных знаком равенства (=).

Ниже приведен образец файла рабочего стола:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Название приложения
Comment=Описание приложения
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

Пояснение

  • [Desktop Entry] заголовок группы Desktop Entry идентифицирует файл как запись рабочего стола
  • Type тип записи, допустимые значения: Application, Link и Directory
  • Encoding кодировка символов файла рабочего стола
  • Name название приложения, отображаемое в меню или лаунчерах
  • Comment описание приложения, используемое в подсказках
  • Icon иконка, отображаемая для приложения в меню или лаунчерах
  • Exec команда, используемая для запуска приложения из оболочки.
  • Terminal должно ли приложение запускаться в терминале, допустимые значения: true или false
  • Categories список категорий меню, в которых должна отображаться запись, разделенный точкой с запятой (;)

Аргументы командной строки в ключе Exec могут обозначаться следующими переменными:

  • %f одно имя файла.
  • %F несколько имен файлов.
  • %u один URL.
  • %U несколько URL.
  • %d один каталог. Используется вместе с %f для нахождения файла.
  • %D несколько каталогов. Используется вместе с %F для нахождения файлов.
  • %n одно имя файла без пути.
  • %N несколько имен файлов без путей.
  • %k URI или локальное имя файла расположения файла рабочего стола.
  • %v имя записи устройства.

Обратите внимание, что ~ или переменные окружения, такие как $HOME, не развертываются внутри файлов рабочего стола, поэтому все исполняемые файлы, на которые ссылаются, должны либо находиться в $PATH, либо указаны через абсолютный путь.

Полная спецификация записи рабочего стола доступна в репозитории спецификаций Freedesktop.org.

Скрипты запуска

Если приложение, которое нужно запустить, требует выполнения определенных шагов перед вызовом, вы можете создать оболочечный скрипт, который запускает приложение, и указать запись рабочего стола на оболочечный скрипт. Предположим, что приложение нужно запускать из определенного текущего рабочего каталога. Создайте скрипт запуска в подходящем месте (~/bin/, например). Скрипт может выглядеть примерно так:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

Установите разрешение на выполнение для скрипта:

$ chmod +x ~/bin/launch-application

Затем укажите ключ Exec в записи рабочего стола на скрипт запуска:

Exec=/home/user/bin/launch-application

Очень хороший ответ от Томаса Неймана.

Gnome поставляется с графическим инструментом gnome-desktop-item-edit, который помогает в создании файлов *.desktop.
Нам нужно использовать его из командной строки или создать файл рабочего стола для него.

Инструкции по созданию приложения Gnome с помощью gnome-desktop-item-edit

  1. Откройте окно терминала и введите следующую команду:

    gnome-desktop-item-edit --create-new /home/[ваше имя пользователя]/.local/share/applications
    
  2. В открывшемся окне заполните следующие поля:

gnome-desktop-item-edit

Название: Gnome Приложение

Команда: gnome-desktop-item-edit --create-new /home/[ваше имя пользователя]/.local/share/applications

Нажмите на иконку, чтобы выбрать другую иконку.

  1. Нажмите OK, чтобы закрыть окно

  2. Закройте окно терминала

Тестирование новосозданного Gnome Приложения

  1. Откройте панель запусков
  2. Введите Название приложения
  3. Вы должны увидеть Gnome Приложение, введенное ранее
  4. Выберите его
  5. Создайте другое приложение

Чтобы создать для всех пользователей, используйте:

sudo gnome-desktop-item-edit --create-new /usr/share/applications

Если команда отсутствует в debian/ubuntu, попробуйте:

sudo apt-get install gnome-panel 

Графическое решение – установить MenuLibre

Он доступен для дистрибутивов на базе Ubuntu через

apt install menulibre

или вы можете установить его из источника

Он позволяет категоризировать приложения по категориям Gnome и хорошо работает с приложениями Chrome.

Menu Libre

Предыдущие ответы от Томаса Неймана и Дуди Боя очень хорошие и подробные. Я публикую это, потому что не нашел ответа на свой вопрос в других постах, и мне пришлось искать в вопросах на Git.

После того как я выполнил шаги, предложенные Томасом Нейманом, я смог заставить иконку моего приложения появиться в меню приложений. Проблема в том, что я использую Dash to Dock в качестве боковой панели, и я не мог прикрепить иконку в избранное, как другие иконки. После поиска я нашел, что вам нужно добавить строку StartupWMClass=ApplicationName в файл .desktop.
После этого опция добавления в избранное появится при правом клике на иконке в Dash to Dock.

В моем случае для AndroidStudio.

Находясь в директории ~

vi .local/share/applications/androidstudio.desktop

Затем добавьте конфигурацию

[Desktop Entry]
Version=2022.3.1 Patch 2
Name=Android Studio
Comment=Android Studio для linux
Type=Application
Icon=/home/mariot/Downloads/android-studio-2022.3.1.20-linux/android-studio/bin/studio.png
Exec=sh /home/mariot/Downloads/android-studio-2022.3.1.20-linux/android-studio/bin/studio.sh
Terminal=false
Categories=Utility;

Установите разрешения с помощью команды:

gio set .local/share/applications/androidstudio.desktop "metadata::trusted" yes

Затем, если все пути верны, вы можете протестировать с помощью:

gio launch .local/share/applications/androidstudio.desktop 

Вы можете запустить приложение через лаунчер поиска.

С уважением.

Ответ или решение

Чтобы добавить приложение в меню GNOME, которое вы запускаете только из командной строки, вам нужно создать файл .desktop. Этот файл содержит всю необходимую информацию, чтобы интегрировать приложение в интерфейс GNOME. Вот подробное руководство по созданию такого файла.

Шаги по добавлению приложения в меню GNOME

1. Определите местоположение для файла .desktop

Вы можете создать файл .desktop в одном из двух мест:

  • Для приложения, доступного всем пользователям системы:
    /usr/share/applications/
  • Для приложения, доступного только вашему пользователю:
    ~/.local/share/applications/

Рекомендуется использовать второй вариант, так как он требует меньше прав (необходимы права суперпользователя только для первой опции).

2. Создайте файл .desktop

  1. Откройте терминал.
  2. Используйте текстовый редактор для создания нового файла:
    vi ~/.local/share/applications/имя_вашего_приложения.desktop

3. Заполните содержимое файла

Пример содержимого файла .desktop для вашего приложения:

[Desktop Entry]
Version=1.0
Type=Application
Name=Имя вашего приложения
Comment=Описание вашего приложения
Icon=/путь/к/вашему/иконке.png
Exec=/путь/к/вашему/исполняемому/файлу
Terminal=false
Categories=Utility;Application;
StartupWMClass=ИмяВашегоПриложения

Объяснения ключей:

  • Version: версия формата файла.
  • Type: тип записи, в данном случае всегда Application.
  • Name: название вашего приложения, которое будет отображаться в меню.
  • Comment: краткое описание, появляющееся при наведении курсора.
  • Icon: путь к иконке приложения.
  • Exec: команда для запуска приложения.
  • Terminal: false, если приложение не требует терминала для запуска.
  • Categories: категории, к которым принадлежит приложение (разделяются точкой с запятой).
  • StartupWMClass: поможет закрепить значок в панели, особенно если у вас установлен Dash to Dock.

4. Сделайте файл исполняемым

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

chmod +x ~/.local/share/applications/имя_вашего_приложения.desktop

5. Установите флаг доверия (при необходимости)

В некоторых случаях GNOME может игнорировать ваши .desktop файлы. Чтобы это исправить, используйте следующую команду:

gio set ~/.local/share/applications/имя_вашего_приложения.desktop "metadata::trusted" yes

6. Перезагрузите GNOME или обновите меню

После всех изменений может потребоваться перезагрузить GNOME. Вы можете сделать это, выйдя из текущего сеанса и войдя снова, или просто перезагрузив компьютер.

Альтернативные методы

  • Графический интерфейс: Вы можете использовать утилиты, такие как gnome-desktop-item-edit, для создания .desktop файлов через графический интерфейс. Просто выполните команду:

    gnome-desktop-item-edit --create-new ~/.local/share/applications
  • Менеджеры меню: Утилита MenuLibre предоставляет еще более удобный графический интерфейс для управления вашими приложениями в меню.

Заключение

Добавление приложений в меню GNOME через .desktop файлы — это простой и эффективный способ сделать ваши приложения легче доступными. С помощью правильной настройки вы можете улучшить свой рабочий процесс, имея все необходимые инструменты под рукой. Якщо ваше приложение требует специфических условий запуска, не забудьте использовать скрипт для его корректного запуска.

Оцените материал
Добавить комментарий

Капча загружается...