shell_patterns=0 # This is necessary to overcome a bug in mc - without this # mc makes default wrong item : NOOP : @ Do something on all of the file(s) at once CMD=%{Enter command} exec $CMD %s + t t @ Do something on the tagged files one by one CMD=%{Enter command} for f in %t; do $CMD "$f" done + t r p View the file in the pager exec ${PAGER:-more} %f + t r b View the file in a browser exec webbrowser file://%d/%f + t r w View the file in a new browser window exec webbrowser -n file://%d/%f + t r = f \.(htm(l?)|txt)$ t View the file in a new browser tab exec webbrowser -t file://%d/%f += f \.fb2(\.bz2|\.gz|\.zip)?$ | f \.(chm|epub|htm(l?)|txt|rtf)$ & t r f FBReader fbreader %f & + t r & f \.fb2(\.bz2|\.gz|\.zip)$ H fb2html case %f in *.fb2.bz2) A="bunzip2 -c" ;; *.fb2.gz) A="gunzip -c" ;; *.fb2.zip) A="unzip -p" ;; *.fb2) A="cat" ;; esac $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_html_ru.xsl - | webstdin -t + t r & f \.fb2(\.bz2|\.gz|\.zip)$ T fb2txt case %f in *.fb2.bz2) A="bunzip2 -c" ;; *.fb2.gz) A="gunzip -c" ;; *.fb2.zip) A="unzip -p" ;; *.fb2) A="cat" ;; esac $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_txt_ru.xsl - | webstdin -e txt -t += t r & f \.(pdf|PDF|djvu)(\.bz2|\.gz)?$ e evince evince %f & += t r & f \.(doc|DOC|rtf)$ d catdoc catdoc %f | ${PAGER:-more} += t r & f \.(docx|DOCX)$ d docx2txt docx2txt %f - | ${PAGER:-more} += t r & f \.(xls|XLS)$ x xls2csv xls2csv %f | ${PAGER:-more} + t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|xpm)$ | t t = t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|xpm)$ i View image(s) scaled xli -title "`echo %s | sed 's/ /_/g'`" -zoom auto %s & + t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|xpm)$ | t t I View image(s) full size xli -title "`echo %s | sed 's/ /_/g'`" %s & + t r & f \.(ico|jp2|tif|TIF|tiff|TIFF)$ | t t = t r & f \.(ico|jp2|tif|TIF|tiff|TIFF)$ I View icon, JPEG-2000 or TIFF image display %s & + t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t a Add the audiofile(s) or playlist(s) #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #for f in %s; do # audtool --playlist-addurl "$f" #done #smplayer -add-to-playlist %s & deadbeef --queue %s & + t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t = t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ p Load the audiofile(s) or playlist(s) #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #audtool --playlist-clear #for f in %s; do # audtool --playlist-addurl "$f" #done #smplayer -send-action pl_remove_all #smplayer -add-to-playlist %s & deadbeef --queue %s & + t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t P Play the audiofile(s) or playlist(s) #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #audtool --playlist-clear #for f in %s; do # audtool --playlist-addurl "$f" #done #exec audtool --playback-play #mplayer -playlist %f & #smplayer %s & deadbeef %s & #exec mediaplayer_open %f + t r & f \.m3u R Play the playlist in random order "$HOME"/admin/prog/audio-cdr-video/audio/shuffle-playlist.py %f random-playlist-tmp.m3u #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #audtool --playlist-clear #audtool --playlist-addurl random-playlist-tmp.m3u #audtool --playback-play #mplayer -playlist random-playlist-tmp.m3u & #smplayer random-playlist-tmp.m3u & #smplayer -actions pl_shuffle %f & deadbeef --queue random-playlist-tmp.m3u & deadbeef --play #mediaplayer_open random-playlist-tmp.m3u (sleep 5; exec rm random-playlist-tmp.m3u) & + f \.(aac|ac3|ape|cue|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t d | t t = t r & f \.(aac|ac3|ape|cue|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ s Play audio/video file(s) or directory with smplayer smplayer %s & += t d & f (video_ts|VIDEO_TS)$ c Play the current directory with smplayer smplayer . & + t r & f \.(m3u|mp3|MP3|cue|aac|ac3|ape|flac|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t i Audio/video info exec mplayer -msglevel identify=6 -frames 0 %s + t d & f (video_ts|VIDEO_TS)$ i DVD info exec mplayer -dvd-device . dvd:// -msglevel identify=6 -frames 0 + f \.(avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t m Play video file(s) with mplayer mplayer %s & + f \.(m3u|mp3|MP3|cue|aac|ac3|ape|flac|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t M Play audio/video with gmplayer gmplayer %s & + t d & f (video_ts|VIDEO_TS)$ d Play DVD directory with mplayer mplayer -dvd-device . dvd:// & + t d & f (video_ts|VIDEO_TS)$ D Play DVD directory with gmplayer gmplayer -dvd-device . dvd:// & + t d & f (video_ts|VIDEO_TS)$ t Play DVD title with mplayer title=%{Enter title} mplayer -dvd-device . dvd://"$title" & + t d & f (video_ts|VIDEO_TS)$ T Play DVD title with gmplayer title=%{Enter title} gmplayer -dvd-device . dvd://"$title" & + t d p Play directory with mplayer mplayer %f/* & + t d P Play directory with gmplayer gmplayer %f/* & + t d & f ^\.\.$ b Make a .tar.bz2 release of the current directory Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read tar if [ "$tar"x = x ]; then tar="$Pwd"; fi cd .. && tar cvf - "$Pwd" | bzip2 -f9 > "$tar".tar.bz2 echo ../"$tar".tar.bz2 created. + t d & f ^\.\.$ g Make a .tar.gz release of the current directory Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read tar if [ "$tar"x = x ]; then tar="$Pwd"; fi cd .. && tar cvf - "$Pwd" | gzip -f9 > "$tar".tar.gz echo ../"$tar".tar.gz created. + t d & f ^\.\.$ t Make a .tar release of the current directory Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read tar if [ "$tar"x = x ]; then tar="$Pwd"; fi cd .. && tar cvf - "$Pwd" > "$tar".tar echo ../"$tar".tar created. + t d & f ^\.\.$ z Make a .zip release of the current directory Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read zip if [ "$zip"x = x ]; then zip="$Pwd"; fi cd .. && zip -r9 "$zip".zip "$Pwd" echo ../"$zip".zip created. + t d & f ^\.\.$ y Make a .zip release of the current directory with recoded filenames Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read zip if [ "$zip"x = x ]; then zip="$Pwd"; fi cd .. && zip.py "$zip".zip "$Pwd" echo ../"$zip".zip created. + ! f \.(\.|zip|ZIP)$ z zip the file/directory exec zip -r9 %f.zip %f + ! f \.(\.|zip|ZIP)$ y zip the file/directory with recoded filename(s) exec zip.py %f.zip %f + t t Z zip these files/directories ZIP=%{Enter zip name} exec zip -r9 "$ZIP" %s + t t Y zip these files/directories with recoded filenames ZIP=%{Enter zip name} exec zip.py "$ZIP" %s + t r & f \.tar\.bz2$ u Extract from tar-bzip2 exec bzip2 -cd %f | tar xpvf - + f \.tar\.gz$ | f \.tgz$ & t r u Extract from tar-gzip exec gzip -cd %f | tar xpvf - + t r & f \.tar$ u Extract from tar exec tar xpvf %f + t r & f \.(zip|ZIP)$ u Extract from zip exec unzip %f + t r & f \.(zip|ZIP)$ y Extract from zip with recoded filenames exec unzip.py %f + t r & f \.7z$ u Extract from 7zip exec 7zr x %f + t r & f \.(rar|RAR)$ u Extract from rar exec unrar x -y %f + t r & f \.tar\.xz$ u Extract from tar-xz exec xz -cd %f | tar xpvf - + T r & F \.tar\.bz2$ U Extract from the other tar-bzip2 exec bzip2 -cd %D/%F | tar xpvf - + F \.tar\.gz$ | F \.tgz$ & T r U Extract from the other tar-gzip exec gzip -cd %D/%F | tar xpvf - + T r & F \.tar$ U Extract from the other tar exec tar xpvf %D/%F + T r & F \.(zip|ZIP)$ U Extract from the other zip exec unzip %D/%F + T r & F \.(zip|ZIP)$ Y Extract from the other zip with recoded filenames exec unzip.py %D/%F + T r & F \.(rar|RAR)$ U Extract from the other rar exec unrar x -y %D/%F + T r & F \.7z$ U Extract from 7zip exec 7zr x %D/%F + T r & F \.tar\.xz$ U Extract from tar-xz exec xz -cd %D/%F | tar xpvf - + f \.tar\.bz2$ | f \.tar\.gz$ | f \.tgz$ | f \.(zip|ZIP)$ | f \.(rar|RAR)$ | f \.7z$ & t r n Create a directory for this archive case %f in *.tar.bz2) D="`basename %f .tar.bz2`";; *.tar.gz) D="`basename %f .tar.gz`";; *.tgz) D="`basename %f .tgz`";; *.zip) D="`basename %f .zip`";; *.ZIP) D="`basename %f .ZIP`";; *.rar) D="`basename %f .rar`";; *.RAR) D="`basename %f .RAR`";; *.7z) D="`basename %f .7z`";; esac exec mkdir "$D" + F \.tar\.bz2$ | F \.tar\.gz$ | F \.tgz$ | F \.(zip|ZIP)$ | F \.(rar|RAR)$ | F \.7z$ & T r N Create a directory for this archive case %F in *.tar.bz2) D="`basename %F .tar.bz2`";; *.tar.gz) D="`basename %F .tar.gz`";; *.tgz) D="`basename %F .tgz`";; *.zip) D="`basename %F .zip`";; *.ZIP) D="`basename %F .ZIP`";; *.rar) D="`basename %F .rar`";; *.RAR) D="`basename %F .RAR`";; *.7z) D="`basename %F .7z`";; esac exec mkdir "$D" + t r v View via mailcap exec see %f + t r c Compare the file exec cmp %D/%f %f + t r & T r C Compare these files exec cmp %D/%F %f + t r d Diff the file exec diff -u --speed-large-files %D/%f %f + t r & T r D Diff these files exec diff -u --speed-large-files %D/%F %f + t r v vimdiff the file exec vim -d %D/%f %f + t r & T r V vimdiff these files exec vim -d %D/%F %f + t d & ! f ^\.\.$ d Diff the directory exec diff -ru --speed-large-files %D/%f %f + t d & T d & ! F ^\.\.$ D Diff these directories exec diff -ru --speed-large-files %D/%F %f += f \.(asc|sig(n)?)$ & t r v Verify signature exec gpg --verify %f += f \.[1-8]$ | f \.man$ & t r 1 Display the file with roff -man %view nroff -man %f m View a manual page MAN=%{Enter manual name} %view man -P cat $MAN + t r | t d | t t r rsync the file(s) there rsync -ahP --del %s %D