]> git.phdru.name Git - dotfiles.git/blob - .mc/menu
.mc/menu: preserve attributes on untarring
[dotfiles.git] / .mc / menu
1 shell_patterns=0
2
3 # This is necessary to overcome a bug in mc - without this
4 # mc makes default wrong item
5 :  NOOP
6    :
7
8 @  Do something on all of the file(s) at once
9    CMD=%{Enter command}
10    exec $CMD %s
11
12 + t t
13 @  Do something on the tagged files one by one
14    CMD=%{Enter command}
15    for f in %t; do
16      $CMD "$f"
17    done
18
19 + t r
20 p  View the file in a pager
21    exec ${PAGER:-more} %f
22
23 + t r
24 b  View the file in a browser
25    exec webbrowser file://%d/%f
26
27 + t r
28 w  View the file in a new browser window
29    exec webbrowser -n file://%d/%f
30
31 + t r
32 = f \.(htm(l?)|txt)$
33 t  View the file in a new browser tab
34    exec webbrowser -t file://%d/%f
35
36 += f \.fb2(\.bz2|\.gz|\.zip)?$ | f \.(chm|epub|htm(l?)|txt|rtf)$ & t r
37 f  View fb2/chm/epub with fbreader
38    fbreader %f &
39
40 + t r & f \.fb2(\.bz2|\.gz|\.zip)$
41 H  fb2html
42    case %f in
43      *.fb2.bz2) A="bunzip2 -c" ;;
44      *.fb2.gz) A="gunzip -c" ;;
45      *.fb2.zip) A="unzip -p" ;;
46      *.fb2) A="cat" ;;
47    esac
48    $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_html_ru.xsl - | webstdin -t
49
50 + t r & f \.fb2(\.bz2|\.gz|\.zip)$
51 T  fb2txt
52    case %f in
53      *.fb2.bz2) A="bunzip2 -c" ;;
54      *.fb2.gz) A="gunzip -c" ;;
55      *.fb2.zip) A="unzip -p" ;;
56      *.fb2) A="cat" ;;
57    esac
58    $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_txt_ru.xsl - | webstdin -e txt -t
59
60 += t r & f \.(pdf|PDF|ps|PS|djvu)(\.bz2|\.gz)?$
61 e  View pdf/ps/djvu with evince
62    evince %f &
63
64 += t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
65 o  View OpenDoc with odt2txt
66    odt2txt %f | ${PAGER:-more}
67
68 + t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
69 e  Edit OpenDoc with libreoffice
70    libreoffice %f &
71
72 += t r & f \.(doc|DOC|rtf)$
73 d  View doc with catdoc
74    catdoc %f | ${PAGER:-more}
75
76 + t r & f \.(doc|DOC|rtf)$
77 e  Edit doc with libreoffice
78    libreoffice %f &
79
80 += t r & f \.(docx|DOCX)$
81 d  View docx with docx2txt
82    docx2txt %f - | iconv.py -f utf-8 | ${PAGER:-more}
83
84 + t r & f \.(docx|DOCX)$
85 e  Edit docx with libreoffice
86    libreoffice %f &
87
88 += t r & f \.(xls|XLS)$
89 x  View xls with xls2csv
90    xls2csv %f | ${PAGER:-more}
91
92 + t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t
93 = t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$
94 i  View image(s) scaled
95    xli -title "`echo %s | sed 's/ /_/g'`" -zoom auto %s &
96
97 + t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t
98 I  View image(s) full size
99    xli -title "`echo %s | sed 's/ /_/g'`" %s &
100
101 + t r & f \.(ico|jp2|tif|TIF|tiff|TIFF)$ | t t
102 = t r & f \.(ico|jp2|tif|TIF|tiff|TIFF)$
103 I  View icon, JPEG-2000 or TIFF image
104    display %s &
105
106 + t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t
107 a  Add the audiofile(s) or playlist(s)
108    #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi
109    #for f in %s; do
110    #   audtool --playlist-addurl "$f"
111    #done
112    #smplayer -add-to-playlist %s &
113    deadbeef --queue %s &
114
115 + t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t
116 = t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$
117 p  Load the audiofile(s) or playlist(s)
118    #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi
119    #audtool --playlist-clear
120    #for f in %s; do
121    #   audtool --playlist-addurl "$f"
122    #done
123    #smplayer -send-action pl_remove_all
124    #smplayer -add-to-playlist %s &
125    deadbeef --queue %s &
126
127 + t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t
128 P  Play the audiofile(s) or playlist(s)
129    #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi
130    #audtool --playlist-clear
131    #for f in %s; do
132    #   audtool --playlist-addurl "$f"
133    #done
134    #exec audtool --playback-play
135    #mplayer -playlist %f &
136    #smplayer %s &
137    deadbeef %s &
138    #exec mediaplayer_open %f
139
140 + t r & f \.m3u
141 R  Play the playlist in random order
142    "$HOME"/admin/prog/audio-cdr-video/audio/shuffle-playlist.py %f random-playlist-tmp.m3u
143    #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi
144    #audtool --playlist-clear
145    #audtool --playlist-addurl random-playlist-tmp.m3u
146    #audtool --playback-play
147    #mplayer -playlist random-playlist-tmp.m3u &
148    #smplayer random-playlist-tmp.m3u &
149    #smplayer -actions pl_shuffle %f &
150    deadbeef --queue random-playlist-tmp.m3u & deadbeef --play
151    #mediaplayer_open random-playlist-tmp.m3u
152    (sleep 5; exec rm random-playlist-tmp.m3u) &
153
154 + 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
155 = 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)$
156 s  Play audio/video file(s) or directory with smplayer
157    smplayer %s &
158
159 += t d & f (video_ts|VIDEO_TS)$
160 c  Play the current directory with smplayer
161    smplayer . &
162
163 + 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
164 i  Audio/video info
165    exec mplayer -msglevel identify=6 -frames 0 %s
166
167 + t d & f (video_ts|VIDEO_TS)$
168 i  DVD info
169    exec mplayer -dvd-device . dvd:// -msglevel identify=6 -frames 0
170
171 + f \.(avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t
172 m  Play video file(s) with mplayer
173    mplayer %s &
174
175 + 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
176 M  Play audio/video with gmplayer
177    gmplayer %s &
178
179 + t d & f (video_ts|VIDEO_TS)$
180 d  Play DVD directory with mplayer
181    mplayer -dvd-device . dvd:// &
182
183 + t d & f (video_ts|VIDEO_TS)$
184 D  Play DVD directory with gmplayer
185    gmplayer -dvd-device . dvd:// &
186
187 + t d & f (video_ts|VIDEO_TS)$
188 t  Play DVD title with mplayer
189    title=%{Enter title}
190    mplayer -dvd-device . dvd://"$title" &
191
192 + t d & f (video_ts|VIDEO_TS)$
193 T  Play DVD title with gmplayer
194    title=%{Enter title}
195    gmplayer -dvd-device . dvd://"$title" &
196
197 + t d
198 p  Play directory with mplayer
199    mplayer %f/* &
200
201 + t d
202 P  Play directory with gmplayer
203    gmplayer %f/* &
204
205 + t d & f ^\.\.$
206 b  Compress the current subdirectory to tar.bz2
207    Pwd="`basename %d /`"
208    echo -n "Name of the distribution file (without extension) [$Pwd]: "
209    read tar
210    if [ "$tar"x = x ]; then tar="$Pwd"; fi
211    cd .. && tar cvf - "$Pwd" | bzip2 -f9 > "$tar".tar.bz2 &&
212    echo ../"$tar".tar.bz2 created.
213
214 + t d & f ^\.\.$
215 g  Compress the current subdirectory to tar.gz
216    Pwd="`basename %d /`"
217    echo -n "Name of the distribution file (without extension) [$Pwd]: "
218    read tar
219    if [ "$tar"x = x ]; then tar="$Pwd"; fi
220    cd .. && tar cvf - "$Pwd" | gzip -f9 > "$tar".tar.gz &&
221    echo ../"$tar".tar.gz created.
222
223 + t d & f ^\.\.$
224 t  Compress the current subdirectory to tar
225    Pwd="`basename %d /`"
226    echo -n "Name of the distribution file (without extension) [$Pwd]: "
227    read tar
228    if [ "$tar"x = x ]; then tar="$Pwd"; fi
229    cd .. && tar cvf - "$Pwd" > "$tar".tar &&
230    echo ../"$tar".tar created.
231
232 + t d & f ^\.\.$
233 z  Compress the current subdirectory to zip
234    Pwd="`basename %d /`"
235    echo -n "Name of the distribution file (without extension) [$Pwd]: "
236    read zip
237    if [ "$zip"x = x ]; then zip="$Pwd"; fi
238    cd .. && zip -r9 "$zip".zip "$Pwd" &&
239    echo ../"$zip".zip created.
240
241 + t d & f ^\.\.$
242 y  Compress the current subdirectory to zip with recoded filenames
243    Pwd="`basename %d /`"
244    echo -n "Name of the distribution file (without extension) [$Pwd]: "
245    read zip
246    if [ "$zip"x = x ]; then zip="$Pwd"; fi
247    cd .. && zip.py "$zip".zip "$Pwd" &&
248    echo ../"$zip".zip created.
249
250 + t d & f ^\.\.$
251 7  Compress the current subdirectory to 7z
252    Pwd="`basename %d /`"
253    echo -n "Name of the distribution file (without extension) [$Pwd]: "
254    read ar
255    if [ "$ar"x = x ]; then ar="$Pwd"; fi
256    cd .. && 7zr a "$ar".7z "$Pwd" &&
257    echo ../"$ar".7z created.
258
259 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r
260 z  bzip2 the file
261    exec bzip2 -9 %f
262
263 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r
264 z  gzip the file
265    exec gzip -9 %f
266
267 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r
268 z  lzip the file
269    exec lzip -9 %f
270
271 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r
272 z  lzma the file
273    exec lzma -9 %f
274
275 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
276 z  7z the file/directory
277    exec 7zr a %f.7z %f
278
279 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$ & t r
280 z  xz the file
281    exec xz -9 %f
282
283 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
284 z  zip the file/directory
285    exec zip -r9 %f.zip %f
286
287 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
288 y  zip the file/directory with recoded filename(s)
289    exec zip.py %f.zip %f
290
291 + t t
292 Z  zip these files/directories
293    ZIP=%{Enter zip name}
294    exec zip -r9 "$ZIP" %s
295
296 + t t
297 Y  zip these files/directories with recoded filenames
298    ZIP=%{Enter zip name}
299    exec zip.py "$ZIP" %s
300
301 + 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
302 n  Create a directory for this archive
303    case %f in
304      *.tar.bz2)  D="`basename %f .tar.bz2`";;
305      *.tar.gz)   D="`basename %f .tar.gz`";;
306      *.tgz)      D="`basename %f .tgz`";;
307      *.tar.lz)   D="`basename %f .tar.lz`";;
308      *.tar.lzma) D="`basename %f .tar.lzma`";;
309      *.zip)      D="`basename %f .zip`";;
310      *.ZIP)      D="`basename %f .ZIP`";;
311      *.rar)      D="`basename %f .rar`";;
312      *.RAR)      D="`basename %f .RAR`";;
313      *.7z)       D="`basename %f .7z`";;
314      *.xz)       D="`basename %f .xz`";;
315    esac
316    exec mkdir "$D"
317
318 + 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
319 N  Create a directory for the other archive
320    case %D/%F in
321      *.tar.bz2)  D="`basename %F .tar.bz2`";;
322      *.tar.gz)   D="`basename %F .tar.gz`";;
323      *.tgz)      D="`basename %F .tgz`";;
324      *.tar.lz)   D="`basename %F .tar.lz`";;
325      *.tar.lzma) D="`basename %F .tar.lzma`";;
326      *.zip)      D="`basename %F .zip`";;
327      *.ZIP)      D="`basename %F .ZIP`";;
328      *.rar)      D="`basename %F .rar`";;
329      *.RAR)      D="`basename %F .RAR`";;
330      *.7z)       D="`basename %F .7z`";;
331      *.xz)       D="`basename %F .xz`";;
332    esac
333    exec mkdir "$D"
334
335 + 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
336 x  Extract the contents of a compressed tar file
337    unset PRG
338    case %f in
339       *.tar.bz2)
340          PRG="bunzip2 -c"
341       ;;
342       *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
343          PRG="gzip -dc"
344       ;;
345       *.tar.lz)
346          PRG="lzip -dc"
347       ;;
348       *.tar.lzma)
349          PRG="lzma -dc"
350       ;;
351       *.tar.7z)
352          PRG="7zr e -so"
353       ;;
354       *.tar.xz)
355          PRG="xz -dc"
356       ;;
357       *)
358       exit 1
359       ;;
360    esac
361    $PRG %f | tar xvpf -
362
363 + 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
364 X  Extract the contents of an other compressed tar file
365    unset PRG
366    case %F in
367       *.tar.bz2)
368          PRG="bunzip2 -c"
369       ;;
370       *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
371          PRG="gzip -dc"
372       ;;
373       *.tar.lz)
374          PRG="lzip -dc"
375       ;;
376       *.tar.lzma)
377          PRG="lzma -dc"
378       ;;
379       *.tar.7z)
380          PRG="7zr e -so"
381       ;;
382       *.tar.xz)
383          PRG="xz -dc"
384       ;;
385       *)
386       exit 1
387       ;;
388    esac
389    $PRG %D/%F | tar xvpf -
390
391 + f \.(bz2|gz|lz|lzma|7z|xz|tar|zip|ZIP|rar|RAR)$ & t r
392 x  Extract a compressed file
393    case %f in
394      *.bz2)  P="bzip2 -d";;
395      *.gz)   P="gzip -d";;
396      *.lz)   P="lzip -d";;
397      *.lzma) P="lzma -d";;
398      *.7z)   P="7zr x";;
399      *.xz)   P="xz -d";;
400      *.tar)  P="tar xvpf";;
401      *.zip|*.ZIP) P="unzip";;
402      *.rar|*.RAR) P="rar x -y";;
403    esac
404    exec $P %f
405
406 + F \.(bz2|gz|lz|lzma|7z|xz|tar|zip|ZIP|rar|RAR)$ & T r
407 X  Extract another compressed file
408    case %F in
409      *.bz2)  P="bzip2 -d";;
410      *.gz)   P="gzip -d";;
411      *.lz)   P="lzip -d";;
412      *.lzma) P="lzma -d";;
413      *.7z)   P="7zr x";;
414      *.xz)   P="xz -d";;
415      *.tar)  P="tar xvpf";;
416      *.zip|*.ZIP) P="unzip";;
417      *.rar|*.RAR) P="rar x -y";;
418    esac
419    exec $P %D/%F
420
421 + t r & f \.(zip|ZIP)$
422 y  Extract from zip with recoded filenames
423    exec unzip.py %f
424
425 + T r & F \.(zip|ZIP)$
426 Y  Extract from other zip with recoded filenames
427    exec unzip.py %D/%F
428
429 + t r
430 v  View via mailcap
431    exec see %f
432
433 + t r
434 c  Compare the file
435    exec cmp %D/%f %f
436
437 + t r & T r
438 C  Compare these files
439    exec cmp %D/%F %f
440
441 + t r
442 d  Diff the file
443    exec diff -u --speed-large-files %D/%f %f
444
445 + t r & T r
446 D  Diff these files
447    exec diff -u --speed-large-files %D/%F %f
448
449 + t r
450 v  vimdiff the file
451    exec vim -d %D/%f %f
452
453 + t r & T r
454 V  vimdiff these files
455    exec vim -d %D/%F %f
456
457 + t d & ! f ^\.\.$
458 d  Diff the directory
459    exec diff -ru --speed-large-files %D/%f %f
460
461 + t d & T d & ! F ^\.\.$
462 D  Diff these directories
463    exec diff -ru --speed-large-files %D/%F %f
464
465 += f \.(asc|sig(n)?)$ & t r
466 v  Verify signature
467    exec gpg --verify %f
468
469 += f \.[1-8]$ | f \.man$ & t r
470 1  Display the file with roff -man
471    %view nroff -man %f
472
473 m  View a manual page
474    MAN=%{Enter manual name}
475    %view man -P cat $MAN
476
477 + t r | t d | t t
478 r  rsync the file(s) there
479    rsync -ahP --del %s %D