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 файлов.
Еще после большего количества исследования я узнал о команде 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
(средство запуска, ярлык), файлы документируется в Настольной Спецификации Записи.