Как проверить / проверить файлы .desktop?

12

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

Braiam
источник

Ответы:

20

Вы ищете desktop-file-validateинструмент, предоставляемый пакетом desktop-files-utils в вашем дистрибутиве. Он проверяет синтаксис, используя зарезервированные слова / символы, в итоге, что он соответствует спецификации Desktop Entry . Вот пример плохого файла .desktop:

➜  ~  desktop-file-validate asdf.desktop 
asdf.desktop: error: value "cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*" for key "Exec" in group "Desktop Entry" contains a reserved character '&' outside of a quote
asdf.desktop: error: value "cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*" for key "Exec" in group "Desktop Entry" contains a reserved character '&' outside of a quote
asdf.desktop: error: value "cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*" for key "Exec" in group "Desktop Entry" contains a reserved character '$' outside of a quote
asdf.desktop: error: value "cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*" for key "Exec" in group "Desktop Entry" contains a reserved character '*' outside of a quote
asdf.desktop: hint: value item "GNOME" in key "Categories" in group "Desktop Entry" can be extended with another category among the following categories: GTK
asdf.desktop: error: value "GNOME;Oracle;Utility;Development;" for key "Categories" in group "Desktop Entry" contains an unregistered value "Oracle"; values extending the format should start with "X-"
asdf.desktop: hint: value "GNOME;Oracle;Utility;Development;" for key "Categories" in group "Desktop Entry" contains more than one main category; application might appear more than once in the application menu
asdf.desktop: error: value "s.0.m.t.h.i.n.g" for key "Version" in group "Desktop Entry" is not a known version

Который в хороших файлах вроде caribou-autostart.desktopничего не покажет.

Braiam
источник
FTR desktop-file-validateможет не показывать ошибок, но все равно может вообще не работать из-за неправильной записи Exec.
Пабло А