Xdg open linux установка

xdg-utils (Русский)

xdg-utils предоставляет официальные утилиты для управления MIME-приложениями XDG.

  • xdg-desktop-menu(1) — установка элементов меню рабочего стола
  • xdg-desktop-icon(1) — копирование ярлыков приложений на рабочий стол пользователя
  • xdg-email(1) — открытие предпочитаемого пользователем клиента электронной почты (с возможностью указания темы и других параметров создаваемого сообщения)
  • xdg-icon-resource(1) — установка значков
  • xdg-mime(1) — запрос и установка типов и ассоциаций MIME
  • xdg-open(1) — открытие файла или URI в предпочтительном приложении пользователя
  • xdg-screensaver(1) — разрешение, запрещение или приостановка хранителя экрана
  • xdg-settings(1) — установка веб-браузера и обработчиков URL-адресов по умолчанию

Contents

Установка

Использование

xdg-mime

Определение MIME-типа файла:

Определение приложения по умолчанию для MIME-типа:

Изменение приложения по умолчанию для MIME-типа:

Отладка приложения по умолчанию для MIME-типа:

xdg-open

xdg-open — утилита для открытия ресурсов, которая реализует XDG MIME Applications (Русский) и используется многими программами, см. xdg-open(1) .

xdg-open не зависит от окружения рабочего стола и пытается использовать стандартные инструменты каждого окружения.

Если окружение рабочего стола не обнаружено, обнаружение MIME-типа происходит средствами file , который, по иронии судьбы, не реализует стандарт XDG. Если необходимо, чтобы xdg-open использовал XDG MIME Applications (Русский) без окружения рабочего стола, установите perl-file-mimeinfo или используйте одну из утилит для открытия ресурсов, которая поддерживает XDG MIME Applications (Русский).

xdg-settings

Ярлык для открытия всех веб-типов MIME с помощью одного приложения:

Ярлык для установки приложения по умолчанию для схемы URL:

Источник

Шпаргалка по xdg-open

Небольшая заметка про xdg-open . Эта утилита открывает файлы или URI “наиболее подходящим” приложением, как записано в файлах *.desktop .

Увы, как показывает практика, “наиболее подходящим” оказывается нередко какой-нибудь Firefox, что явно не всегда самое удачное решение.

Алгоритм

Выбор осуществляется по достаточно прямолинейному алгоритму.

  1. Во-первых, если удаётся определить текущее окружение рабочего стола, используется аналогичная утилита, специфичная для окружения. Скажем, для Xfce это exo-open и т.п.
  2. Если это не удаётся, используется обобщенный алгоритм.

Обобщенный алгоритм выглядит так:

  1. Проверяется наличие файла и права доступа на чтение.
  2. Если установлена переменная окружения DISPLAY (т.е. если утилита выполняется в рамках сессии X), производится попытка открыть файл приложением, возвращаемым xdg-mime query default . При этом *.desktop -файл ищется в директориях:
    1. $XDG_DATA_HOME/applications (по умолчанию $HOME/.local/share )
    2. $XDG_DATA_DIRS/applications (по умолчанию /usr/local/share и /usr/share )
  3. Независимо от DISPLAY , производится попытка открыть файл при помощи run-mailcap (действие view )
  4. Если установлена DISPLAY , производится попытка открыть файл при помощи mimeopen .
  5. Если установлена переменная BROWSER , производится попытка открыть файл с помощью выбранного браузера.
  6. Производится попытка выделить часть протокола из URI и подставить mime-тип вида x-scheme-handler/ , и переход к шагу 2 (независимо от переменной DISPLAY )
  7. Проверяются известные браузеры и производится попытка открытия с помощью них (графические проверяются только при установленной переменной DISPLAY )
  8. Иначе, утилита завершается с ошибкой.

Теперь, как работает команда xdg-mime query default .

  1. Просматривается файл ассоциаций “по умолчанию” $XDG_CONFIG_HOME/mimeapps.list , и, если есть, системные $XDG_CONFIG_DIRS/mimeapps.list . Имеет значение только раздел Default Applications (см. ниже)
  2. Просматривается альтернативное расположение файла ассоциаций “по умолчанию” $XDG_DATA_HOME/applications/mimeapps.list , и, если есть, системные $XDG_DATA_DIRS/applications/mimeapps.list .
  3. Просматривается файлы кэша $XDG_DATA_/applications/mimeinfo.cache и умолчаний $XDG_DATA_/applications/defaults.list .
  4. Просматриваются все файлы *.desktop в $XDG_DATA_/applications (включая поддиректории) MimeType . Выбирается вариант с наивысшим InitialPreference , или первый подходящий.
  5. Если ничего не найдено, возвращается ошибка.

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

mimeapps.list имеет формат секционированного key-value файла (т.е. INI-файла). Нас, как указано выше, в данном контексте интересует только секция Default Applications . Ключом является mime-тип, а значением – название desktop-файла с расширением. Разделитель ключа и значения – символ = . Например:

Так же в этом файле есть разделы Added Associations и Removed Associations . В контексте xdg-open они не имеют значения, однако в контексте других приложений (особенно kde4) оказываются важны. Формат совпадает с секциями Default Applications , но в значениях может быть разделённый ; список.

Замечание

mimeapps.list в общем случае может иметь префикс, который определяется переменной окружения XDG_CURRENT_DESKTOP . Так же эта переменная окружения используется для определения текущего окружения рабочего стола и использования специфичных для него утилит. Рекомендуется особое внимание к этой переменной.

Команды xdg-mime

xdg-mime позволяет узнать mime-тип файла и приложение по умолчанию для открытия данного mime-типа. Кроме того, эта утилита позволяет установить приложение по умолчанию.

Запросы

xdg-mime query filetype позволяет узнать mime-тип файла.

xdg-mime query default – узнать приложение по умолчанию для открытия данного mime-типа.

Установка умолчаний

xdg-mime default . позволяет установить приложение по умолчанию для открытия одного или нескольких mime-типов. – это название desktop-файла, который будет использован (без пути, с расширением)

В случае, если возможно установить окружение рабочего стола, для этого будут использованы средства окружения. Иначе, будут добавлены записи в файл mimeapps.list (первый найденный) в секцию Default Applications .

Рекомендации

Всегда устанавливайте переменную BROWSER . Если она не установлена, можно ждать неожиданностей. Можно указывать список, разделённый двоеточием : .

Источник

Default applications (Русский)

Зачем нужны типы MIME: Благодаря им программа «узнает», как поступить с некоторым файлом, например есть файл с расширением .pdf ОС должна «знать», чем открыть и как поступить с данным файлом. Как раз типы MIME сообщают ОС об этом.

Существует множество приложений,способных обрабатывать данные одного определенного типа, поэтому пользователи и даже некоторые пакеты собирают списки приложений по умолчанию для каждого #типа MIME. Хотя изначально Arch Linux не определяет приложения по умолчанию, окружение рабочего стола может это сделать. Также некоторые окружения рабочего стола предоставляют графический интерфейс или файловый менеджер, которые могут интерактивно настраивать приложения по умолчанию. Если вы не используете окружение рабочего стола, вам может потребоваться установить дополнительное программное обеспечение для удобного управления приложениями по умолчанию.

Contents

Типы MIME

Перед установкой приложения по умолчанию для каждого типа файла, тип файла должен быть обнаружен. Существует два распространенных способа проверить это:

  • используя расширение имени файла, например .html или .jpeg
  • используя магическое число в первых байтах файла

Однако возможно, что один тип файла идентифицируется несколькими различными магическими числами и расширениями имен файлов, поэтому типы MIME используются для представления различных типов файлов. Типы MIME определяются двумя частями, разделенными косой чертой: тип/подтип . Тип описывает общую категорию содержимого, тогда как подтип идентифицирует конкретный тип данных. Например, image/jpeg является типом MIME для JPEG изображений, тогда как video/H264 является типом MIME для H.264 видео.

Технически каждый тип MIME должен быть зарегистрирован в IANA[1], однако многие приложения используют неофициальные типы MIME; они часто имеют тип, начинающийся с x- , например x-scheme-handler/https для HTTPS URL. Для локального использования, #База данных MIME может использоваться другими пакетами для регистрации новых типов MIME.

База данных MIME

Система поддерживает базу данных распознанных типов MIME: Общая база данных MIME. База данных построена из файлов XML, установленных пакетами в /usr/share/mime/packages , используя инструменты из shared-mime-info .

Файлы в /usr/share/mime/ не должны редактироваться напрямую, однако их можно сохранить в отдельную базу данных для каждого пользователя в

Новый тип MIME

This article or section needs expansion.

В этом примере определяется новый тип MIME application/x-foobar и присваивается любому файлу с расширением .foo. Просто создайте следующий файл:

А затем обновите базу данных MIME

Конечно, это никак не повлияет, если ярлыки приложения не связаны с типом MIME. Вам может потребоваться создать новые #Ярлыки приложений или отредактировать #mimeapps.list.

Ярлыки приложений

Каждый пакет может использовать ярлыки приложений для предоставления информации о типах MIME, которые могут быть обработаны с помощью программного обеспечения. Чтобы обеспечить быстрый поиск в обратном направлении, система использует инструменты из пакета desktop-file-utils для анализа файлов рабочего стола и создания обратного сопоставления, хранящегося в /usr/share/applications/mimeinfo.cache . Это единственный файл, который программы должны прочитать, чтобы найти все файлы рабочего стола, которые могут использоваться для обработки данного типа MIME. Использование базы данных проще и быстрее, чем непосредственно считывать сотни файлов .desktop.

Файлы в /usr/share/applications/ не должны редактироваться напрямую, можно поддерживать отдельную базу данных для каждого пользователя в

/.local/share/applications/ . Для получения дополнительной информации смотрите статью Ярлыки приложений.

Установка приложений по умолчанию

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

Наиболее распространенные стандарты описаны ниже для ручного редактирования. Также существует несколько #Утилит, которые могут сделать работу, которая может или не может реализовать следующие стандарты.

Переменные окружения

Консольные программы, в частности, настраиваются путем установки соответствующей переменной окружения, например, BROWSER или EDITOR . Смотрите раздел Переменные окружения#Примеры.

Стандарт XDG

Стандарт XDG является наиболее распространенным при настройке окружения рабочего стола. Приложения по умолчанию для каждого типа MIME хранятся в файлах mimeapps.list , которые могут храниться в нескольких местах. Их проверяют в следующем порядке, причем более ранние ассоциации имеют приоритет над более поздними:

/.config/mimeapps.list

/.local/share/applications/mimeapps.list

Путь Применение
пользовательские переопределения
/etc/xdg/mimeapps.list общесистемные переопределения
(Устаревшее) пользовательские переопределения
/usr/local/share/applications/mimeapps.list
/usr/share/applications/mimeapps.list
переопределения предоставляемые дистрибутивом по умолчанию

Кроме того, можно определить окружение рабочего стола по умолчанию для конкретных приложений в файле с именем desktop-mimeapps.list где desktop это имя окружения рабочего стола (Из переменной окружения XDG_CURRENT_DESKTOP ). Например, /etc/xdg/xfce-mimeapps.list определяет общесистемные переопределения приложений по умолчанию для Xfce. Эти переопределения для рабочего стола имеют приоритет над соответствующим файлом, не относящимся к окружению рабочему столу. Например, /etc/xdg/xfce-mimeapps.list имеет приоритет над /etc/xdg/mimeapps.list , но по-прежнему переопределяется

/.local/share/applications/mimeapps.list . Чтобы облегчить обслуживание, просто соедините его ссылкой . Обратите внимание, что символическая ссылка должна быть по этому пути, потому что #xdg-utils удаляет и воссоздает

/.config/mimeapps.list при записи в него, что приведет к поломке любых символических/жестких ссылок.

Формат

Рассмотрим следующий пример:

Каждый раздел назначает один или несколько ярлыков приложений типам MIME.

  • Added Associations (Добавленные ассоциации) указывают, что приложения поддерживают открытие этого типа MIME. Например, bar.desktop и baz.desktop могут открывать изображения JPEG. Это может повлиять на список приложений, который вы видите при щелчке правой кнопкой мыши по файлу в файловом менеджере.
  • Removed Associations (Удаленные ассоциации) указывают, что приложения не поддерживают этот тип MIME. Например, baz.desktop не может открыть видео H.264.
  • Default Applications (Приложения по умолчанию) указывают, что приложения должны выбираться по умолчанию для открытия этого типа MIME. Например, изображения JPEG должны быть открыты с помощью foo.desktop . Это неявно добавляет связь между приложением и типом MIME. Если есть несколько приложений, они проверяются по порядку.

Каждый раздел является необязательным и может быть опущен, если он не нужен.

mailcap

The factual accuracy of this article or section is disputed.

Формат mailcap(4) [устаревшая ссылка 2020-05-22] используется почтовыми программами, такими как mutt и sylpheed для открытия нетекстовых файлов. Чтобы эти программы использовали xdg-open, отредактируйте

Утилиты

Хотя можно настроить приложения по умолчанию и типы MIME путем прямого редактирования #mimeapps.list и #База данных MIME, существует множество инструментов, которые могут упростить процесс. Эти инструменты также важны, поскольку приложения могут делегировать открытие файлов этими инструментами, а не пытаться реализовать стандарт типа MIME.

Если вы используете окружение рабочего стола, вы должны сначала проверить, предоставляет ли он свою собственную утилиту. Она должна быть предпочтительнее этих альтернатив.

xdg-utils

xdg-utils предоставляет официальные утилиты для управления типами MIME и приложениями по умолчанию в соответствии со стандартом XDG. Самое главное, что он предоставляет /usr/bin/xdg-open , который используют многие приложения, чтобы открыть файл с помощью приложения по умолчанию. Он не зависит от окружения рабочего стола, в том смысле, что он пытается использовать собственный инструмент приложения по умолчанию для каждой среды и предоставляет свой собственный механизм, если неизвестная среда не обнаружена. Примеры:

Альтернативы xdg-open

Из-за сложности #xdg-utils версии xdg-open может быть сложно отлаживать, когда открывается неправильное приложение по умолчанию. Из-за этого существует множество альтернатив, которые пытаются улучшить его. Некоторые из этих альтернатив заменяют двоичный файл /usr/bin/xdg-open , тем самым изменяя поведение приложений по умолчанию для большинства приложений. Другие просто предоставляют альтернативный метод выбора приложений по умолчанию.

perl-file-mimeinfo

perl-file-mimeinfo предоставляет инструменты mimeopen и mimetype . Они имеют немного более приятный интерфейс, чем их эквиваленты xdg-utils :

Самое главное, что приложения #xdg-utils на самом деле вызывают mimetype вместо file для обнаружения типа MIME, если он не обнаруживает ваше окружение рабочего стола. Это важно, потому что file не следует за стандартом XDG.

mimeo

mimeo AUR предоставляет инструмент mimeo который объединяет функции xdg-open и xdg-mime .

Однако большая разница с xdg-utils заключается в том, что mimeo также поддерживает пользовательские «файлы ассоциаций», которые допускают более сложные ассоциации. Например, передача определенных аргументов командной строки на основе регулярного выражения соответствует:

xdg-utils-mimeo AUR исправляет xdg-utils так что xdg-open возвращается в mimeo, если окружение рабочего стола не обнаружено.

whippet

whippet AUR предоставляет инструмент whippet , который похож на xdg-open . Он имеет интеграцию с X11, используя libnotify для отображения ошибок и dmenu для отображения вариантов между открываемыми приложениями.

В дополнение к стандарту #mimeapps.list, whippet также может использовать базу данных SQlite ассоциаций весового приложения/типа MIME/регулярных выражений для определения, какое приложение использовать.

Собственные замены

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

Пакет Особенности
linopen AUR Разрешает правила регулярного выражения, может указывать запасное приложение для открывания файлов
mimi-git AUR Может изменять аргументы команды для каждого типа MIME
busking-git AUR Аналогично mimi, но при этом поддерживает правила регулярных выражений
sx-open AUR Использует простой конфигурационный файл на основе оболочки пользователя (shell)

lsdesktopf

lsdesktopf AUR предоставляет несколько способов поиска в базе данных MIME и ярлыков MIME на рабочем столе.

Например, чтобы увидеть все расширения MIME в файлах .desktop в системе, которые имеют тип MIME video , вы можете использовать lsdesktopf —gm -gx video или для поиска в файлах базы данных XML, используйте lsdesktopf —gdx -gx video . Чтобы получить краткий обзор того, сколько и какие файлы .desktop могут быть связаны с определенным типом MIME, используйте lsdesktopf —gen-mimeapps . Чтобы просмотреть все расширения имен файлов в файлах базы данных XML, используйте lsdesktopf —gdx -gfx .

Решение проблем

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

Отсутствует файл .desktop

Для связывания приложений с типами MIME требуются ярлыки приложений. Убедитесь, что такая запись существует и может использоваться для открытия (вручную) файлов в приложении.

Отсутствует ассоциация

Если в ярлыке приложения не указан тип MIME под его ключом MimeType , он не будет учитываться, когда приложение необходимо для открытия этого типа. Измените #mimeapps.list, чтобы добавить связь между файлом .desktop и типом MIME.

Нет приложения по умолчанию

Если ярлык приложения связан с типом MIME, его просто нельзя установить как значение по умолчанию. Измените #mimeapps.list, чтобы установить связь по умолчанию.

Нестандартная ассоциация

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

/.local/share/applications/defaults.list . Если вы пытаетесь открыть файл из другого приложения (например, веб-браузера или файлового менеджера), проверьте, имеет ли это приложение собственный способ выбора приложений по умолчанию.

Переменные в файлах .desktop, которые влияют на запуск приложения

This article or section needs expansion.

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

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

Это может произойти, например, если в переменной Exec отсутствуют внутренние параметры, необходимые для открытия файла или того, как приложение отображается в меню. Переменная Exec обычно начинается с % ; чтобы узнать поддерживаемые параметры в настоящее время смотрите exec-переменные.

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

Источник

Читайте также:  Где находится драйвер клавиатуры windows 10
Оцените статью