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

50

Встроенная документация GNOME охватывает только то, что каждый может легко догадаться. У меня есть приложение, которое я могу запустить только из командной строки. Не то чтобы я возражал против использования терминала, но ...

В любом случае, как мне добавить команду (и, желательно, красивый логотип) в GNOME WM?

рынок
источник
Если щелкнуть правой кнопкой мыши, вы получаете пункт «Редактировать меню»?
slm
нет, меню без щелчка правой кнопкой мыши вообще.
витрина

Ответы:

88

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

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

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

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

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

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

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

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
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либо в ссылках по их абсолютному пути.

Полная спецификация входа на рабочий стол доступна в Центре разработки GNOME .

Сценарии запуска

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

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

Установите исполняемый бит для скрипта:

$ chmod +x ~/bin/launch-application

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

Exec=/home/user/bin/launch-application
Томас Найман
источник
Я сделал это, я вижу значок под приложениями, но когда я нажимаю приложение не запускается, курсор меняется на символ загрузки только на несколько секунд. Нет сообщения об ошибке.
Март
@mart Можете ли вы сказать нам, для какого приложения вы пытаетесь добавить модуль запуска?
Томас Найман
1
FTL - инди-игра, которую я купил где-то в сети. Начиная с консоли работает.
Март
1
@mart <path>/.FTLбудет указывать на скрытый файл с именем .FTL, который отличается от того ./FTL, который указывает на файл, вызываемый FTLв текущем каталоге. Вы можете попробовать запустить FTLчерез /full/path/path/to/FTLтерминал, чтобы увидеть, есть ли какие-либо значимые сообщения об ошибках. Например, если исполняемый файл выполняет поиск библиотек в текущем рабочем каталоге, вам, возможно, придется выполнить сценарий запуска, который делает что-то вроде строки pushd <path>; ./FTL; popdи Execвместо этого указать спецификатор в файле рабочего стола на сценарий запуска.
Томас Найман
1
исправление: это работает изнутри каталога
март
12

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

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

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

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

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

  2. В открывшемся окне заполните следующее: введите описание изображения здесь

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

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

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

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

Тестирование вновь сгенерированного Gnome Application

  1. Открыть тире
  2. Тип приложения
  3. Вы должны увидеть Gnome Applicationвведенное ранее
  4. Выберите это
  5. Создать другое приложение
Dudi Boy
источник
Это работает очень хорошо, спасибо. Есть ли способ изменить, в каком меню появляется новое приложение? Мой появился в Приложения-> Другое
SteveP
-1

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

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

JonLord
источник