]> git.phdru.name Git - dotfiles.git/commitdiff
.mc: Move to MC 4 `mc.ext.ini`
authorOleg Broytman <phd@phdru.name>
Mon, 17 Jul 2023 07:12:37 +0000 (10:12 +0300)
committerOleg Broytman <phd@phdru.name>
Mon, 17 Jul 2023 07:12:37 +0000 (10:12 +0300)
.mc/mc.ext.ini [new file with mode: 0644]

diff --git a/.mc/mc.ext.ini b/.mc/mc.ext.ini
new file mode 100644 (file)
index 0000000..51475db
--- /dev/null
@@ -0,0 +1,1266 @@
+# Midnight Commander 4.0 extension file
+#
+# Warning: The structure of this file has been completely changed with the version 4.0!
+#
+# All lines starting with # or empty lines are ignoted.
+#
+# IMPORTANT: mc scans this file only upon first use or after editing it using the
+# mc "Edit extension file" command (F9-c-e). If you edit this file in any other way
+# while mc is running, you will need to press F9-c-e and exit the editor for your
+# changes to take effect, or exit mc and start it again.
+#
+# Section name can be anything with following exceptions:
+#    there are two reserved section names:
+#        mc.ext.ini
+#        Default
+#    special name pattern:
+#        Include/xxxxx
+# See below for more details.
+#
+# Section [mc.ext.ini] is mandatory. It contains file metadata.
+# "Version" parameter is mandatory. It contains the file format version.
+#
+# Section [Default] is optional. It is applied only if no other match was found.
+#
+# Sections like [Include/xxxx] can be referenced as "Include=xxxx" from other sections.
+# Section [Include/xxxx] can be located as before as after sections that point to it.
+#
+# Sections are processed from top to bottom, thus the order is important.
+# If there are more than one sections with the same name in this file, the first
+# section will be used.
+#
+# [Default] should be a catch-all action and come last.
+#
+# A section describing a file can contain following keys:
+#
+#    File descriptions:
+#
+#        Directory
+#            Matches any directory matching regular expression.
+#            Always case sensitive.
+#            This key has the highest priority over other keys. If this key is in a section,
+#            other keys are ignored.
+#
+#        Type
+#            Matches files if `file %f` matches regular expression
+#            (the "filename:" part is removed from `file %f` output).
+#            Ignored if the "file" utility isn't used (not found during the configure step
+#            or disabled in the ini-file).
+#
+#        TypeIgnoreCase [true|false]
+#            Defines whether the Type value is case sensitive or not.
+#            If absent, Type is case sensitive.
+#
+#        Regex
+#            An extended regular expression
+#            Please note that we are using the PCRE library and thus \| matches
+#            the literal | and | has a special meaning (or), and () have a special meaning
+#            and \( \) stand for literal ( ).
+#
+#            Example:
+#                Regex=\.t(ar\.lzma|lz)$
+#            matches *.tar.lzma or *.tlz.
+#
+#        RegexIgnoreCase [true|false]
+#            Defines whether the Regex value is case sensitive or not.
+#            If absent, Regex is case sensitive.
+#
+#        Shell
+#            Describes an extension when starting with a dot (no wildcards).
+#
+#            Example:
+#                Shell=.tar
+#            matches *.tar.
+#
+#            If it doesn't start with a dot, it matches only a file of that name.
+#
+#            If both keys Regex and Shell are in the same section, Regex is used
+#            and Shell is ignored.
+#
+#        ShellIgnoreCase [true|false]
+#            Defines whether the Shell value is case sensitive or not.
+#            If absent, Shell is case sensitive.
+#
+#        Include
+#            Reference to another section.
+#
+#            Example:
+#                Include=video
+#            points to the [Include/video] section.
+#
+#    Commands:
+#
+#        Open
+#            Execute the command if the user presses Enter or doubleclicks it.
+#
+#        View
+#            Execute the command if the user presses F3.
+#
+#        Edit
+#            Execute the command if the user presses F4.
+#
+#    All commands are ignored if the section contains the Include key.
+#
+#    Command is any one-line shell command, with the following substitutions:
+#
+#        %%
+#            The % character
+#
+#        %p
+#            Name of the current file without the path.
+#            Also provided to the external application as MC_EXT_BASENAME environment variable.
+#
+#        %f
+#            Name of the current file. Unlike %p, if the file is located on a non-local
+#            virtual filesystem, that is either tarfs or ftpfs, then the file will be
+#            temporarily copied into a local directory and %f will be the full path
+#            to this local temporary file.
+#            If you don't want to get a local copy and want to get the virtual fs path
+#            (like /ftp://ftp.cvut.cz/pub/hungry/xword), then use %d/%p instead of %f.
+#            Also provided to the external application as MC_EXT_FILENAME environment variable.
+#
+#        %d
+#            Name of the current directory without the trailing slash (`pwd`).
+#            Also provided to the external application as MC_EXT_CURRENTDIR environment variable.
+#
+#        %s
+#            "Selected files", that is space separated list of tagged files if any or the name
+#            of the current file.
+#            Also provided to the external application as MC_EXT_SELECTED environment variable.
+#
+#        %t
+#            List of the tagged files.
+#            Also provided to the external application as MC_EXT_ONLYTAGGED environment variable.
+#
+#        %u
+#            List of the tagged files (they will be untaged after the command is executed).
+#
+#        (If the letter following the % is uppercase, then it refers to the opposite panel.
+#        But you shouldn't have to use it in this file.)
+#
+#        %cd
+#            The rest is a path mc should change into (cd won't work, since it's a child process).
+#            %cd handles even vfs names.
+#
+#        %view
+#            The command output will be piped into mc's internal file viewer. If you use
+#            only %view and no command, the viewer will load %f file instead (that is no piping,
+#            which is the difference to %view cat %f).
+#
+#            %view may be directly followed by {} with one or more of the following
+#            separated by commas:
+#                ascii (ascii mode)
+#                hex (hex mode),
+#                nroff (color highlighting for text using escape sequences),
+#                unform (no highlighting for nroff sequences)
+#
+#        %var{VAR:default}
+#            This macro will expand to the value of the VAR variable in the environment if it's
+#            set, otherwise the default value will be used. This is similar to the Bourne shell
+#            ${VAR-default} construct.
+#
+#    Section can contain both Type and Regex or Type and Shell keys. In this case
+#    they are handled as an AND condition.
+#
+#    Example:
+#        Shell=.3gp
+#        Type=^ISO Media.*3GPP
+#
+#    matches *.3gp files for which `file` output is a line starting with "ISO Media"
+#    and containing "3GPP".
+#
+#    If there are more than one keys with the same name in a section, the last key will be used.
+#
+#
+# Any new entries you want to add are always welcome if they are useful on more than one
+# system. You can post your modifications as tickets at www.midnight-commander.org.
+
+
+### Changes ###
+#
+# Reorganization: 2012-03-07 Slava Zanko <slavazanko@gmail.com>
+#                 2021-03-28 Andrew Borodin <aborodin@vmail.ru>
+#                 2021-08-24 Tomas Szepe <szepe@pinerecords.com>
+#                 2022-09-11 Andrew Borodin <aborodin@vmail.ru>: port to INI format.
+
+[mc.ext.ini]
+Version=4.0
+
+### phd
+# For MC version 4
+
+[Berkeley DB 1.85]
+Type=^Berkeley\ DB\ 1.85
+View=%view{ascii} db_dump185 -p %f
+
+# [Compiled HTML]
+#Shell=.chm
+#Open=fbreader %f &
+#
+## [DejaVu]
+#Shell=.djvu
+#Open=djview %f &
+#
+[EPUB]
+Shell=.epub
+Open=fbreader %f &
+
+[FB2]
+Shell=.fb2
+Open=fbreader %f &
+View=%view{ascii} xsltproc /usr/local/src/distr/FictionBook/FB2_2_txt_ru.xsl %f
+
+#[PostScript]
+#Type=^PostScript
+#Open=libreoffice %f &
+#View=%view{ascii} ps2ascii %f
+
+#[RTF]
+#Regex=\.rtf$
+#Open=fbreader %f &
+#View=%view{ascii} catdoc %f
+
+#[doc-wri]
+#Regex=\.(doc|wri)$
+#Include=msoffice-doc
+
+[docs]
+Regex=\.docx$
+Edit=libreoffice %f &
+Open=libreoffice %f &
+View=%view{ascii} docx2txt %f - | iconv.py -f utf-8
+
+#[Composite Document File]
+#Type=^Composite\ Document\ File
+#Include=msoffice-doc
+
+[Microsoft Word 2007]
+Type=^Microsoft\ Word\ 2007+
+Include=msoffice-doc
+
+[Microsoft Office Document]
+Type=^Microsoft\ Office\ Document
+Include=msoffice-doc
+
+[xlsx]
+Regex=\.xlsx$
+Include=msoffice-xlsx
+
+[/^Microsoft Excel 2007+]
+Include=msoffice-xlsx
+
+[ftplist]
+Regex=\.ftplist$
+Open=%cd %p#ftplist
+
+[Play list]
+Regex=\.(m3u8?|pls)$
+Include=audio
+
+[Lossless audio]
+Regex=\.(cue|aac|ac3|ape|flac|wv|mka)$
+Include=audio
+
+## Object
+#Shell=.o
+#View=%view{ascii} nm %f
+#Disassemble=%view{ascii} objdump -d -r %f
+#
+## Python
+#Shell=.py
+#Open=python %f
+#View=%view{ascii} cat %f
+#Compile=compyle %s
+#Icon=snake.xpm
+
+[Conda/python packages]
+Regex=\.(conda|egg|whl)$
+Include=zip
+
+# TIFF
+#Regex=\.tiff?$
+#Open=xview %f
+
+[torrent]
+Shell=.torrent
+Open=%cd %p/torrent://
+
+[xml-ext]
+Regex=\.xml$
+Include=xml
+
+[xml-type]
+Type=^XML\ *(1\.0\ *)?document
+Include=xml
+
+[LRE/Flibusta INPX]
+Regex=\.(inpx)$
+Include=zip
+
+[Include/audio]
+#Open=[ "`audtool --get-volume`" -eq 0 ] && (cgmem_nice 200 audacious & sleep 3); audtool --playlist-clear; case %f in *.m3u8?) while read song; do audtool --playlist-addurl "$song"; done < %f ;; *) audtool --playlist-addurl %f ;; esac; audtool --playback-play
+#Open=mplay %f &
+Open=deadbeef %f &
+View=%view{ascii} cat %f
+
+[Include/msoffice-doc]
+Edit=libreoffice %f &
+Open=libreoffice %f &
+View=%view{ascii} catdoc %f
+
+[Include/msoffice-xlsx]
+Edit=libreoffice %f &
+Open=libreoffice %f &
+View=%view{ascii} xlsx2csv %f | iconv.py -f utf-8
+
+#[Include/video]
+#Open=mplay %f &
+#View=%view{ascii} cat %f
+
+[Include/xml]
+Open=%cd %p/xml://
+
+[Include/zip]
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
+
+### /phd
+
+### GIT Repo ###
+[gitfs changeset]
+Regex=^\[git\]
+Open=%cd %p/changesetfs://
+View=%cd %p/patchsetfs://
+
+### Archives ###
+# Since we use "file -z", we should use Regex and Shell first, then Type.
+
+
+######### Files by name (Regex and Shell) #########
+
+# .tgz, .tpz, .tar.gz, .tar.z, .tar.Z
+[tar.gzip]
+Regex=\.t([gp]?z|ar\.g?[zZ])$
+Include=tar.gz
+
+[ipk]
+Shell=.ipk
+Include=tar.gz
+
+[gem]
+Shell=.gem
+Include=tar.gz
+
+[tar.bzip]
+Shell=.tar.bz
+# Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip
+
+[tar.bzip2]
+Regex=\.t(ar\.bz2|bz2?|b2)$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip2
+
+# .tar.lzma, .tlz
+[tar.lzma]
+Regex=\.t(ar\.lzma|lz)$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lzma
+
+[tar.lz]
+Shell=.tar.lz
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lz
+
+# .tar.lz4, .tlz4
+[tar.lz4]
+Regex=\.t(ar\.lz4|lz4)$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lz4
+
+# .tar.xz, .txz
+[tar.xz]
+Regex=\.t(ar\.xz|xz)$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.xz
+
+# .tar.zst, .tzst
+[tar.zst]
+Regex=\.t(ar\.zst|zst)$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.zst
+
+# .tar.F - used on QNX
+[tar.F]
+Shell=.tar.F
+# Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.F
+
+# .qpr/.qpk - QNX Neutrino package installer files
+[tar.qpr]
+Regex=\.qp[rk]$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.qpr
+
+[tar]
+Shell=.tar
+ShellIgnoreCase=true
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar
+
+[arj]
+Regex=\.a(rj|[0-9][0-9])$
+RegexIgnoreCase=true
+Open=%cd %p/uarj://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arj
+
+[cab]
+Shell=.cab
+ShellIgnoreCase=true
+Open=%cd %p/ucab://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cab
+
+[ha]
+Shell=.ha
+ShellIgnoreCase=true
+Open=%cd %p/uha://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ha
+
+[rar]
+Regex=\.r(ar|[0-9][0-9])$
+RegexIgnoreCase=true
+Open=%cd %p/urar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view rar
+
+# ALZip
+[alz]
+Shell=.alz
+ShellIgnoreCase=true
+Open=%cd %p/ualz://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view alz
+
+[cpio.Z]
+Shell=.cpio.Z
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.z
+
+[cpio.lz]
+Shell=.cpio.lz
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz
+
+[cpio.lz4]
+Shell=.cpio.lz4
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz4
+
+[cpio.xz]
+Shell=.cpio.xz
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.xz
+
+[cpio.zst]
+Shell=.cpio.zst
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.zst
+
+[cpio.gz]
+Shell=.cpio.gz
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.gz
+
+[cpio]
+Shell=.cpio
+ShellIgnoreCase=true
+Include=cpio
+
+[initrd]
+Regex=^(initramfs.*\.img|initrd(-.+)?\.img(-.+)?)$
+Include=cpio
+
+[7zip]
+Shell=.7z
+ShellIgnoreCase=true
+Open=%cd %p/u7z://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view 7z
+
+[patch]
+Regex=\.(diff|patch)$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view cat
+
+[patch.gz]
+Regex=\.(diff|patch)\.(gz|Z)$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
+
+[patch.bz2]
+Regex=\.(diff|patch)\.bz2$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
+
+[patch.xz]
+Regex=\.(diff|patch)\.xz$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
+
+[patch.zst]
+Regex=\.(diff|patch)\.zst$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zst
+
+[ls-lR]
+Regex=(^|\.)ls-?lR(\.gz|Z|bz2)$
+Open=%cd %p/lslR://
+
+[trpm]
+Shell=.trpm
+Open=%cd %p/trpm://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view trpm
+
+# RPM packages (SuSE uses *.spm for source packages)
+[src.rpm]
+Regex=\.(src\.rpm|spm)$
+Open=%cd %p/rpm://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view src.rpm
+
+[rpm]
+Shell=.rpm
+Open=%cd %p/rpm://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view rpm
+
+[deb]
+Regex=\.u?deb$
+Open=%cd %p/deb://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view deb
+
+[dpkg]
+Shell=.debd
+Open=%cd %p/debd://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view debd
+
+[apt]
+Shell=.deba
+Open=%cd %p/deba://
+Ciew=%view{ascii} /usr/lib/mc/ext.d/package.sh view deba
+
+[ISO9660]
+Shell=.iso
+ShellIgnoreCase=true
+Open=%cd %p/iso9660://
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view iso9660
+
+[ar]
+Regex=\.s?a$
+Open=%cd %p/uar://
+#Open=%view{ascii} ar tv %f
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view ar
+
+[gplib]
+Shell=.lib
+ShellIgnoreCase=true
+Open=%cd %p/ulib://
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lib
+
+### Sources ###
+
+[C/C++]
+Regex=\.(c|cc|cpp|cxx|c\+\+)$
+RegexIgnoreCase=true
+Include=editor
+
+[C/C++ header]
+Regex=\.(h|hh|hpp|hxx|h\+\+)$
+RegexIgnoreCase=true
+Include=editor
+
+[Fortran]
+Shell=.f
+ShellIgnoreCase=true
+Include=editor
+
+[Assembler]
+Regex=\.(s|asm)$
+RegexIgnoreCase=true
+Include=editor
+
+[Typescript]
+Shell=.ts
+ShellIgnoreCase=true
+Type=^Java source
+Include=editor
+
+# .so libraries
+[so]
+Regex=\.(so|so\.[0-9\.]*)$
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view so
+
+
+### Documentation ###
+
+#[Texinfo]
+#Regex=\.(te?xi|texinfo)$
+
+[info-by-shell]
+Shell=.info
+Open=/usr/lib/mc/ext.d/text.sh open info
+
+# Exception: .3gp are video files, not manual pages
+[3gp]
+Shell=.3gp
+ShellIgnoreCase=true
+Type=^ISO Media.*3GPP
+Include=video
+
+# Troff with me macros.
+# Exception - "read.me" is not a nroff file.
+[read.me]
+Shell=read.me
+Open=
+View=
+
+[troff]
+Shell=.me
+Open=/usr/lib/mc/ext.d/text.sh open nroff.me %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view nroff.me %var{PAGER:more}
+
+[roff with ms macros]
+Shell=.ms
+Open=/usr/lib/mc/ext.d/text.sh open nroff.ms %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view nroff.ms %var{PAGER:more}
+
+# Manual page
+
+[man.lz]
+Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lz$
+Open=/usr/lib/mc/ext.d/text.sh open man.lz %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lz %var{PAGER:more}
+
+[man.lz4]
+Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lz4$
+Open=/usr/lib/mc/ext.d/text.sh open man.lz4 %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lz4 %var{PAGER:more}
+
+[man.lzma]
+Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$
+Open=/usr/lib/mc/ext.d/text.sh open man.lzma %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lzma %var{PAGER:more}
+
+[man.xz]
+Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.xz$
+Open=/usr/lib/mc/ext.d/text.sh open man.xz %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.xz %var{PAGER:more}
+
+[man.zst]
+Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.zst$
+Open=/usr/lib/mc/ext.d/text.sh open man.zst %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.zst %var{PAGER:more}
+
+# Perl pod page
+[pod]
+Shell=.pod
+Open=/usr/lib/mc/ext.d/text.sh open pod %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view pod %var{PAGER:more}
+
+[chm]
+Shell=.chm
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/text.sh open chm
+
+### Images ###
+
+[xcf]
+Shell=.xcf
+Open=/usr/lib/mc/ext.d/image.sh open xcf
+
+[xbm]
+Shell=.xbm
+Open=/usr/lib/mc/ext.d/image.sh open xbm
+
+[xpm]
+Shell=.xpm
+Include=image
+
+[ico]
+Shell=.ico
+Include=image
+
+[svg]
+Shell=.svg
+ShellIgnoreCase=true
+View=%view{ascii} /usr/lib/mc/ext.d/image.sh view svg
+Open=/usr/lib/mc/ext.d/image.sh open svg
+
+
+### Sound files ###
+
+[sound]
+Regex=\.(wav|snd|voc|au|smp|aiff|snd|m4a|ape|aac|wv|spx|flac)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open common
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view common
+
+[mod]
+Regex=\.(mod|s3m|xm|it|mtm|669|stm|ult|far)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open mod
+
+[wav22]
+Shell=.waw22
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open wav22
+
+[mp3]
+Shell=.mp3
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open mp3
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view mp3
+
+[ogg]
+Regex=\.og[gax]$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open ogg
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view ogg
+
+[opus]
+Shell=.opus
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open opus
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view opus
+
+[midi]
+Regex=\.(midi?|rmid?)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open midi
+
+[wma]
+Shell=.wma
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open wma
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view wma
+
+# Play list
+[playlist]
+Regex=\.(m3u|pls)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/sound.sh open playlist
+
+
+### Video ###
+
+[avi]
+Shell=.avi
+ShellIgnoreCase=true
+Include=video
+
+[asf]
+Regex=\.as[fx]$
+RegexIgnoreCase=true
+Include=video
+
+[divx]
+Shell=.divx
+ShellIgnoreCase=true
+Include=video
+
+[mkv]
+Shell=.mkv
+ShellIgnoreCase=true
+Include=video
+
+[mov]
+Regex=\.(mov|qt)$
+RegexIgnoreCase=true
+Include=video
+
+[mp4]
+Regex=\.(mp4|m4v|mpe?g)$
+RegexIgnoreCase=true
+Include=video
+
+# MPEG-2 TS container + H.264 codec
+[mts]
+Shell=.mts
+ShellIgnoreCase=true
+Include=video
+
+[ts]
+Shell=.ts
+ShellIgnoreCase=true
+Include=video
+
+[bob]
+Shell=.vob
+ShellIgnoreCase=true
+Include=video
+
+[wmv]
+Shell=.wmv
+ShellIgnoreCase=true
+Include=video
+
+[fli]
+Regex=\.fl[icv]$
+RegexIgnoreCase=true
+Include=video
+
+[ogv]
+Shell=.ogv
+ShellIgnoreCase=true
+Include=video
+
+[realaudio]
+Regex=\.ra?m$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/video.sh open ram
+
+[webm-by-shell]
+Shell=.webm
+ShellIgnoreCase=true
+Include=video
+
+
+### Documents ###
+
+[html]
+Regex=\.html?$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/web.sh open html
+View=%view{ascii} /usr/lib/mc/ext.d/web.sh view html
+
+[StarOffice-5.2]
+Shell=.sdw
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
+
+# StarOffice 6 and OpenOffice.org formats
+[OpenOffice.org]
+Regex=\.(odt|fodt|ott|sxw|stw|ods|fods|ots|sxc|stc|odp|fodp|otp|sxi|sti|odg|fodg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view odt
+
+[AbiWord]
+Shell=.abw
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open abw
+
+[Gnumeric]
+Shell=.gnumeric
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open gnumeric
+
+[rtf]
+Shell=.rtf
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open msdoc
+
+# Microsoft Word Document
+[msdoc-by-shell]
+Regex=\.(do[ct]|wri|docx)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open msdoc
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
+
+# Microsoft Excel Worksheet
+[msxls-by-shell]
+Regex=\.(xl[sw]|xlsx)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open msxls
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
+
+# Microsoft PowerPoint Presentation
+[msppt]
+Regex=\.(pp[ts]|pptx)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open msppt
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msppt
+
+[dvi]
+Shell=.dvi
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open dvi
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view dvi
+
+[tex]
+Shell=.tex
+ShellIgnoreCase=true
+Include=editor
+
+[markdown]
+Regex=\.(md|mkd)$
+ShellIgnoreCase=true
+Include=editor
+
+[djvu]
+Regex=\.djvu?$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open djvu
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view djvu
+
+# Comic Books
+[cbr]
+Regex=\.cb[zr]$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open comic
+
+# Epup, mobi, fb2
+[ebook]
+Regex=\.(epub|mobi|fb2)$
+RegexIgnoreCase=true
+Open=/usr/lib/mc/ext.d/doc.sh open ebook
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view ebook
+
+
+### Miscellaneous ###
+
+# Compiled Java classes
+[javaclass]
+Shell=.class
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view javaclass
+
+[Imakefile]
+Shell=Imakefile
+Open=xmkmf -a
+
+# Makefile.PL (MakeMaker)
+[Makefile.pl]
+Regex=^Makefile\.(PL|pl)$
+Open=%var{PERL:perl} %f
+
+[Makefile]
+Regex=^[Mm]akefile
+Open=make -f %f %{Enter parameters}
+
+[dbf]
+Shell=.dbf
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/misc.sh open dbf
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view dbf
+
+# REXX script
+[rexx]
+Regex=\.(rexx?|cmd)$
+Open=rexx %f %{Enter parameters};echo "Press ENTER";read y
+
+# Disk images for Commodore computers (VIC20, C64, C128)
+[d64]
+Shell=.d64
+ShellIgnoreCase=true
+Open=%cd %p/uc1541://
+View=%view{ascii} c1541 %f -list
+
+# Glade, a user interface designer for GTK+ and GNOME
+[glade]
+Shell=.glade
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/misc.sh open glade
+
+# Gettext Catalogs
+[mo]
+Regex=.g?mo$
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view mo
+
+[po]
+Shell=.po
+Open=/usr/lib/mc/ext.d/misc.sh open po
+
+[lyx]
+Shell=.lyx
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/misc.sh open lyx
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lyx
+
+[torrent]
+Shell=.torrent
+ShellIgnoreCase=true
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view torrent
+
+
+### Plain compressed files ###
+
+[ace]
+Shell=.ace
+ShellIgnoreCase=true
+Open=%cd %p/uace://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ace
+
+[arc]
+Shell=.arc
+ShellIgnoreCase=true
+Open=%cd %p/uarc://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arc
+
+[zip-by-shell]
+Shell=.zip
+ShellIgnoreCase=true
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
+
+[zoo]
+Shell=.zoo
+ShellIgnoreCase=true
+Open=%cd %p/uzoo://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zoo
+
+[lz4]
+Shell=.lz4
+ShellIgnoreCase=true
+Open=/usr/lib/mc/ext.d/archive.sh view lz4 %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz4
+
+[wim]
+Shell=.wim
+ShellIgnoreCase=true
+Open=%cd %p/uwim://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view wim
+
+
+######### Files by Type #########
+
+### Archives ###
+
+[mailbox]
+Type=^ASCII\ mail\ text
+Open=%cd %p/mailfs://
+
+
+### Sources ###
+
+# Object
+[elf]
+Type=^ELF
+#Open=%var{PAGER:more} %f
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view elf
+
+
+### Documentation ###
+
+# GNU Info page
+[info-by-type]
+Type=^Info\ text
+Open=/usr/lib/mc/ext.d/text.sh open info
+
+# Manual page - compressed
+[troff.gz]
+Type=troff.*gzip compressed
+Open=/usr/lib/mc/ext.d/text.sh open man.gz %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.gz %var{PAGER:more}
+
+[troff.bzip]
+Type=troff.*bzip compressed
+Open=/usr/lib/mc/ext.d/text.sh open man.bz %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.bz %var{PAGER:more}
+
+[troff.bzip2]
+Type=troff.*bzip2 compressed
+Open=/usr/lib/mc/ext.d/text.sh open man.bz2 %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.bz2 %var{PAGER:more}
+
+# Manual page
+[man]
+Type=troff or preprocessor input
+Open=/usr/lib/mc/ext.d/text.sh open man %var{PAGER:more}
+View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man %var{PAGER:more}
+
+
+### Images ###
+
+[gif]
+Type=^GIF
+Include=image
+
+[jpeg]
+Type=^JPEG
+Include=image
+
+[bitmap]
+Type=^PC\ bitmap
+Include=image
+
+[png]
+Type=^PNG
+Include=image
+
+[jng]
+Type=^JNG
+Include=image
+
+[mng]
+Type=^MNG
+Include=image
+
+[tiff]
+Type=^TIFF
+Include=image
+
+[rbm]
+Type=^PBM
+Include=image
+
+[pgm]
+Type=^PGM
+Include=image
+
+[ppm]
+Type=^PPM
+Include=image
+
+[netpbm]
+Type=^Netpbm
+Include=image
+
+
+### Video ###
+
+[webm-by-type]
+Type=WebM
+Include=video
+
+
+### Documents ###
+
+[postscript]
+Type=^PostScript
+Open=/usr/lib/mc/ext.d/doc.sh open ps
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view ps
+
+[pdf]
+Type=^PDF
+Open=/usr/lib/mc/ext.d/doc.sh open pdf
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view pdf
+
+# Microsoft Word Document
+[msdoc-by-type]
+Type=^Microsoft\ Word
+Open=/usr/lib/mc/ext.d/doc.sh open msdoc
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
+
+# Microsoft Excel Worksheet
+[msxls-by-type]
+Type=^Microsoft\ Excel
+Open=/usr/lib/mc/ext.d/doc.sh open msxls
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
+
+# Use OpenOffice.org/LibreOffice to open any MS Office documents
+[mso-doc-1]
+Type=^Microsoft\ Office\ Document
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
+
+[mso-doc-2]
+Type=^Microsoft\ OOXML
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
+
+[framemaker]
+Type=^FrameMaker
+Open=/usr/lib/mc/ext.d/doc.sh open framemaker
+
+
+### Miscellaneous ###
+
+[sqlite3.db]
+Type=^SQLite 3.x database
+Open=/usr/lib/mc/ext.d/misc.sh open sqlite
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view sqlite
+
+
+### Plain compressed files ###
+
+[gzip]
+Type=\(gzip compressed
+Open=/usr/lib/mc/ext.d/archive.sh view gz %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
+
+[bzip]
+Type=\(bzip compressed
+Open=/usr/lib/mc/ext.d/archive.sh view bzip %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bzip
+
+[bzip2]
+Type=\(bzip2 compressed
+Open=/usr/lib/mc/ext.d/archive.sh view bzip2 %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
+
+[compress]
+Type=\(compress'd
+Open=/usr/lib/mc/ext.d/archive.sh view gz %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
+
+[lz]
+Type=\(lzip compressed
+Open=/usr/lib/mc/ext.d/archive.sh view lz %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz
+
+[lzma]
+Type=\(LZMA compressed
+Open=/usr/lib/mc/ext.d/archive.sh view lzma %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lzma
+
+[xz]
+Type=\(XZ compressed
+Open=/usr/lib/mc/ext.d/archive.sh view xz %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
+
+[zstd]
+Type=\(Zstandard compressed
+Open=/usr/lib/mc/ext.d/archive.sh view zst %var{PAGER:more}
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zst
+
+[zip-by-type]
+Type=\(Zip archive
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
+
+[jar]
+Type=\(Java\ (Jar\ file|archive)\ data\ \((zip|JAR)\)
+TypeIgnoreCase=true
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
+
+[lha]
+Type=^LHa\ .*archive
+Open=%cd %p/ulha://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lha
+
+[pak]
+Type=^PAK\ .*archive
+Open=%cd %p/unar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view pak
+
+# Parity Archive
+[par2]
+Type=^Parity\ Archive\ Volume\ Set
+Open=/usr/lib/mc/ext.d/archive.sh open par2
+
+
+######### Includes #########
+# Includes should be at end of the bindings
+
+[Include/tar.gz]
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.gz
+
+[Include/cpio]
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio
+
+[Include/editor]
+Open=%var{EDITOR:editor} %f
+
+[Include/image]
+Open=/usr/lib/mc/ext.d/image.sh open ALL_FORMATS
+View=%view{ascii} /usr/lib/mc/ext.d/image.sh view ALL_FORMATS
+
+[Include/video]
+Open=/usr/lib/mc/ext.d/video.sh open ALL_FORMATS
+View=%view{ascii} /usr/lib/mc/ext.d/video.sh view ALL_FORMATS
+
+
+######### Default #########
+
+# Default target for anything not described above
+[Default]
+Open=
+View=
+
+### EOF ###