Как заставить *.desktop файл запускать приложение и отображать Имя и значок приложения, на Рабочем столе и в/usr/share/applications/?

Ubuntu бионический бобр 18.04.3 наутилуса 3.26.4 (файлы)

Файлы *.desktop на Рабочем столе, или в ~ / мусорное ведро появляются со значком приложения, и имя файла заменяется значением ключа Имени файла. Нажатие на значок запускает связанное приложение.

У меня есть два файла - free42dec.desktop и free42bin.desktop - для запуска эмуляции Free42 Реверса HP42s польский калькулятор. Но в Наутилусе (Файлы), эти файлы все еще показывают своими полными именами файлов и универсальным текстовым значком, вместо как Десятичное число Free42 и Двоичный файл Free42, с соответствующими значками калькулятора. Другая причуда - то, что открытие Properties для этих файлов просто показывает простую ваниль на вкладке Basic, но другие правильно ведущие себя *.desktop файлы показывают, что значение Должностного лица вводит вкладку Basic.

Я не буду первым, чтобы иметь эту проблему с *.desktop файлами, но никакая комбинация критериев поиска не даст мне ответ. Я попробовал различные предложенные средства, но ни один не работает. Так, в отчаянии вот текст одного из этих файлов (другой, подобно):

[Desktop Entry]
Version=2.5.17
Name=Free42 Decimal
GenericName=Calculator
Comment=HP42s calculator using decimal number calculations.
Exec=free42dec -skin Realistic
Path=/usr/local/bin
Icon=/usr/share/icons/free42/free42dec.png
Terminal=false
Type=Application
Categories=Utility;Application;

##Define Actions
Actions=Quit;Free42_Binary;

[Desktop Action Quit]
Name=Quit
# Kill all free42bin or free42dec instances currently running
# Exec=pkill free42*
# Kill only free42dec instances
Exec=pkill free42dec
OnlyShowIn=Unity;

[Desktop Action Free42_Binary]
Name=Free42 Binary
# You can start the alternative calc from the right-click menu
Exec=free42bin -skin KD0GLS_Full
OnlyShowIn=Unity;

Кто-либо может видеть отказ с этими файлами? Я пытался найти синтаксический анализатор или блок проверки грамматических ошибок, и документация не была никакой справкой. Кажется, нет никакого специального установщика для *.desktop файлов.

0
задан 21 March 2020 в 08:54

1 ответ

Еще после большего количества исследования я узнал о команде CLI desktop-file-validate, который проверяет синтаксис и структуру *.desktop файлы.

.../usr/share/applications$ desktop-file-validate free42dec.desktop
free42dec.desktop: error: file contains line "?[Desktop Entry]", which is not a comment, a group or an entry

Посмотрите на "?[Desktop Entry]". Это ? указывает, что существует предыдущий скрытый символ [, который оказывается меткой порядка байтов (BOM), которая указывает, как этот файл UTF-8 должен быть считан системами BigEndian и LittleEndian. Больше ищущих урожаев dos2unix, утилита, которая преобразовывает текстовые файлы Windows в формат UNIX, с которым можно добраться

$ sudo apt install dos2unix

Теперь сделайте это:

.../usr/share/applications$dos2unix free42dec.desktop
dos2unix: converting file free42dec.desktop to Unix format...

Yay! Теперь free42dec.desktop файл появляется в Наутилусе в /usr/share/applications с Name ключевое Десятичное число Free42 вместо имени файла и текстовый значок изменяются на значок Free42 Decimal. Этот ярлык теперь появляется в Тире Средства запуска и в Тире Приложений (Обзор). Копирование его на Рабочий стол означает, что можно нажать его там также для запуска Десятичного приложения Free42.

Формат, структура и синтаксис *,desktop (средство запуска, ярлык), файлы документируется в Настольной Спецификации Записи.

0
ответ дан 7 April 2020 в 23:32

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

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