Как изменить программу по умолчанию для файлов с одним расширением

В Ubuntu 18. ** как мне установить программу по умолчанию только для файлов с одним определенным расширением файла ? Например, если я использую графический интерфейс и использую «Установить по умолчанию» для файла .txt, это также меняет настройку по умолчанию для файлов со многими другими расширениями. Я не хочу этого. Как изменить программу по умолчанию только для файлов с определенным расширением?

0
задан 10 October 2019 в 16:23

1 ответ

Этот ответ адаптирован из ответа Ондры Жижки здесь: Как установить программу по умолчанию? . Пожалуйста, проголосуйте и там, если это вам поможет.

Чтобы изменить программу по умолчанию для файлов с определенным типом файлов, необходимо создать тип MIME для каждого расширения файла. Это связано с тем, что Ubuntu отслеживает это косвенно:

  • расширение файла -> Типы MIME
  • Тип MIME -> приложение (я) для открытия
  • Приложения -> список совместимых типов MIME

Для Ubuntu (18.x) ) применяется следующее:

расширение файла -> Типы MIME

Это определяется из файлов в / usr / share / mime / packages / . Например: [

cat << EOF | sudo tee /usr/share/mime/packages/staruml.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="application/staruml-project">
    <comment>StarUML project</comment>
    <glob pattern="*.MDJ"/>
    <glob pattern="*.mdj"/>
  </mime-type>
</mime-info>
EOF

] Из них создаются другие XML-файлы, которые помещаются в / usr / share / mime / . Иногда эти файлы можно найти в Интернете, особенно для программного обеспечения с открытым исходным кодом, упакованного для Ubuntu. Например, файлы mime для KiCad можно найти в репозитории исходного кода KiCad: https: // gitlab.com / kicad / code / kicad / - / tree / master / resources / linux / mime

Тип MIME -> открываемое приложение (я)

Это управляется ~ / .config / mimeapps.list или, возможно, ~ / .local / share / applications / mimeapps.list . Это должно иметь приоритет перед /usr/share/applications/mimeapps.list . Например:

echo 'application/staruml=staruml.desktop' | tee -a ~/.local/share/applications/mimeapps.list

Или, чтобы изменить для всех пользователей:

echo 'application/staruml=staruml.desktop' | sudo tee -a /usr/share/applications/mimeapps.list

Приложения -> список совместимых типов MIME

Это определяется файлами .desktop в / usr / share / application / . Этот файл может содержать запись MimeType = со списком типов MIME, разделенных точкой с запятой. Например, в приложении EOG есть MimeType = image / bmp; image / gif; image / jpeg; image / jpg; ... .

cat << EOF | sudo tee /usr/share/applications/staruml.desktop
[Desktop Entry]
Name=StarUML
Comment=StarUML
GenericName=StarUML
Exec=/sw/prog/StarUML/StarUML-3.1.0-x86_64.AppImage %U
Icon=/sw/prog/StarUML/staruml.png
Type=Application
StartupNotify=false
Categories=Development;Programming;Modeling;UML
MimeType=application/staruml-project;
EOF

Таким образом, круг замкнулся. Изменения вступают в силу после запуска

sudo update-mime-database /usr/share/mime

, а для значков -

sudo gtk-update-icon-cache /usr/share/icons/gnome -f

Или вам может потребоваться выйти / войти в систему.

Затем mimetypes для данного расширения файла можно проверить с помощью mimetype :

$ mimetype .mdj
.mdj:  application/staruml-project

Ссылки:

Источник: Ондра Жижка (адаптировано)

2
ответ дан 24 March 2020 в 01:27

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

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