]> git.phdru.name Git - dotfiles.git/blobdiff - .mc/mc.ext
Feat(recode-filenames-recursive): Allow to omit parameters
[dotfiles.git] / .mc / mc.ext
index e2d36e39bc394fe0fd972593b5ee86b1d2cf8692..3284ff7cf03b7e4a36b4dd51aea4b1385307b961 100644 (file)
@@ -1,3 +1,131 @@
+### phd
+# For MC version 3
+
+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
+
+#Type/^PostScript
+#Open=libreoffice %f &
+#View=%view{ascii} ps2ascii %f
+#
+# RTF
+#Regex/i/\.rtf$
+#Open=fbreader %f &
+#View=%view{ascii} catdoc %f
+#
+#Regex/i/\.(doc|wri)$
+#Include=msoffice-doc
+#
+Regex/i/\.docx$
+Edit=libreoffice %f &
+Open=libreoffice %f &
+View=%view{ascii} docx2txt %f - | iconv.py -f utf-8
+
+Type/^Microsoft\ Word\ 2007+
+Include=msoffice-doc
+
+Type/^Microsoft\ Office\ Document
+Include=msoffice-doc
+
+Regex/i/\.xlsx$
+Include=msoffice-xlsx
+
+Type/^Microsoft\ Excel\ 2007+
+Include=msoffice-xlsx
+
+#Type/^Composite\ Document\ File
+#Include=msoffice-doc
+#
+# ftplist
+Regex/\.ftplist$
+Open=%cd %p#ftplist
+
+# Play list
+Regex/i/\.(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
+
+#Regex/i/\.tiff?$
+#Open=xview %f
+#
+Shell/.torrent
+Open=%cd %p/torrent://
+
+Regex/i/\.xml$
+Include=xml
+
+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
+
 # Midnight Commander 3.0 extension file
 # Warning: Structure of this file has changed completely with version 3.0
 #
 #          i.e. matches all the files *desc . Example: .tar matches *.tar;
 #          if it doesn't start with a dot, it matches only a file of that name)
 #
+#    shell/i (desc is, when starting with a dot, any extension (no wildcars),
+#          The same as shell but with case insensitive.
+#
 #    regex (desc is an extended regular expression)
 #          Please note that we are using the GNU regex library and thus
 #          \| matches the literal | and | has special meaning (or) and
 #          () have special meaning and \( \) stand for literal ( ).
 #
+#    regex/i (desc is an extended regular expression)
+#          The same as regex but with case insensitive.
+#
 #    type  (file matches this if `file %f` matches regular expression desc
 #          (the filename: part from `file %f` is removed))
 #
+#    type/i (file matches this if `file %f` matches regular expression desc)
+#          The same as type but with case insensitive.
+#
 #    directory (matches any directory matching regular expression desc)
 #
 #    include (matches an include directive)
 # command is any one-line shell command, with the following substitutions:
 #
 # %% -> % character
-# %p -> name of the current file (without path, but pwd is its path)
+# %p -> name of the current file (without path, but pwd is its path).
+#       Also provided to external application as MC_EXT_BASENAME
+#       global variable
 # %f -> name of the current file. Unlike %p, if file is located on a
 #      non-local virtual filesystem, i.e. either tarfs or ftpfs,
 #      then the file will be temporarily copied into a local directory
 #      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 external application as MC_EXT_FILENAME
+#       global variable
 # %d -> name of the current directory (pwd, without trailing slash)
+#       Also provided to external application as MC_EXT_CURRENTDIR
+#       global variable
 # %s -> "selected files", i.e. space separated list of tagged files if any
-#       or name of the current file
+#       or name of the current file.
+#       Also provided to external application as MC_EXT_SELECTED
+#       global variable
 # %t -> list of tagged files
+#       Also provided to external application as MC_EXT_ONLYTAGGED
+#       global variable
 # %u -> list of tagged files (they'll be untaged after the command)
 #
 # (If these 6 letters are in uppercase, they refer to the other panel.
 
 ### Changes ###
 #
-# Reorganization: 2000-05-01 Michal Svec <rebel@penguin.cz>
-
-
-### TODO ###
-#
-# Postscript   Open: ps2svga [gs -DEVICE=jpeg|zgv or something]
-# Images               asciiview
-#
-# All X Apps   [Nothing/Warning] if no DISPLAY
-# Not found    [Default/Warning]
-# Empty Output [Default/Warning]
-# Edit:                CopyOut+EDIT+CopyIn
-# Security     Check gzip/bzip EDIT (mktemp)
-#
-# Maybe:       Open/XOpen/GOpen/KOpen/... for Console/X/GNOME/KDE/etc.
+# Reorganization: 2012-03-07 Slava Zanko <slavazanko@gmail.com>
 
 
 ### GIT Repo ###
 # gitfs changeset
-regex/^\[git\]
-       Open=%cd %p/changesetfs://
-       View=%cd %p/patchsetfs://
+Regex/^\[git\]
+Open=%cd %p/changesetfs://
+View=%cd %p/patchsetfs://
 
 ### Archives ###
 
-# .tgz, .tpz, .tar.gz, .tar.z, .tar.Z, .ipk
-regex/\.t([gp]?z|ar\.g?[zZ])$|\.ipk|\.gem$
-       Open=%cd %p/utar://
-       View=%view{ascii} gzip -dc %f 2>/dev/null | tar tvvf -
+# .tgz, .tpz, .tar.gz, .tar.z, .tar.Z, .ipk, .gem
+Regex/\.t([gp]?z|ar\.g?[zZ])$|\.ipk$|\.gem$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.gz
 
-regex/\.tar\.bz$
-       # Open=%cd %p/utar://
-       View=%view{ascii} bzip -dc %f 2>/dev/null | tar tvvf -
+Shell/.tar.bz
+# Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip
 
-regex/\.t(ar\.bz2|bz2?|b2)$
-       Open=%cd %p/utar://
-       View=%view{ascii} bzip2 -dc %f 2>/dev/null | tar tvvf -
+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
-regex/\.t(ar\.lzma|lz)$
-       Open=%cd %p/utar://
-       View=%view{ascii} lzma -dc %f 2>/dev/null | tar tvvf -
+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
+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
-regex/\.t(ar\.xz|xz)$
-       Open=%cd %p/utar://
-       View=%view{ascii} xz -dc %f 2>/dev/null | tar tvvf -
+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
+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 in QNX
-regex/\.tar\.F$
-       # Open=%cd %p/utar://
-       View=%view{ascii} freeze -dc %f 2>/dev/null | tar tvvf -
+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
-regex/\.(qp[rk])$
-       Open=%cd %p/utar://
-       View=%view{ascii} gzip -dc %f 2>/dev/null | tar tvvf -
+Regex/\.qp[rk]$
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.qpr
 
 # tar
-regex/\.(tar|TAR)$
-       Open=%cd %p/utar://
-       View=%view{ascii} tar tvvf - < %f
+Shell/i/.tar
+Open=%cd %p/utar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar
 
 # lha
-type/^LHa\ .*archive
-       Open=%cd %p/ulha://
-       View=%view{ascii} lha l %f
+Type/^LHa\ .*archive
+Open=%cd %p/ulha://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lha
 
 # arj
-regex/\.[aA]([rR][jJ]|[0-9][0-9])$
-       Open=%cd %p/uarj://
-       View=%view{ascii} unarj l %f
+Regex/i/\.a(rj|[0-9][0-9])$
+Open=%cd %p/uarj://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arj
 
 # cab
-regex/\.([cC][aA][bB])$
-       Open=%cd %p/ucab://
-       View=%view{ascii} cabextract -l %f
+Shell/i/.cab
+Open=%cd %p/ucab://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cab
 
 # ha
-regex/\.([Hh][Aa])$
-       Open=%cd %p/uha://
-       View=%view{ascii} ha lf %f
+Shell/i/.ha
+Open=%cd %p/uha://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ha
 
 # rar
-regex/\.[rR]([aA][rR]|[0-9][0-9])$
-       Open=%cd %p/urar://
-       View=%view{ascii} unrar v -c- %f
+Regex/i/\.r(ar|[0-9][0-9])$
+Open=%cd %p/urar://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view rar
 
 # ALZip
-regex/\.(alz|ALZ)$
-       Open=%cd %p/ualz://
-       View=%view{ascii} unalz -l %f
+Shell/i/.alz
+Open=%cd %p/ualz://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view alz
 
 # cpio
-shell/.cpio.Z
-       Open=%cd %p/ucpio://
-       View=%view{ascii} gzip -dc %f | cpio -itv 2>/dev/null
+Shell/.cpio.Z
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.z
 
-shell/.cpio.xz
-       Open=%cd %p/ucpio://
-       View=%view{ascii} xz -dc %f | cpio -itv 2>/dev/null
+Shell/.cpio.lz
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz
 
-shell/.cpio.gz
-       Open=%cd %p/ucpio://
-       View=%view{ascii} gzip -dc %f | cpio -itv 2>/dev/null
+Shell/.cpio.lz4
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz4
 
-shell/.cpio
-       Open=%cd %p/ucpio://
-       View=%view{ascii} cpio -itv < %f 2>/dev/null
+Shell/.cpio.xz
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.xz
 
-# ls-lR
-regex/(^|\.)ls-?lR(\.gz|Z|bz2)$
-       Open=%cd %p/lslR://
+Shell/.cpio.zst
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.zst
+
+Shell/.cpio.gz
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.gz
+
+Shell/i/.cpio
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio
+
+# initrd
+Regex/^(initramfs.*\.img|initrd(-.+)?\.img(-.+)?)$
+Open=%cd %p/ucpio://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio
+
+# 7zip archives (they are not man pages)
+Shell/i/.7z
+Open=%cd %p/u7z://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view 7z
 
 # patch
-regex/\.(diff|patch)(\.bz2)$
-       Open=%cd %p/patchfs://
-       View=%view{ascii} bzip2 -dc %f 2>/dev/null
+Regex/\.(diff|patch)(\.bz2)$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
 
-regex/\.(diff|patch)(\.(gz|Z))$
-       Open=%cd %p/patchfs://
-       View=%view{ascii} gzip -dc %f 2>/dev/null
+Regex/\.(diff|patch)(\.(gz|Z))$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
 
-regex/\.(diff|patch)$
-       Open=%cd %p/patchfs://
-       View=%view{ascii} /bin/cat %f 2>/dev/null
+Regex/\.(diff|patch)(\.xz)$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
 
-# ar library
-regex/\.s?a$
-       Open=%cd %p/uar://
-       #Open=%view{ascii} ar tv %f
-       View=%view{ascii} file %f && nm -C %f
+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
-regex/\.trpm$
-       Open=%cd %p/trpm://
-       View=%view{ascii} rpm -qivl --scripts `basename %p .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)
-regex/\.(src\.rpm|spm)$
-       Open=%cd %p/rpm://
-       View=%view{ascii} if rpm --nosignature --version >/dev/null 2>&1; then RPM="rpm --nosignature" ; else RPM="rpm" ; fi ; $RPM -qivlp --scripts %f
+Regex/\.(src\.rpm|spm)$
+Open=%cd %p/rpm://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view src.rpm
 
-regex/\.rpm$
-       Open=%cd %p/rpm://
-       View=%view{ascii} if rpm --nosignature --version >/dev/null 2>&1; then RPM="rpm --nosignature" ; else RPM="rpm" ; fi ; $RPM -qivlp --scripts %f
+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} dpkg-deb -I %f && echo && dpkg-deb -c %f
+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} dpkg -s `echo %p | sed 's/\([0-9a-z.-]*\).*/\1/'`
+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://
-        View=%view{ascii} apt-cache show `echo %p | sed 's/\([0-9a-z.-]*\).*/\1/'`
+Shell/.deba
+Open=%cd %p/deba://
+View=%view{ascii} /usr/lib/mc/ext.d/package.sh view deba
 
 # ISO9660
-regex/\.([iI][sS][oO](\.wv)?)$
-       Open=%cd %p/iso9660://
-       View=%view{ascii} isoinfo -l -i %f
+Shell/i/.iso
+Open=%cd %p/iso9660://
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view iso9660
+
+
+Regex/\.(diff|patch)$
+Open=%cd %p/patchfs://
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view cat
+
+# ar library
+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/i/.lib
+Open=%cd %p/ulib://
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lib
 
-# 7zip archives (they are not man pages)
-regex/\.(7z|7Z)$
-       Open=%cd %p/u7z://
-       View=%view{ascii} 7za l %f 2>/dev/null
 
 # Mailboxes
-type/^ASCII\ mail\ text
-       Open=%cd %p/mailfs://
+Type/^ASCII\ mail\ text
+Open=%cd %p/mailfs://
 
 
 ### Sources ###
 
-# C
-shell/.c
-       Include=editor
+# C/C++
+Regex/i/\.(c|cc|cpp)$
+Include=editor
 
-# Fortran
-shell/.f
-       Include=editor
+# C/C++ header
+Regex/i/\.(h|hh|hpp)$
+Include=editor
 
-# Header
-regex/\.(h|hpp)$
-       Include=editor
-
-# Asm
-shell/.s
-       Include=editor
+# Fortran
+Shell/i/.f
+Include=editor
 
-# C++
-regex/\.(C|cc|cpp)$
-       Include=editor
+# Assembler
+Regex/i/\.(s|asm)$
+Include=editor
 
-include/editor
-       Open=%var{EDITOR:vi} %f
+Include/editor
+Open=%var{EDITOR:editor} %f
 
 # .so libraries
-regex/\.(so|so\.[0-9\.]*)$
-       View=%view{ascii} file %f && nm -C -D %f
+Regex/\.(so|so\.[0-9\.]*)$
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view so
 
 # Object
-type/^ELF
-       #Open=%var{PAGER:more} %f
-       View=%view{ascii} file %f && nm -C %f
+Type/^ELF
+#Open=%var{PAGER:more} %f
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view elf
 
 ### Documentation ###
 
@@ -303,487 +480,479 @@ type/^ELF
 #regex/\.(te?xi|texinfo)$
 
 # GNU Info page
-type/^Info\ text
-       Open=info -f %f
+Type/^Info\ text
+Open=/usr/lib/mc/ext.d/text.sh open info
 
-shell/.info
-       Open=info -f %f
+Shell/.info
+Open=/usr/lib/mc/ext.d/text.sh open info
 
 # Exception: .3gp are video files not manual pages
-regex/\.(3[gG][pP])$
-       Include=video
+Shell/i/.3gp
+Include=video
 
 # Manual page
-regex/(([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])|\.man)$
-       Open=case %d/%f in */log/*|*/logs/*) cat %f ;; *) { zsoelim %f 2>/dev/null || cat %f; } | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
-       View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) cat %f ;; *) { zsoelim %f 2>/dev/null || cat %f; } | nroff -c -Tlatin1 -mandoc ;; esac
+Regex/(([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])|\.man)$
+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}
 
 # Perl pod page
-shell/.pod
-       Open=pod2man %f | nroff -c -Tlatin1 -mandoc | %var{PAGER:more}
-       View=%view{ascii,nroff} pod2man %f | nroff -c -Tlatin1 -mandoc
+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}
 
 # Troff with me macros.
 # Exception - "read.me" is not a nroff file.
-shell/read.me
-       Open=
-       View=
+Shell/read.me
+Open=
+View=
 
-shell/.me
-       Open=nroff -c -Tlatin1 -me %f | %var{PAGER:more}
-       View=%view{ascii,nroff} nroff -c -Tlatin1 -me %f
+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}
 
 # Troff with ms macros.
-shell/.ms
-       Open=nroff -c -Tlatin1 -ms %f | %var{PAGER:more}
-       View=%view{ascii,nroff} nroff -c -Tlatin1 -ms %f
+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 - compressed
-regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.g?[Zz]$
-       Open=case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
-       View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+Regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.g?[Zz]$
+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}
+
+Regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz$
+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}
+
+Regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz2$
+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}
 
-regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz$
-       Open=case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
-       View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+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}
 
-regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz2$
-       Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
-       View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+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}
 
-regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$
-       Open=case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
-       View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+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}
 
-regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.xz$
-       Open=case %d/%f in */log/*|*/logs/*) xz -dc %f ;; *) xz -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
-       View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) xz -dc %f ;; *) xz -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+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}
+
+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}
 
 # CHM
-regex/\.(chm|CHM)$
-       Open=which kchmviewer > /dev/null 2>&1 && (kchmviewer %f &) || (xchm %f &)
+Shell/i/.chm
+Open=/usr/lib/mc/ext.d/text.sh open chm
 
 ### Images ###
 
-type/^GIF
-       Include=image
+Type/^GIF
+Include=image
+
+Type/^JPEG
+View=%view{ascii} /usr/lib/mc/ext.d/image.sh view jpeg
+Include=image
+
+Type/^PC\ bitmap
+Include=image
 
-type/^JPEG
-       View=%view{ascii} identify %f; test -x /usr/bin/exif && echo && exif %f 2>/dev/null
-       Include=image
+Type/^PNG
+Include=image
 
-type/^PC\ bitmap
-       Include=image
+Type/^JNG
+Include=image
 
-type/^PNG
-       Include=image
+Type/^MNG
+Include=image
 
-type/^TIFF
-       Include=image
+Type/^TIFF
+Include=image
 
-type/^PBM
-       Include=image
+Type/^PBM
+Include=image
 
-type/^PGM
-       Include=image
+Type/^PGM
+Include=image
 
-type/^PPM
-       Include=image
+Type/^PPM
+Include=image
 
-type/^Netpbm
-       Include=image
+Type/^Netpbm
+Include=image
 
-shell/.xcf
-       Open=(gimp %f &)
+Shell/.xcf
+Open=/usr/lib/mc/ext.d/image.sh open xcf
 
-shell/.xbm
-       Open=bitmap %f
+Shell/.xbm
+Open=/usr/lib/mc/ext.d/image.sh open xbm
 
-shell/.xpm
-       Include=image
-       View=sxpm %f
+Shell/.xpm
+Include=image
+View=/usr/lib/mc/ext.d/image.sh view xpm %f
 
-shell/.ico
-       Include=image
+Shell/.ico
+Include=image
 
-include/oldimage
-       Open=(see %f &)
-       View=%view{ascii} identify %f
-       #View=%view{ascii} asciiview %f
+Shell/i/.svg
+View=%view{ascii} /usr/lib/mc/ext.d/image.sh view svg
+Open=/usr/lib/mc/ext.d/image.sh open svg
+
+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
 
 
 ### Sound files ###
 
-#regex/\.([wW][aA][vV]|[sS][nN][dD]|[vV][oO][cC]|[aA][uU]|[sS][mM][pP]|[aA][iI][fF][fF]|[sS][nN][dD])$
-#       Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
-#
-#regex/\.([mM][oO][dD]|[sS]3[mM]|[xX][mM]|[iI][tT]|[mM][tT][mM]|669|[sS][tT][mM]|[uU][lL][tT]|[fF][aA][rR])$
-#       Open=mikmod %f
-#       #Open=tracker %f
-#
-#regex/\.([wW][aA][wW]22)$
-#       Open=vplay -s 22 %f
-#
-#regex/\.([mM][pP]3)$
-#      Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
-#      View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
-#
-#regex/\.([oO][gG][gG|aA|vV|xX])$
-#      Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
-#      View=%view{ascii} ogginfo %s
-#
-#regex/\.([sS][pP][xX]|[fF][lL][aA][cC])$
-#      Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
-#
-#regex/\.([mM][iI][dD][iI]?|[rR][mM][iI][dD]?)$
-#      Open=timidity %f
-#
-#regex/\.([wW][mM][aA])$
-#      Open=mplayer -vo null %f
-#      View=%view{ascii} mplayer -quiet -slave -frames 0 -vo null -ao null -identify %f 2>/dev/null | tail +13 || file %f
-#
-#
-#### Play lists ###
-#
-#regex/\.([mM]3[uU]|[pP][lL][sS])$
-#      Open=if [ -z "$DISPLAY" ]; then mplayer -vo null -playlist %f; else (xmms -p %f >/dev/null 2>&1 &); fi
+Regex/i/\.(wav|snd|voc|au|smp|aiff|snd|m4a|ape|aac|wv)$
+Open=/usr/lib/mc/ext.d/sound.sh open common
+
+Regex/i/\.(mod|s3m|xm|it|mtm|669|stm|ult|far)$
+Open=/usr/lib/mc/ext.d/sound.sh open mod
+
+Shell/i/.waw22
+Open=/usr/lib/mc/ext.d/sound.sh open wav22
+
+Shell/i/.mp3
+Open=/usr/lib/mc/ext.d/sound.sh open mp3
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view mp3
+
+Regex/i/\.og[gax]$
+Open=/usr/lib/mc/ext.d/sound.sh open ogg
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view ogg
+
+Regex/i/\.(spx|flac)$
+Open=/usr/lib/mc/ext.d/sound.sh open common
+
+Regex/i/\.(midi?|rmid?)$
+Open=/usr/lib/mc/ext.d/sound.sh open midi
+
+Shell/i/.wma
+Open=/usr/lib/mc/ext.d/sound.sh open wma
+View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view wma
+
+
+### Play lists ###
+
+Regex/i/\.(m3u8?|pls)$
+Open=/usr/lib/mc/ext.d/sound.sh open playlist
 
 
 ### Video ###
 
-regex/\.([aA][vV][iI])$
-       Include=video
+Shell/i/.avi
+Include=video
 
-regex/\.([aA][sS][fFxX])$
-       Include=video
+Regex/i/\.as[fx]$
+Include=video
 
-regex/\.([dD][iI][vV][xX])$
-       Include=video
+Shell/i/.divx
+Include=video
 
-regex/\.([mM][kK][vV])$
-       Include=video
+Shell/i/.mkv
+Include=video
 
-regex/\.([mM][oO][vV]|[qQ][tT])$
-       Include=video
+Regex/i/\.(mov|qt)$
+Include=video
 
-regex/\.([mM][pP]4|[mM]4[vV]|[mM][pP][eE]?[gG])$
-       Include=video
+Regex/i/\.(mp4|m4v|mpe?g)$
+Include=video
 
 # MPEG-2 TS container + H.264 codec
-regex/\.([mM][tT][sS])$
-       Include=video
+Shell/i/.mts
+Include=video
+
+Shell/i/.ts
+Include=video
 
-regex/\.([tT][sS])$
-       Include=video
+Shell/i/.vob
+Include=video
 
-regex/\.([vV][oO][bB])$
-       Include=video
+Shell/i/.wmv
+Include=video
 
-regex/\.([wW][mM][vV])$
-       Include=video
+Regex/i/\.fl[icv]$
+Include=video
 
-regex/\.([fF][lL][iIcCvV])$
-       Include=video
+Shell/i/.ogv
+Include=video
 
-regex/\.([oO][gG][mM])$
-       Include=video
+Regex/i/\.ra?m$
+Open=/usr/lib/mc/ext.d/video.sh open ram
 
-regex/\.([rR][aA]?[mM])$
-       Open=(realplay %f >/dev/null 2>&1 &)
+# WebM
+Shell/i/.webm
+Include=video
 
-include/oldvideo
-       Open=(mplayer %f >/dev/null 2>&1 &)
-       #Open=(gtv %f >/dev/null 2>&1 &)
-       #Open=(xanim %f >/dev/null 2>&1 &)
+Type/WebM
+Include=video
+
+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
 
 
 ### Documents ###
 
 # Postscript
-type/^PostScript
-       Open=(gv %f &)
-       View=%view{ascii} ps2ascii %f
+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=(see %f &)
-       #Open=(acroread %f &)
-       #Open=(ghostview %f &)
-       View=%view{ascii} pdftotext %f -
-
-# The following code very ugly and should not be taken as example.
-# It should be cleaned up when the new format of mc.ext is developed.
+Type/^PDF
+Open=/usr/lib/mc/ext.d/doc.sh open pdf
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view pdf
 
 # html
-regex/\.([hH][tT][mM][lL]?)$
-       Open=(if test -n "" && test -n "$DISPLAY"; then ( file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
-       View=%view{ascii} links -dump %f 2>/dev/null || w3m -dump %f 2>/dev/null || lynx -dump -force_html %f
+Regex/i/\.html?$
+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
-       Open=(libreoffice %f &)
+Shell/.sdw
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
 
 # StarOffice 6 and OpenOffice.org formats
-regex/\.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
-       Edit=(libreoffice %f &)
-       Open=(libreoffice %f &)
-       View=%view{ascii} odt2txt %f
+Regex/i/\.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
+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
-       Open=(abiword %f &)
+Shell/.abw
+Open=/usr/lib/mc/ext.d/doc.sh open abw
+
+# Gnumeric
+Shell/i/.gnumeric
+Open=/usr/lib/mc/ext.d/doc.sh open gnumeric
 
 # Microsoft Word Document
-#regex/\.([Dd][oO][cCtT]|[Ww][rR][iI])$
-#      Open=(abiword %f >/dev/null 2>&1 &)
-#      View=%view{ascii} antiword -t %f || catdoc -w %f || word2x -f text %f - || strings %f
-#type/^Microsoft\ Word
-#      Open=(abiword %f >/dev/null 2>&1 &)
-#      View=%view{ascii} antiword -t %f || catdoc -w %f || word2x -f text %f - || strings %f
-#
-## RTF document
-#regex/\.([rR][tT][fF])$
-#      Open=(abiword %f >/dev/null 2>&1 &)
+Regex/i/\.(do[ct]|wri|docx)$
+Open=/usr/lib/mc/ext.d/doc.sh open msdoc
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
+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
-regex/\.([xX][lL][sSwW])$
-       Open=(gnumeric %f >/dev/null 2>&1 &)
-       View=%view{ascii} xls2csv %f || strings %f
-type/^Microsoft\ Excel
-       Open=(gnumeric %f >/dev/null 2>&1 &)
-       View=%view{ascii} xls2csv %f || strings %f
+# RTF document
+Shell/i/.rtf
+Open=/usr/lib/mc/ext.d/doc.sh open msdoc
 
-# Use OpenOffice.org to open any MS Office documents
-#type/^Microsoft\ Office\ Document
-#      Open=(libreoffice %f &)
+# Microsoft Excel Worksheet
+Regex/i/\.(xl[sw]|xlsx)$
+Open=/usr/lib/mc/ext.d/doc.sh open msxls
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
+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
+
+# Microsoft PowerPoint Presentation
+Regex/i/\.(pp[ts]|pptx)$
+Open=/usr/lib/mc/ext.d/doc.sh open msppt
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msppt
+
+# Use OpenOffice.org/LibreOffice to open any MS Office documents
+Type/^Microsoft\ Office\ Document
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
+Type/^Microsoft\ OOXML
+Open=/usr/lib/mc/ext.d/doc.sh open ooffice
 
 # Framemaker
-type/^FrameMaker
-       Open=fmclient -f %f
+Type/^FrameMaker
+Open=/usr/lib/mc/ext.d/doc.sh open framemaker
 
 # DVI
-regex/\.([dD][vV][iI])$
-       Open=run-mailcap %f 2>&1 &
-       View=%view{ascii} catdvi %f
+Shell/i/.dvi
+Open=/usr/lib/mc/ext.d/doc.sh open dvi
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view dvi
 
 # TeX
-regex/\.([Tt][Ee][Xx])$
-       Include=editor
+Shell/i/.tex
+Include=editor
 
 # DjVu
-regex/\.(djvu?|DJVU?)$
-       Open=djview %f &
-       View=%view{ascii} djvused -e print-pure-txt %f
+Regex/i/\.djvu?$
+Open=/usr/lib/mc/ext.d/doc.sh open djvu
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view djvu
+
+# Comic Books
+Regex/i/\.cb[zr]$
+Open=/usr/lib/mc/ext.d/doc.sh open comic
+
+# Epub & mobi
+Regex/i/\.(epub|mobi)$
+Open=/usr/lib/mc/ext.d/doc.sh open epub
+View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view epub
+
 
 ### Miscellaneous ###
 
+# Compiled Java classes
+Shell/.class
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view javaclass
+
 # Makefile
-regex/[Mm]akefile$
-       Open=make -f %f %{Enter parameters}
+Regex/^[Mm]akefile$
+Open=make -f %f %{Enter parameters}
 
 # Imakefile
-shell/Imakefile
-       Open=xmkmf -a
+Shell/Imakefile
+Open=xmkmf -a
 
 # Makefile.PL (MakeMaker)
-regex/^Makefile.(PL|pl)$
-       Open=%var{PERL:perl} %f
+Regex/^Makefile\.(PL|pl)$
+Open=%var{PERL:perl} %f
+
+# 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
 
 # dbf
-regex/\.([dD][bB][fF])$
-       Open=%view{ascii} dbview %f
-       View=%view{ascii} dbview -b %f
+Shell/i/.dbf
+Open=/usr/lib/mc/ext.d/misc.sh open dbf
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view dbf
 
 # REXX script
-regex/\.(rexx?|cmd)$
-       Open=rexx %f %{Enter parameters};echo "Press ENTER";read y
+Regex/\.(rexx?|cmd)$
+Open=rexx %f %{Enter parameters};echo "Press ENTER";read y
 
 # Disk images for Commodore computers (VIC20, C64, C128)
-regex/\.(d64|D64)$
-       Open=%cd %p/uc1541://
-       View=%view{ascii} c1541 %f -list
-       Extract=c1541 %f -extract
+Shell/i/.d64
+Open=%cd %p/uc1541://
+View=%view{ascii} c1541 %f -list
+Extract=c1541 %f -extract
 
 # Glade, a user interface designer for GTK+ and GNOME
-regex/\.([Gg][Ll][Aa][Dd][Ee])$
-       Open=if glade-3 --version >/dev/null 2>&1; then (glade-3 %f >/dev/null 2>&1 &); else (glade-2 %f >/dev/null 2>&1 &); fi
+Shell/i/.glade
+Open=/usr/lib/mc/ext.d/misc.sh open glade
 
 # Gettext Catalogs
-shell/.mo
-       View=%view{ascii} msgunfmt %f || cat %f
+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
-regex/\.(lyx|LYX)$
-       Open=lyx %f
-       View=%view{ascii} lyxcat %f
+Shell/i/.lyx
+Open=/usr/lib/mc/ext.d/misc.sh open lyx
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lyx
 
 # torrent
-#regex/\.([tT][oO][rR][rR][eE][nN][tT])$
-#      View=%view{ascii} ctorrent -x %f 2>/dev/null
+Shell/i/.torrent
+View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view torrent
 
 ### Plain compressed files ###
 
 # ace
-regex/\.(ace|ACE)$
-       Open=%cd %p/uace://
-       View=%view{ascii} unace l %f
-       Extract=unace x %f
+Shell/i/.ace
+Open=%cd %p/uace://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ace
+Extract=unace x %f
 
 # arc
-regex/\.(arc|ARC)$
-       Open=%cd %p/uarc://
-       View=%view{ascii} arc l %f
-       Extract=arc x %f '*'
-       Extract (with flags)=I=%{Enter any Arc flags:}; if test -n "$I"; then arc x $I %f; fi
+Shell/i/.arc
+Open=%cd %p/uarc://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arc
+Extract=arc x %f '*'
+Extract (with flags)=I=%{Enter any Arc flags:}; if test -n "$I"; then arc x $I %f; fi
+
+# zip
+Shell/i/.zip
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
 
 # zip
-type/^([Zz][Ii][Pp])\ archive
-       Open=%cd %p/uzip://
-       View=%view{ascii} unzip -v %f
+Type/i/^zip\ archive
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
+
+# jar(zip)
+Type/i/^Java\ (Jar\ file|archive)\ data\ \((zip|JAR)\)
+Open=%cd %p/uzip://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
 
 # zoo
-regex/\.([Zz][Oo][Oo])$
-       Open=%cd %p/uzoo://
-       View=%view{ascii} zoo l %f
+Shell/i/.zoo
+Open=%cd %p/uzoo://
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zoo
 
 # gzip
-type/^gzip
-       Open=gzip -dc %f | %var{PAGER:more}
-       View=%view{ascii} gzip -dc %f 2>/dev/null
+Type/^gzip
+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
 
-regex/\.(gz|Z)$
-       View=%view{ascii} gzip -dc %f 2>/dev/null
+Regex/\.(gz|Z)$
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
 
 # bzip2
-type/^bzip2
-       Open=bzip2 -dc %f | %var{PAGER:more}
-       View=%view{ascii} bzip2 -dc %f 2>/dev/null
+Type/^bzip2
+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
 
-regex/\.bz2?$
-       View=%view{ascii} bzip2 -dc %f 2>/dev/null
+Regex/\.bz2?$
+View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
 
 # bzip
-type/^bzip
-       Open=bzip -dc %f | %var{PAGER:more}
-       View=%view{ascii} bzip -dc %f 2>/dev/null
+Type/^bzip
+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
 
 # compress
-type/^compress
-       Open=gzip -dc %f | %var{PAGER:more}
-       View=%view{ascii} gzip -dc %f 2>/dev/null
-
-# lzma
-regex/\.lzma$
-       Open=lzma -dc %f | %var{PAGER:more}
-       View=%view{ascii} lzma -dc %f 2>/dev/null
-
-# xz
-regex/\.xz$
-       Open=xz -dc %f | %var{PAGER:more}
-       View=%view{ascii} xz -dc %f 2>/dev/null
-
-### phd
-
-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 &
-   Open=evince %f &
-
-# EPUB
-shell/.epub
-   Open=fbreader %f &
-
-# FB2
-shell/.fb2
-   Open=fbreader %f &
-   View=%view{ascii} xsltproc /usr/local/src/FictionBook/FB2_2_txt_ru.xsl %f
+Type/^compress
+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
 
-# RTF
-regex/\.([rR][tT][fF])$
-   Open=fbreader %f &
-   View=%view{ascii} catdoc %f
-
-regex/\.([Dd][oO][cCtT]|[Ww][rR][iI])$
-   Include=msoffice
-
-type/^Microsoft\ Word
-   Include=msoffice
-
-type/^Microsoft\ Office\ Document
-   Include=msoffice
-
-type/^Composite\ Document\ File
-   Include=msoffice
-
-# ftplist
-regex/\.ftplist$
-   Open=%cd %p#ftplist
-
-# Play list
-regex/\.([mM]3[uU]|[pP][lL][sS])$
-   Include=audio
+# lz
+Regex/\.lz$
+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
 
-# 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}
-   Compile=compyle %s
-   Icon=snake.xpm
-
-regex/\.(tif|TIF|tiff|TIFF)$
-   Open=xview %f
+# lz
+Type/^LZIP
+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
 
-shell/.torrent
-   Open=%cd %p/torrent://
+# lz4
+Regex/\.lz4$
+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
 
-regex/\.([xX][mM][lL])$
-   Include=xml
-
-type/^XML *(1\.0 *)?document text
-   Include=xml
-
-include/audio
-   #Open=[ "`audtool --get-volume`" -eq 0 ] && (audacious & sleep 3); audtool --playlist-clear --playlist-addurl %f --playback-play
-   #Open=smplayer %f &
-   Open=deadbeef %f &
-   #Open=mediaplayer_open %f
-   View=%view{ascii} %f
+# lzma
+Regex/\.lzma$
+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
 
-include/msoffice
-   Edit=libreoffice %f &
-   Open=libreoffice %f &
-   View=%view{ascii} catdoc %f
+# xz
+Regex/\.xz$
+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
 
-include/video
-   Open=smplayer %f &
-   #Open=mediaplayer_open %f
-   View=%view{ascii} %f
+# zstd
+Regex/\.zst$
+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
 
-include/xml
-   Open=%cd %p/xml://
+# Parity Archive
+Type/^Parity\ Archive\ Volume\ Set
+Open=/usr/lib/mc/ext.d/archive.sh open par2
 
 ### Default ###
 
 # Default target for anything not described above
-default/*
-       Open=
-       View=
+Default/*
+Open=
+View=
 
 
 ### EOF ###