X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=.mc%2Fmenu;h=c2198c8978457c3e3ae2b81f25ad519b2ef36151;hp=b873fc966dc7c488736bfee2d3f9f609285ef906;hb=HEAD;hpb=82111933fd71a71766d5331a436b61544b638115 diff --git a/.mc/menu b/.mc/menu index b873fc9..c2198c8 100644 --- a/.mc/menu +++ b/.mc/menu @@ -10,34 +10,42 @@ shell_patterns=0 exec $CMD %s + t t -@ Do something on the tagged files one by one +@ Do something on the selected files one by one CMD=%{Enter command} - for f in %t; do + for f in %s; do $CMD "$f" done -+ t r ++ t lr p View the file in a pager exec ${PAGER:-more} %f -+ t r ++ t lr +g Edit the file in gvim + gvim %f & + ++ t lr b View the file in a browser - exec webbrowser file://%d/%f + exec webbrowser-encode-url -e utf-8 file://%d/%f -+ t r ++ t lr += f \.(htm(l?)|txt)$ w View the file in a new browser window - exec webbrowser -n file://%d/%f + exec webbrowser-encode-url -e utf-8 -n file://%d/%f -+ t r -= f \.(htm(l?)|txt)$ ++ t lr t View the file in a new browser tab - exec webbrowser -t file://%d/%f + exec webbrowser-encode-url -e utf-8 -t file://%d/%f -+= f \.fb2(\.bz2|\.gz|\.zip)?$ | f \.(chm|epub|htm(l?)|txt|rtf)$ & t r ++ t lr +p View the file in a new private browser tab + exec webbrowser -p file://%d/%f + ++= f \.fb2(\.bz2|\.gz|\.zip)?$ | f \.(chm|epub|htm(l?)|txt|rtf)$ & t lr f View fb2/chm/epub with fbreader fbreader %f & -+ t r & f \.fb2(\.bz2|\.gz|\.zip)$ ++ t lr & f \.fb2(\.bz2|\.gz|\.zip)$ H fb2html case %f in *.fb2.bz2) A="bunzip2 -c" ;; @@ -47,7 +55,7 @@ H fb2html esac $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_html_ru.xsl - | webstdin -t -+ t r & f \.fb2(\.bz2|\.gz|\.zip)$ ++ t lr & f \.fb2(\.bz2|\.gz|\.zip)$ T fb2txt case %f in *.fb2.bz2) A="bunzip2 -c" ;; @@ -57,149 +65,199 @@ T fb2txt esac $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_txt_ru.xsl - | webstdin -e txt -t -+= t r & f \.(pdf|PDF|ps|PS|djvu)(\.bz2|\.gz)?$ -e View pdf/ps/djvu - qpdfview %f & ++ t lr & f \.(pdf|PDF)$ +v View pdf + pdftotext -layout -q %f - | iconv.py -f utf-8 | ${PAGER:-more} -+= t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$ -o View OpenDoc with odt2txt - odt2txt %f | ${PAGER:-more} ++ t lr & f \.(pdf|PDF)$ +e View pdf with evince + evince %f & + ++= t lr & f \.(pdf|PDF)$ +e View pdf with qpdfview + if [ %d/%f = "`echo %d/%f | iconv -t utf-8`" ]; then qpdfview %f & else src=%d/%f; dest="$HOME/tmp/`echo $src | iconv -t koi8-r | koi2lat | sed 's!/!%!g'`"; ln -s "$src" "$dest" && qpdfview "$dest" & (sleep 3; exec rm -f "$dest") & fi -+ t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$ -e Edit OpenDoc with libreoffice ++= t lr & f \.djvu(\.bz2|\.gz)?$ +e View djvu + djview %f & + ++ t lr & f \.((pdf|PDF|ps|PS)(\.bz2|\.gz)?|odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg|doc|DOC|rtf|docx|DOCX|xls|XLS|xlsx|XLSX)$ +e Edit (Open)Docs with libreoffice libreoffice %f & -+= t r & f \.(doc|DOC|rtf)$ ++ t lr & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg|doc|DOC|rtf|docx|DOCX|xls|XLS|xlsx|XLSX)$ +v View (Open)Docs with libreoffice + #libreoffice --headless --convert-to "txt:Text (encoded):UTF8" %f + libreoffice --cat %f | ${PAGER:-more} + ++= t lr & f \.(doc|DOC|rtf)$ d View doc with catdoc catdoc %f | ${PAGER:-more} -+ t r & f \.(doc|DOC|rtf)$ -e Edit doc with libreoffice - libreoffice %f & ++= t lr & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$ +o View OpenDoc with odt2txt + odt2txt %f | ${PAGER:-more} -+= t r & f \.(docx|DOCX)$ ++= t lr & f \.(docx|DOCX)$ d View docx with docx2txt docx2txt %f - | iconv.py -f utf-8 | ${PAGER:-more} -+ t r & f \.(docx|DOCX)$ -e Edit docx with libreoffice - libreoffice %f & ++= t lr & f \.(xls|XLS|xlsx|XLSX)$ +o View OpenXlsx with xlsx2csv + xlsx2csv %f | iconv.py -f utf-8 | ${PAGER:-more} -+= t r & f \.(xls|XLS)$ ++= t lr & f \.(xls|XLS)$ x View xls with xls2csv xls2csv %f | ${PAGER:-more} -+ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t -= t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ ++ t lr & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm|ico|jp2|tif|TIF|tiff|TIFF|webp)$ | t t +e Edit image(s) + gimp %s & + ++ t lr & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t += t lr & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ i View image(s) scaled - xli -title "`echo %s | sed 's/ /_/g'`" -zoom auto %s & + xli -title "`echo %s | sed 's/[ .]/_/g'`" -zoom auto %s & -+ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t ++ t lr & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t I View image(s) full size - xli -title "`echo %s | sed 's/ /_/g'`" %s & + 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 ++ t lr & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ +I Identify image + xli -identify %f + ++ t lr & f \.(ico|jp2|tif|TIF|tiff|TIFF|webp)$ | t t += t lr & f \.(ico|jp2|tif|TIF|tiff|TIFF|webp)$ +I View icon, JPEG-2000, TIFF, WebP image display %s & -+ t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t ++ t lr & f \.(ico|jp2|tif|TIF|tiff|TIFF|webp)$ +I Identify image + identify %f + ++ t lr & f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 + #if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi #for f in %s; do - # audtool --playlist-addurl "$f" + # case "$f" in + # *.m3u8?) while read song; do + # audtool --playlist-addurl "$song" + # done < "$f" ;; + # *) audtool --playlist-addurl "$f" ;; + # esac #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)$ ++ t lr & f \.(aac|ac3|ape|cue|dts|flac|m3u8?|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t += t lr & f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 + #if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi #audtool --playlist-clear #for f in %s; do - # audtool --playlist-addurl "$f" + # case "$f" in + # *.m3u8?) while read song; do + # audtool --playlist-addurl "$song" + # done < "$f" ;; + # *) audtool --playlist-addurl "$f" ;; + # esac #done - #smplayer -send-action pl_remove_all - #smplayer -add-to-playlist %s & - deadbeef --queue %s & + deadbeef %s & (sleep 1; exec deadbeef --stop) -+ t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t ++ t lr & f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 + #if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi #audtool --playlist-clear #for f in %s; do - # audtool --playlist-addurl "$f" + # case "$f" in + # *.m3u8?) while read song; do + # audtool --playlist-addurl "$song" + # done < "$f" ;; + # *) audtool --playlist-addurl "$f" ;; + # esac #done #exec audtool --playback-play - #mplayer -playlist %f & - #smplayer %s & deadbeef %s & - #exec mediaplayer_open %f + #mplayer -playlist %f & -+ t r & f \.m3u ++ t lr & f \.m3u8? 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 + "$HOME"/prog/audio-cdr-video/audio/shuffle-playlist.py %f /tmp/random-playlist-tmp.m3u + #if [ "`audtool --get-volume`" -eq 0 ]; then audacious & sleep 3; fi #audtool --playlist-clear - #audtool --playlist-addurl random-playlist-tmp.m3u + #while read song; do + # audtool --playlist-addurl "$song" + #done < /tmp/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 . & + deadbeef /tmp/random-playlist-tmp.m3u & + #mplayer -playlist /tmp/random-playlist-tmp.m3u & + (sleep 5; exec rm /tmp/random-playlist-tmp.m3u) & -+ 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 ++ t lr & f \.(m3u8?|mp3|MP3|cue|aac|ac3|ape|dts|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)$ i Audio/video info - exec mplayer -msglevel identify=6 -frames 0 %s + exec "$HOME"/.config/mpv/mpv_identify.sh %f + t d & f (video_ts|VIDEO_TS)$ i DVD info - exec mplayer -dvd-device . dvd:// -msglevel identify=6 -frames 0 + exec "$HOME"/.config/mpv/mpv_identify.sh . + ++ f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 +m Play video file(s) with mpv (quiet) + AUDIO_VOLUME=80 + export AUDIO_VOLUME + mplayer %s & + ++ f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 +m Play video file(s) with mpv (normal) + mplayer %s & + ++ f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 += f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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)$ +m Play video file(s) with mpv (loud) + AUDIO_VOLUME=120 + export AUDIO_VOLUME + mplayer %s & -+ 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 ++ f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 +m Play video file(s) with mpv (louder) + AUDIO_VOLUME=150 + export AUDIO_VOLUME 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 ++ f \.(aac|ac3|ape|cue|dts|flac|m3u8?|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 +m Play video file(s) with mpv (ask for volume) + AUDIO_VOLUME=%{Enter volume} + export AUDIO_VOLUME + mplayer %s & + ++ f \.(m3u8?|mp3|MP3|cue|aac|ac3|ape|dts|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 mpv GUI gmplayer %s & -+ t d & f (video_ts|VIDEO_TS)$ -d Play DVD directory with mplayer ++= t d & f (video_ts|VIDEO_TS)$ +d Play DVD directory with mpv mplayer -dvd-device . dvd:// & + t d & f (video_ts|VIDEO_TS)$ -D Play DVD directory with gmplayer +D Play DVD directory with mpv GUI gmplayer -dvd-device . dvd:// & + t d & f (video_ts|VIDEO_TS)$ -t Play DVD title with mplayer +t Play DVD title with mpv title=%{Enter title} mplayer -dvd-device . dvd://"$title" & + t d & f (video_ts|VIDEO_TS)$ -T Play DVD title with gmplayer +T Play DVD title with mpv GUI title=%{Enter title} gmplayer -dvd-device . dvd://"$title" & + t d -p Play directory with mplayer +p Play directory with mpv mplayer %f/* & + t d -P Play directory with gmplayer +P Play directory with mpv GUI gmplayer %f/* & + t d & f ^\.\.$ @@ -257,7 +315,7 @@ z Compress the current subdirectory to zip echo ../"$zip".zip created. + t d & f ^\.\.$ -y Compress the current subdirectory to zip with recoded filenames +y Compress the current subdirectory to zip recoding filenames Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read zip @@ -274,90 +332,98 @@ y Compress the current subdirectory to zip with recoded filenames cd .. && 7zr a "$ar".7z "$Pwd" && echo ../"$ar".7z created. -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r ++ ! f \.(bz2|gz|lz|lzma|7z|xz|zip|ZIP)$ & t lr z bzip2 the file exec bzip2 -9 %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr z gzip the file exec gzip -9 %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr z lzip the file exec lzip -9 %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr z lzma the file exec lzma -9 %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr z 7z the file/directory exec 7zr a %f.7z %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr z xz the file exec xz -9 %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr z zip the file/directory exec zip -r9 %f.zip %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ -y zip the file/directory with recoded filename(s) ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr +y zip the file/directory recoding filename(s) exec zip.py %f.zip %f + t t -Z zip these files/directories +Z zip selected files/directories ZIP=%{Enter zip name} exec zip -r9 "$ZIP" %s + t t -Y zip these files/directories with recoded filenames +Y zip selected files/directories recoding filenames ZIP=%{Enter zip name} exec zip.py "$ZIP" %s -+ f \.tar\.bz2$ | f \.tar\.gz$ | f \.tgz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.(zip|ZIP)$ | f \.(rar|RAR)$ | f \.7z$ | f \.xz$ & t r ++ f \.(tar\.(z|Z|bz2|gz|lz|lzma))|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t lr n Create a directory for this archive case %f in + *.tar.Z) D="`basename %f .tar.Z`";; *.tar.bz2) D="`basename %f .tar.bz2`";; *.tar.gz) D="`basename %f .tar.gz`";; + *.tbz2) D="`basename %f .tbz2`";; *.tgz) D="`basename %f .tgz`";; + *.tz) D="`basename %f .tz`";; *.tar.lz) D="`basename %f .tar.lz`";; *.tar.lzma) D="`basename %f .tar.lzma`";; + *.tar.7z) D="`basename %f .tar.7z`";; *.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`";; *.xz) D="`basename %f .xz`";; + *.7z) D="`basename %f .7z`";; esac exec mkdir "$D" -+ F \.tar\.bz2$ | F \.tar\.gz$ | F \.tgz$ | F \.tar\.lz$ | F \.tar\.lzma$ | F \.(zip|ZIP)$ | F \.(rar|RAR)$ | F \.7z$ | F \.xz$ & T r ++ F \.(tar\.(z|Z|bz2|gz|lz|lzma))|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & T r N Create a directory for the other archive case %D/%F in + *.tar.Z) D="`basename %F .tar.Z`";; *.tar.bz2) D="`basename %F .tar.bz2`";; *.tar.gz) D="`basename %F .tar.gz`";; + *.tbz2) D="`basename %F .tbz2`";; *.tgz) D="`basename %F .tgz`";; + *.tz) D="`basename %F .tz`";; *.tar.lz) D="`basename %F .tar.lz`";; *.tar.lzma) D="`basename %F .tar.lzma`";; + *.tar.7z) D="`basename %F .tar.7z`";; *.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`";; *.xz) D="`basename %F .xz`";; + *.7z) D="`basename %F .7z`";; esac exec mkdir "$D" -+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$ | f \.tar\.bz2$ & t r ++ f \.(tar\.(z|Z|bz2|gz|lz|lzma|7z|xz))|(tbz2|tgz|tz)$ & t lr x Extract the contents of a compressed tar file unset PRG case %f in - *.tar.bz2) + *.tar.bz2|*.tbz2) PRG="bunzip2 -c" ;; - *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z) + *.tar.gz|*.tar.z|*.tgz|*.tz|*.tar.Z) PRG="gzip -dc" ;; *.tar.lz) @@ -378,14 +444,14 @@ x Extract the contents of a compressed tar file esac $PRG %f | tar xvpf - -+ F \.tar\.gz$ | F \.tar\.z$ | F \.tgz$ | F \.tpz$ | F \.tar\.lz$ | F \.tar\.lzma$ | F \.tar\.7z$ | F \.tar\.xz$ | F \.tar\.Z$ | F \.tar\.bz2$ & T r ++ F \.(tar\.(z|Z|bz2|gz|lz|lzma|7z|xz))|(tbz2|tgz|tz)$ & T r X Extract the contents of an other compressed tar file unset PRG case %F in - *.tar.bz2) + *.tar.bz2|*.tbz2) PRG="bunzip2 -c" ;; - *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z) + *.tar.gz|*.tar.z|*.tgz|*.tz|*.tar.Z) PRG="gzip -dc" ;; *.tar.lz) @@ -406,7 +472,7 @@ X Extract the contents of an other compressed tar file esac $PRG %D/%F | tar xvpf - -+ f \.(bz2|gz|lz|lzma|7z|xz|tar|zip|ZIP|rar|RAR)$ & t r ++ f \.(bz2|egg|gz|lz|lzma|7z|xz|tar|whl|zip|ZIP|rar|RAR)$ & t lr x Extract a compressed file case %f in *.bz2) P="bzip2 -d";; @@ -416,12 +482,12 @@ x Extract a compressed file *.7z) P="7zr x";; *.xz) P="xz -d";; *.tar) P="tar xvpf";; - *.zip|*.ZIP) P="unzip";; + *.egg|*.whl|*.zip|*.ZIP) P="unzip";; *.rar|*.RAR) P="unrar x -y";; esac exec $P %f -+ F \.(bz2|gz|lz|lzma|7z|xz|tar|zip|ZIP|rar|RAR)$ & T r ++ F \.(bz2|egg|gz|lz|lzma|7z|xz|tar|whl|zip|ZIP|rar|RAR)$ & T r X Extract another compressed file case %F in *.bz2) P="bzip2 -d";; @@ -431,62 +497,66 @@ X Extract another compressed file *.7z) P="7zr x";; *.xz) P="xz -d";; *.tar) P="tar xvpf";; - *.zip|*.ZIP) P="unzip";; + *.egg|*.whl|*.zip|*.ZIP) P="unzip";; *.rar|*.RAR) P="unrar x -y";; esac exec $P %D/%F -+ t r & f \.(zip|ZIP)$ -y Extract from zip with recoded filenames ++ t lr & f \.(zip|ZIP)$ +y Extract from zip recoding filenames exec unzip.py %f + T r & F \.(zip|ZIP)$ -Y Extract from other zip with recoded filenames +Y Extract from other zip recoding filenames exec unzip.py %D/%F -+ t r ++ t lr v View via mailcap exec see %f -+ t r ++ t lr c Compare the file exec cmp %D/%f %f -+ t r & T r ++ t lr & T r C Compare these files exec cmp %D/%F %f -+ t r ++ t lr d Diff the file exec diff -u --speed-large-files %D/%f %f -+ t r & T r ++ t lr & T r D Diff these files exec diff -u --speed-large-files %D/%F %f -+ t r ++ t lr v vimdiff the file exec vim -d %D/%f %f -+ t r & T r ++ t lr & 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 \ - -x CVS -x .git -x .hg -x .svn -x '*.py[co]' %D/%f %f + -x CVS -x .git -x .hg -x .svn -x '*.py[co]' -x __pycache__ %D/%f %f + t d & T d & ! F ^\.\.$ D Diff these directories exec diff -ru --speed-large-files \ - -x CVS -x .git -x .hg -x .svn -x '*.py[co]' %D/%F %f + -x CVS -x .git -x .hg -x .svn -x '*.py[co]' -x __pycache__ %D/%F %f -+= f \.(asc|sig(n)?)$ & t r ++= f \.(asc|gpg|sig(n)?)$ & t lr v Verify signature exec gpg --verify %f -+= f \.[1-8]$ | f \.man$ & t r ++ f \.(asc|gpg|sig(n)?)$ & t lr +v Verify detached signature + exec gpg --verify %f "`echo %f | sed 's/\.[^.]*$//'`" + ++= f \.[1-8]$ | f \.man$ & t lr 1 Display the file with roff -man %view nroff -man %f @@ -494,6 +564,6 @@ m View a manual page MAN=%{Enter manual name} %view man -P cat $MAN -+ t r | t d | t t ++ t dlr | t t r rsync the file(s) there - rsync -ahP --del %s %D + rsync -ahPv --del %s %D