Синтаксическая проверка ~/.config/mimeapps.list

Вопрос или проблема

Есть ли способ проверить наличие синтаксических ошибок в ~/.config/mimeapps.list?

Ошибки, пох semble, игнорируются без каких-либо сообщений:

  1. Я добавил fdsobojaba в конец файла
  2. Я запустил xdg-open на существующем файле
  3. В .xsession-errors не было ошибки

Как мне проверить mimeapps.list? Или, в худшем случае, где находится определение формата файла?

Как вы говорите, Спецификация ассоциации между MIME типами и приложениями является соответствующей спецификацией, но она не описывает формат файла в больших деталях. Тем не менее, она ссылается на Спецификацию записи рабочего стола для формата файла; она не совсем явная, но я думаю, что

Значение — это список идентификаторов файлов рабочего стола, разделенный точкой с запятой (как определено в спецификации записи рабочего стола).

упоминание (что касается формата пар ключ-значение) является хорошим показателем.

Существует инструмент валидации для .desktop файлов, desktop-file-validate, но его нельзя использовать для списков MIME типов, потому что MIME типы не являются допустимыми ключами файлов .desktop.

Исследование кода, например, для xdg-open, показывает, что формат файла очень прост: инструменты ищут ключи в секциях, и они делают это, начиная с верхней части соответствующего файла, ища первое вхождение секции в квадратных скобках, затем первое вхождение ключа, за которым следует знак “=”. Таким образом, по сути, при поиске данного ключа в данной секции будет использоваться первая строка, которая соответствует ключу, и которая также находится в нужной секции.

Это имеет ряд последствий:

  • секции могут повторяться
  • может присутствовать бессмысленная строка, они будут игнорироваться
  • любая строка, не содержащая “=” или квадратных скобок, фактически является комментарием

Спецификация ассоциации между MIME типами и приложениями — это ближнее, что я смог найти для определения синтаксиса файла.

Синтаксис “раздела” действительно очень скуден – например, не упоминаются комментарии.

Ответ или решение

Проверка синтаксиса файла ~/.config/mimeapps.list может быть достаточно сложной задачей, особенно учитывая отсутствие явного механизма проверки на ошибки и смятение, возникающее из-за игнорирования ошибок в этой конфигурации. Этот файл используется для определения ассоциаций MIME-типов с приложениями и, в частности, управляет поведением таких инструментов, как xdg-open.

Формат файла mimeapps.list

Файл mimeapps.list следует спецификации, изложенной в Спецификации ассоциаций между MIME-типами и приложениями. Однако, как и вы заметили, эта спецификация не охватывает в достаточной степени синтаксис и структуру файла.

Формат файла определяется в Спецификации Desktop Entry. Основная структура файла такова:

  1. Секции: Начинаются с имени секции, заключенного в квадратные скобки, например, [Default Applications].
  2. Ключ—значение: Каждая строка в секции может содержать пару ключ-значение, разделенную знаком равенства (=). Например, text/plain=example.desktop.
  3. Комментарии: Любая строка, не содержащая символа = или квадратных скобок, рассматривается как комментарий и игнорируется при обработке.

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

Проверка на наличие ошибок

В настоящее время, к сожалению, нет специализированного инструмента для валидации файлов mimeapps.list, аналогичного desktop-file-validate для .desktop файлов. Поэтому лучший подход для проверки на наличие ошибок в mimeapps.list заключается в ручной проверке структуры файла. Обратите внимание на следующие моменты:

  1. Структура секций: Убедитесь, что секции начинаются с квадратных скобок и заканчиваются перед следующей секцией.
  2. Ключи и значения: У каждого ключа должно быть соответствующее значение, а пара должна быть разделена знаком =.
  3. Использование символов: Следите за тем, чтобы не использовать специальные символы, которые могут неправильно интерпретироваться.

Рекомендации по отладке

Если вы столкнулись с отсутствием ошибок при использовании xdg-open, это может быть вызвано несколькими факторами. Проверьте следующие моменты:

  • Убедитесь, что MIME-тип, который вы пытаетесь открыть, действительно существует и правильно ассоциирован с вашим приложением в mimeapps.list.
  • Используйте команду для просмотра ошибок, если она доступна, или проверяйте вывод команд, что позволит уловить потенциальные проблемы.
  • Убедитесь, что ваш файл не содержит дублирующих значений или неправильно написанных ключей.

Заключение

Проверка синтаксиса файла ~/.config/mimeapps.list требует внимательности и ручного анализа. Хотя в спецификации не предусмотрено явное описание обработки ошибок, понимание структуры файла, а также соблюдение рекомендаций, описанных в данном ответе, могут помочь избежать проблем в будущем. В случае, если возникнут сложности, рекомендуется обратиться к документации или сообществу для получения дополнительной информации.

Оцените материал
Добавить комментарий

Капча загружается...