Как установить ассоциацию между типами файлов и программами в Astra Linux?

Как в Astra Linux установить ассоциацию типов файлов с конкретными программами, если графический интерфейс не позволяет это сделать? Я пытался настроить открытие файлов формата *.XML, *.drawio, *.sh и *.txt, однако все они связаны с одним и тем же MIME-типом и открываются в одной и той же программе. Какие шаги можно предпринять для настройки ассоциаций?
  • 18 декабря 2024 г. 6:23
Ответы на вопрос 2
В Astra Linux, как и в других дистрибутивах Linux, можно управлять ассоциациями файлов и программ через настройки MIME-типов. Если графический интерфейс не позволяет выполнить настройку, это можно сделать вручную, изменив конфигурацию MIME-типов в файловой системе. Вот шаги, которые помогут вам установить ассоциацию типов файлов с конкретными программами:

### 1. Определите MIME-тип файлов
Сначала проверьте, какой MIME-тип у файлов, которые вы хотите ассоциировать. Для этого можно использовать команду `file`:

```bash
file --mime-type файл.xml
file --mime-type файл.drawio
file --mime-type файл.sh
file --mime-type файл.txt
```

### 2. Откройте конфигурационные файлы
Ассоциации файлов с приложениями обычно настраиваются в следующих местах:

- `/usr/share/applications/` — содержит файлы `.desktop` для приложений.
- `~/.local/share/applications/` — личные файлы `.desktop` пользователей.
- `~/.config/mimeapps.lst` — файл, который управляет ассоциациями MIME-типов.

### 3. Настройка файла `mimeapps.lst`
Откройте файл `~/.config/mimeapps.lst` (если его нет, создайте) и добавьте или измените записи для нужных MIME-типов. Примерно это может выглядеть так:

```ini
[Default Applications]
text/xml=your-xml-editor.desktop
application/vnd.drawio=your-drawio-editor.desktop
application/x-shellscript=your-shell-editor.desktop
text/plain=your-text-editor.desktop
```

### 4. Создание `.desktop` файлов
Если у вас нет соответствующих `.desktop` файлов для ваших программ, создайте их. Например, создайте файл `your-xml-editor.desktop` в каталоге `~/.local/share/applications/`:

```ini
[Desktop Entry]
Name=XML Editor
Exec=/path/to/xml-editor %F
Type=Application
MimeType=text/xml;
```

Убедитесь, что указанный в `Exec` путь к программе корректен, а `%F` используется для передачи пути к файлу.

### 5. Обновление баз данных MIME
После внесения изменений может потребоваться обновление баз данных MIME:

```bash
update-desktop-database ~/.local/share/applications/
update-mime-database /usr/share/mime
```

### 6. Попробуйте открыть файлы
Теперь попробуйте открыть файлы, и они должны открываться в ассоциированных приложениях, указанных в ваших настройках.

### Примечание
Если у вас есть специфические программы, которые не зарегистрированы для использования в системе, возможно, потребуется сначала установить их или убедиться, что они могут быть вызваны через командную строку.
MIME можно дополнить расширением. 
Астра - это Дебиан, соответственно, гуглим "debian mime add extension".
Получаем, что нужно добавить строчку с glob pattern.
Вот так, например, у меня для своей программы выделяются именно .EPS-файлы (это кусок из скрипта первичной настройки новой рабочей станции):
cat << EOF > ~/.local/share/mime/packages/application-x-epos.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-epos">
        <comment>EPS file</comment>
        <icon name="application-x-epos"/>
        <glob-deleteall/>
        <glob pattern="*.eps"/>
    </mime-type>
</mime-info>
EOF
update-mime-database ~/.local/share/mime
Похожие вопросы