X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=.mc%2Fmenu;h=c2198c8978457c3e3ae2b81f25ad519b2ef36151;hp=78d4a8f93cafc32b2b30741b300c7e3511098e9f;hb=HEAD;hpb=62dfd5b539975739d98f16614b94ad77a71e974f diff --git a/.mc/menu b/.mc/menu index 78d4a8f..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 + ++ 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 r ++= 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 \.(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)$ +v View pdf + pdftotext -layout -q %f - | iconv.py -f utf-8 | ${PAGER:-more} + ++ t lr & f \.(pdf|PDF)$ +e View pdf with evince + evince %f & -+ 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 \.(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 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 \.(pdf|PDF|ps|PS|djvu)(\.bz2|\.gz)?$ -e View pdf/ps/djvu with evince - evince %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|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 r & f \.(doc|DOC|rtf)$ ++= 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 \.(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 \.(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 (ask for volume) + AUDIO_VOLUME=%{Enter volume} + 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 \.(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 ^\.\.$ @@ -220,6 +278,24 @@ g Compress the current subdirectory to tar.gz cd .. && tar cvf - "$Pwd" | gzip -f9 > "$tar".tar.gz && echo ../"$tar".tar.gz created. ++ t d & f ^\.\.$ +l Compress the current subdirectory to tar.lzma + 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" | lzma -f9 > "$tar".tar.lzma && + echo ../"$tar".tar.lzma created. + ++ t d & f ^\.\.$ +x Compress the current subdirectory to tar.xz + 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" | xz -f9 > "$tar".tar.xz && + echo ../"$tar".tar.xz created. + + t d & f ^\.\.$ t Compress the current subdirectory to tar Pwd="`basename %d /`" @@ -239,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 @@ -247,90 +323,107 @@ y Compress the current subdirectory to zip with recoded filenames cd .. && zip.py "$zip".zip "$Pwd" && echo ../"$zip".zip created. -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ -z bzip2 the file/directory - exec bzip2 -9 %f.bz2 %f ++ t d & f ^\.\.$ +7 Compress the current subdirectory to 7z + Pwd="`basename %d /`" + echo -n "Name of the distribution file (without extension) [$Pwd]: " + read ar + if [ "$ar"x = x ]; then ar="$Pwd"; fi + 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)$ -z gzip the file/directory ++ ! f \.(bz2|gz|lz|lzma|7z|xz|zip|ZIP)$ & t lr +z bzip2 the file + exec bzip2 -9 %f + ++ ! 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)$ -z lzip the file/directory ++ ! 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)$ -z lzma the file/directory ++ ! 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 7z -9 %f + exec 7zr a %f.7z %f -+ ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ -z xz the file/directory ++ ! 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) @@ -340,7 +433,7 @@ x Extract the contents of a compressed tar file PRG="lzma -dc" ;; *.tar.7z) - PRG="7za e -so" + PRG="7zr e -so" ;; *.tar.xz) PRG="xz -dc" @@ -349,16 +442,16 @@ x Extract the contents of a compressed tar file exit 1 ;; esac - $PRG %f | tar xvf - + $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) @@ -368,7 +461,7 @@ X Extract the contents of an other compressed tar file PRG="lzma -dc" ;; *.tar.7z) - PRG="7za e -so" + PRG="7zr e -so" ;; *.tar.xz) PRG="xz -dc" @@ -377,81 +470,93 @@ X Extract the contents of an other compressed tar file exit 1 ;; esac - $PRG %D/%F | tar xvf - + $PRG %D/%F | tar xvpf - -+ t r & f \.tar$ -u Extract from tar - exec tar xpvf %f ++ 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";; + *.gz) P="gzip -d";; + *.lz) P="lzip -d";; + *.lzma) P="lzma -d";; + *.7z) P="7zr x";; + *.xz) P="xz -d";; + *.tar) P="tar xvpf";; + *.egg|*.whl|*.zip|*.ZIP) P="unzip";; + *.rar|*.RAR) P="unrar x -y";; + esac + exec $P %f -+ t r & f \.(zip|ZIP)$ -u Extract from zip - exec unzip %f ++ 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";; + *.gz) P="gzip -d";; + *.lz) P="lzip -d";; + *.lzma) P="lzma -d";; + *.7z) P="7zr x";; + *.xz) P="xz -d";; + *.tar) P="tar xvpf";; + *.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 \.(rar|RAR)$ -u Extract from rar - exec unrar x -y %f - -+ T r & F \.tar$ -u Extract from other tar - exec tar xpvf %D/%F - + T r & F \.(zip|ZIP)$ -u Extract from other zip - exec unzip %D/%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 & F \.(rar|RAR)$ -u Extract from other rar - exec unrar x -y %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 %D/%f %f + exec diff -ru --speed-large-files \ + -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 %D/%F %f + exec diff -ru --speed-large-files \ + -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 @@ -459,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