Не открывается файл по расширению (*.ts в smplayer)
Добавлено: 01 апр 2019, 19:46
Это вообще-то не специфичная для manjaro проблема, но впервые столкнулся "в упор" именно тут. Затрагивает все Gnome подобное (т.е. mate, gnome, cinnamon как минимум, а так же xfce. Про актуальность для kde - не скажу.)
Симптом: при попытке открытия файла, выдается предложение его запустить или открыть - система не знает о таком. При попытке назначить ассоциацию с конкретной программой - ничего не получается, DE ассоциацию не запоминает.
Причина: отсутствует описание MIME типа для файлов с таким расширением, а потому они при обработке запроса попадают в категорию text/plain.
Краткий комментарий: в линуксе расширение файла - не является маркером его типа исторически. По сути, самого понятия "расширение" у нас вообще нету. Часть имени файла после последней точки, ничем специальным не выделяется технически (в отличии от винды). Что не мешает использовать оные части как расширения в оффтопике. Более того - это удобно в случае десктопа. Потому, чтобы не ломать совместимость и не нарушать стандарт POSIX для обработки типов файла ввели механизм MIME типов. С его помощью файл может быть записан в нужный тип и по "расширению".
Решение с теорией: https://wiki.archlinux.org/index.php/XD ... _(Русский) - полная теория.
Выжимка:
1. Создать xml с содержимым примерно такого вида (пишу для своего случая):
(Создаем тип video/x-ts, и заносим туда все файлы попадающие под маску *.ts) Имя может быть любым - для определенности - беру
2.Импортируем новый тип командой:
3. Можем назначать файлам этого типа любимый плеер обычным способом через DE ("Открыть с помощью...") - теперь выбор будет запомнен.
Симптом: при попытке открытия файла, выдается предложение его запустить или открыть - система не знает о таком. При попытке назначить ассоциацию с конкретной программой - ничего не получается, DE ассоциацию не запоминает.
Причина: отсутствует описание MIME типа для файлов с таким расширением, а потому они при обработке запроса попадают в категорию text/plain.
Краткий комментарий: в линуксе расширение файла - не является маркером его типа исторически. По сути, самого понятия "расширение" у нас вообще нету. Часть имени файла после последней точки, ничем специальным не выделяется технически (в отличии от винды). Что не мешает использовать оные части как расширения в оффтопике. Более того - это удобно в случае десктопа. Потому, чтобы не ломать совместимость и не нарушать стандарт POSIX для обработки типов файла ввели механизм MIME типов. С его помощью файл может быть записан в нужный тип и по "расширению".
Решение с теорией: https://wiki.archlinux.org/index.php/XD ... _(Русский) - полная теория.
Выжимка:
1. Создать xml с содержимым примерно такого вида (пишу для своего случая):
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="video/x-ts">
<comment>TS video (raw capture)</comment>
<glob pattern="*.ts"/>
</mime-type>
</mime-info>
video-x-ts.xml
2.Импортируем новый тип командой:
xdg-mime install video-x-ts.xml
3. Можем назначать файлам этого типа любимый плеер обычным способом через DE ("Открыть с помощью...") - теперь выбор будет запомнен.