Запуск файлов из Midnight Commander (MC)
Проблема: файлы документов/аудио/видео из Midnight Commander-а (mc) не открываются или же запускаются, но в окне mc появляется мусорные строчки, которые сдвигают экран вверх и портят вид.
Объяснение: Реакция файл-менеджера на запуск/просмотр/редактирование неисполняемого для системы файла, полностью зависит от так называемого «файла расширений» mc.ext.
Структурно файл расширений состоит из нескольких блоков, в каждом из которых содержится описание расширений файлов и программы для их запуска, и каждый блок охватывает отдельный вид файлов, будь то аудио или видеофайлы, документы или архивы.
Поэтому, чтобы «научить» Midnight Commander открывать файлы, с нужными нам расширениями, или убрать вывод мусорных строк на экран, нам придёться подрихтовать «файл расширений» миднайт коммандера.
Решение: запускаем в консоли mc с правами рута:
sudo mc
заходим в меню: F9>Команда(Command)>Файл расширений(Extension file edit) и выбираем файл расширений «Общесистемный», это нужно для того, чтобы изменения распространялись сразу на всех пользователей системы.
или просто запускаем под рутом редактор с общесистемным файлом расширений:
sudo nano /etc/mc/mc.ext
Теперь, к примеру, мы хотим сделать так, чтобы видеофайлы с расширением mkv запускались из файл-менеджера и открывались в видеоплеере.
Я приведу уже модифицированный блок файла расширений для видеофайлов, с добавленной поддержкой mkv-файлов, и с комментариями:
### Video ###
В этом блоке описыватся все расширения видеофайлов и их команды запуска/обработки. Сами расширения, в верхнем и нижнем регистрах, представлены в виде регулярных выражений. Строка «Include=video», после каждого расширения, предписывает использовать для обработки этого расширения команду из последней в блоке директивы «include/video» (она указана в последнем примере):
# расширение AVI
regex/.([aA][vV][iI])$
Include=video# расширение ASF
regex/.([aA][sS][fFxX])$
Include=video# расширение DIVX
regex/.([dD][iI][vV][xX])$
Include=video# расширение MOV, MOVQ, MOVQT
regex/.([mM][oO][vV]|[qQ][tT])$
Include=video# расширения MP4, MPE, MPEG
regex/.([mM][pP]4|[mM][pP][eE]?[gG])$
Include=video# расширение VOB
regex/.([vV][oO][bB])$
Include=video# расширение WMV
regex/.([wW][mM][vV])$
Include=video# расширения FLI, FLC, FLV
regex/.([fF][lL][iIcCvV])$
Include=video# расширение OGM
regex/.([oO][gG][mM])$
Include=video# Добавим, по аналогии, расширение MKV
regex/.([mM][kK][vV])$
Include=video
В случае ниже, для формата RealAudio, вместо того, чтобы использовать общую для всех видеофайлов команду из директивы «Include=video», для открытия используется run-mailcap — системная программа запуска приложений, которая открывает файлы исходя из системных файловых ассоциаций.
# расширения формата RealAudio — RA, RAM
regex/.([rR][aA]?[mM])$
Open=run-mailcap %f 2>&1
#Open=(realplay %f >/dev/null 2>&1 &)
Вот мы и добрались до общей директивы обработки всех расширений (кроме файлов формата RealAudio).
Как видно ниже, в последней закоментированной строке, для открытия видеофайлов, может быть указан конкретный плейер (mplayer), но в моем случае, а именно, в среде XFCE (Xubuntu), для открытия файлов, программами по умолчанию, используется утилита exo-open, которая ориентируется на файловые ассоциации самой среды XFCE. Для Gnome, вместо exo-open, используется gnome-open, а для KDE — kfmclient exec
Так же, решим проблему мусорных строк при запуске файла, вставив «>/dev/null» и тем самым, перенаправив стандартный поток в /dev/null
include/video
# Для XFCE
Open=exo-open %f >/dev/null 2>&1 &
# Для Gnome
# Open=gnome-open %f >/dev/null 2>&1 &
# Для KDE
# Open=kfmclient exec %f >/dev/null 2>&1 &
# тут показано, как открыть сразу плейером
# Open=(mplayer %f >/dev/null 2>&1 &)
По аналогии, редактируется и всё остальное.


05 Окт 2009 в 21:53
Спасибо большое! До этого видео ручками открывал, а теперь всё так красиво.
08 Окт 2009 в 20:55
Рад, что помог )
27 Дек 2009 в 00:20
Спасибо! Настраивал в Debian Lenny. Мой случай с .avi:
regex/\.([aA][vV][iI])$
#Была строка
#Include=video
#Видео корректно открывается после того как добавил строку
Open=(totem %f >/dev/null 2>&1 &)
include/video
Open=see %f &
#Open=(mplayer %f >/dev/null 2>&1 &)
#Open=(gtv %f >/dev/null 2>&1 &)
#Open=(xanim %f >/dev/null 2>&1 &)
Т.о. в файле конфигурации mc у меня были перечислены все расширения, но были прописаны программы не установленные в системе. Прописал Totem установленный у меня. После этого заработало!
27 Дек 2009 в 10:54
Рад, что помог )
Кстати, я раньше тоже указывал конкретный проигрыватель на открытие, но удобнее оказалось передавать файл обработчику файловых ассоциаций среды (как в последнем абзаце), потому, что так можно менять (в графической среде) плейер по умолчанию, не редактируя /etc/mc/mc.ext каждый раз.
29 Дек 2009 в 01:03
Спасибо! Теперь окончательно разобрался.
19 Фев 2010 в 03:26
[...] двухпанельный файловый менеджер под Linux. Грамотно настроенный mc позволяет чувствовать себя сухо и комфортно
Слава [...]