Создание файлов.desktop - всего несколько вопросов

Я хотел бы задать несколько вопросов о файлах.desktop и выяснить, что, на мой взгляд, будет изящным.

Начну с того, что я запускаю [элементарную ОС Luna] с ядром [3.2.0-65-generic-pae].

Я немного знаю о файлах.desktop и о том, что они делают. Я учился у кого-то из IRC eOS. Одна маленькая вещь всегда мешала мне делать свои собственные. Я полагаю, что когда вы открываете приложение через его.desktop, оно подсвечивает этот значок в Ubuntu. В eOS мы также получаем небольшой световой индикатор. Он остается с самой иконой. Когда вы делаете свой собственный, это не так.

Например, я сделал.desktop, который присоединяется к.sh, который откроет.jar. Когда я нажимаю на значок, он делает то, что хотел, и открывается. Единственное, что мне не нравится, это то, что появляется новая иконка. Это иконка Oracle Java, и она нечеткая, как и боль в глазах. Мне было любопытно, есть ли команда, которую я могу вставить в свой.desktop, которая позволит ему загораться только на исходном значке, как это делают другие приложения.

Кроме того, мне было любопытно, есть ли способ конвертировать такие вещи, как.png, в формат файлов иконок.desktops.

Заранее благодарю.

2 ответа

Сначала я предлагаю вам посмотреть журнал для вашего файла:

Открытый терминал
auditctl -a exit,always -w /path/to/file и нажмите Enter.
sudo nano /var/log/audit/audit.log и нажмите Enter, чтобы посмотреть журнал.


Полная ссылка на Freedesktop.org: Desktop Entry Specification

Пример Freedesktop

[Desktop Entry]
Version=1.0
Type=Application
Name=Foo Viewer
Comment=The best viewer for Foo objects available!
TryExec=fooview
Exec=fooview %F
Icon=fooview
MimeType=image/x-foo;
Actions=Gallery;Create;

[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery

[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new  

Цитата: Значок, который будет показан вместе с действием. Если имя является абсолютным путем, будет использован данный файл. Если имя не является абсолютным путем, для определения значка будет использоваться алгоритм, описанный в спецификации темы значков. Реализации могут игнорировать это.

ПРОЧИТАТЬ О


Хороший короткий урок Джо Реймеро: Анатомия файла.desktop

Пример Джо Реймеро

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=$HOME/MyApplication
Name=My Application
Icon=$HOME/Icons/MyIcon.png

Джо, я согласен, что путь к иконке может быть абсолютным или относительным, и это зависит от того, какой стандарт вы выбрали для построения символической ссылки. Традиционно это PNG.


Отличный учебник специально для вас: превратите ваши Java-приложения в Gnome-Shell

[Desktop Entry]
Version=10.5.1
Name=IntelliJ IDEA Ultimate Edition
Comment=The Most Intelligent Java IDE
Categories=Applications;Development;
Encoding=UTF-8
Exec=env IDEA_CLASSPATH\=../lib/asm.jar /home/diego/bin/ideaIU-10.5/bin/idea.sh
GenericName=IntelliJ
Icon=/home/diego/bin/ideaIU-10.5/bin/idea128.png
MimeType=text/x-java
Terminal=false
Type=Application
URL=http://www.jetbrains.com/idea  

Примечание для строки:

Exec=env IDEA_CLASSPATH\=../lib/asm.jar /home/diego/bin/ideaIU-10.5/bin/idea.sh

где вы видите переменную CLASSPATH рядом с exec.


Любой шанс, что это также может помочь, как это говорит ОС Luna:

Файлы.desktop следуют Спецификации входа рабочего стола freedesktop.org. Они должны быть установлены в /usr/share/applications, Пользователи могут создавать свои собственные средства запуска, помещая файлы.desktop в ~/.local/share/applications,

ЧИТАТЬ

Файл запуска.desktop, вероятно, может быть (как бы) упрощен до чего-то вроде следующего

[Desktop Entry]
Type=Application
Name=Google Maps
Exec=google-chrome --app=https://www.google.co.uk/maps/@52.0547887,-1.3424413,11z
Comment=Open Google Maps
GenericName=Open Google Maps
Icon=/home/wilf/.local/Google-Maps-icon.png
Categories=GTK;Utility;
Keywords=Maps;
Hidden=false
NoDisplay=false
Terminal=false

Куда:

  • Вам нужны оба [Desktop Entry] а также Type=Application сказать, что это приложение запуска.
  • Name это его имя
  • Exec это команда, которую он запускает
  • Comment / GenericName описать это (не всегда нужно)
  • Icon путь к значку или значку из темы, которую вы используете в /usr/share/icons (не всегда требуется, но значок по умолчанию, если часто раздражает)
  • Categories - указывает категорию, в которой он находится (полезно для меню - не всегда необходимо)
  • Keywords слова, которые можно использовать, чтобы найти его при поиске (не всегда нужно).
  • Hidden / NoDisplay установите значение false, чтобы убедиться, что оно отображается (не всегда необходимо).
  • Terminal бежать ли в терминале или нет`.

Для изменения значка вам просто нужно изменить Icon строка, чтобы указать другой значок - например, использовать значок текстового редактора из /usr/share/icons:

Icon=accessories-text-editor

или вы можете указать путь к файлу иконки

Icon=/home/wilf/.local/Google-Maps-icon.png

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

Затем нажмите на значок и выберите новый - обратите внимание, если он находится в /usr/share/applications вам, вероятно, нужны разрешения для редактирования файла.

NB

Я не могу точно вспомнить, почему (вероятно, сделал это для чего-то), но у меня, кажется, есть следующий скрипт, который может создавать.desktop пусковые установки - вот оно:

#!/bin/bash
if [ "$1" = "--help" ]; then
   echo -e "\e[1mUsage:\e[0m\n  create-launcher [OPTIONS...] [FILENAME] - create a launcher\n\e[1mHelp Options:\e[0m\n  --help    Show help options\n\e[1mApplication Options:\e[0m\n  -n NAME       Sets the name of the New launcher\n  -c COMMAND    Sets the command the launcher will be used to Launch\n  -t COMMENT    Sets the comment used to describe the launcher\n  -i ICON       Specifies an icon filename or stock icon to display.\n\n\e[1mNote\e[0m - ideally all of the above options should be used, mainly the Name option as it used to create the name of the launcher, and the command option as that is required for the launcher to work."
   exit
fi
while getopts n:c:t:i: option
do
    case "${option}"
    in
        n) NAME=${OPTARG};;
        c) COMMAND=${OPTARG};;
        t) COMMENT=${OPTARG};;
        i) ICON=${OPTARG};;
    esac
done
FILE=$HOME/.local/share/applications/$(echo $NAME | sed 's/ /-/g').desktop
NOFILE=$HOME/.local/share/applications/.desktop
if [ $FILE = $NOFILE ]; then
   echo -e "ERROR: Please enter atleast the Name for the launcher - for more info run\n    create-launcher --help" 
   exit 1
else
echo "New launcher created at $FILE"
echo -e "[Desktop Entry]\nType=Application" > $FILE
echo Name=$NAME >> $FILE
echo Exec=$COMMAND >> $FILE
echo Comment=$COMMENT >> $FILE
echo Icon=$ICON >> $FILE
echo -e "Hidden=false\nNoDisplay=false\nTerminal=false\n#X-GNOME-Autostart-enabled=true" >> $FILE
chmod +x $FILE
fi
exit

Это может быть сохранено в исполняемом файле и создает простой модуль запуска, подобный следующему (за исключением того, что поля заполняются указанием параметров сценариев - см. ./create-launcher --help ) в ~/.local/share/applications (что должно означать показ лаунчера в меню и т. д.)

[Desktop Entry]
Type=Application
Name=
Exec=
Comment=
Icon=
Hidden=false
NoDisplay=false
Terminal=false
#X-GNOME-Autostart-enabled=true

Последняя строка не важна, если она не используется в другом месте для запуска программы при входе в систему.

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