# Written By Fredrik Hübinette # All rights reserved. No warrenties, use at your own risk. # This source is distributed under the GNU GENERAL PUBLIC LICENCE, # see the file "COPYING" for more information. # Configure file for plugger version 5.1 # Commands which are not installed on your system will not # be used. changequote([,]) dnl define(MPVERSION,esyscmd([mplayer -help 2>&1 | (read r1 r2 r3; echo $r2)])) ## Mplayer version: MPVERSION define(MP_CMD,[mplayer -quiet -cache 8192 -vop pp -autoq 99 -nojoystick -nofs -zoom -osdlevel 1 $1 >/dev/null 2>/dev/null &1 | grep vorbis]),[],[ define(MP_NO_VORBIS) ],[ define(MP_VORBIS) ]) syscmd([test "`type -p xmms 2>/dev/null`" = "/usr/bin/xmms" -a -f /usr/lib/xmms/Input/librh_mp3.so -a \! -f /usr/lib/xmms/Input/libmpg123.so]) ifelse(sysval,0,[ ## XMMS has no mp3 support define(XMMS_MP3,[have(urkiliburkelgurk): x]) ],[ ## XMMS probably has mp3 support define(XMMS_MP3,[nokill exits:xmms]) ]) ################### ### Video ### ################### ## ## MPEG 1/2 ## video/mpeg: mpeg, mpg, mpe: MPEG video video/x-mpeg: mpeg, mpg, mpe: MPEG video video/x-mpeg2: mpv2, mp2ve: MPEG2 video MP_ENTRIES_STREAM() exits nokill: xine -pq "$file" 2>/dev/null 1>/dev/null stream: mtvp -W$window - 2>/dev/null 1>/dev/null loop:mtvp -l -W$window "$file" :mtvp -W$window "$file" loop: xanim +Av100 -Zr +W$window +q +f "$file" : xanim +Av100 -Zr +W$window +q +Ze +f "$file" ## ## Audio Video Interleav format (AVI) ## video/msvideo: avi: AVI video video/x-msvideo: avi: AVI video application/x-drm-v2:asx:Windows Media application/x-mplayer2: wmv,asf: Windows Media application/x-mplayer2:wmv:WMV video/x-ms-asf:asf,asx:Windows Media video/x-ms-asf-plugin: asf,asx,wmv,wvx: Windows Media video/x-ms-wm:asf:MSNBCPlayer video/x-ms-wmv:wmv:Windows Media video/x-ms-wvx:wvx:Windows Media video/sgi-movie: movie,movi,mv: SGI video video/x-sgi-movie: movie,movi,mv: SGI video MP_ENTRIES_STREAM() exits nokill: xine -pq "$file" 2>/dev/null 1>/dev/null loop:xanim +Av100 -Zr +W$window +q +f "$file" :xanim +Av100 -Zr +W$window +q +Ze +f "$file" ## ## Quicktime (Problems with seeking) ## video/quicktime: mov,qt: Quicktime video video/x-quicktime: mov,qt: Quicktime video application/x-quicktimeplayer:mov:Quicktime MP_ENTRIES_STREAM() exits nokill: xine -pq "$file" 2>/dev/null 1>/dev/null loop:xanim +Av100 -Zr +W$window +q +f "$file" :xanim +Av100 -Zr +W$window +q +Ze +f "$file" ## ## OGG video ## video/x-theora::OGG stream with video video/theora::OGG stream with video video/ogg::OGG stream with video video/x-ogg:ogm,ogv:OGG stream with video MP_ENTRIES_STREAM() ## ## Various others ## video/dl: dl: DL video video/x-dl: dl: DL video video/sgi-movie: movie,movi,mv: SGI video video/x-sgi-movie: movie,movi,mv: SGI video video/anim: iff,anim5,anim3,anim7: IFF video video/x-anim: iff,anim5,anim3,anim7: IFF video video/fli: fli, flc: FLI video video/x-fli: fli, flc: FLI video MP_ENTRIES_STREAM() loop:xanim +Av100 -Zr +W$window +q +f "$file" :xanim +Av100 -Zr +W$window +q +Ze +f "$file" ################## ### Sound ### ################## ## ## MIDI ## audio/mid: midi,mid: MIDI audio file audio/x-mid: midi,mid: MIDI audio file audio/midi: midi,mid: MIDI audio file audio/x-midi: midi,mid: MIDI audio file controls: timidity -s 48000 -a -idqqqqqqq "$file" >/dev/null 2>/dev/null controls: playmidi $file ## ## MP2/3 ## audio/mp3: mp3: MPEG audio audio/x-mp3: mp3: MPEG audio audio/mpeg2: mp2: MPEG audio audio/x-mpeg2: mp2: MPEG audio audio/mpeg3: mp3: MPEG audio audio/x-mpeg3: mp3: MPEG audio audio/mpeg: mpa,abs,mpega: MPEG audio audio/x-mpeg: mpa,abs,mpega: MPEG audio controls url: mpg123 -q -b 128 "$url" controls url: mpg321 -q "$url" controls url noisy ignore_errors: mplayer -quiet "$url" /dev/null controls: amp -b 200 -q "$file" controls: maplay "$file" controls: mpeg3play "$file" ## ## MP2/3 playlists ## audio/mpeg-url: m3u: MPEG music resource locator audio/x-mpeg-url: m3u: MPEG music resource locator audio/mpegurl: m3u: MPEG music resource locator audio/x-mpegurl: m3u: MPEG music resource locator audio/mpeg-url: m3u: MPEG music resource locator audio/x-mpeg-url: m3u: MPEG music resource locator audio/x-scpls:pls:Shoutcast Playlists controls: mpg123 -q -b 128 -@ - <"$file" controls: mpg321 -q -@ "$file" XMMS_MP3 "$file" :internal:url ## ## OGG streams ## application/ogg: ogg: Ogg Vorbis stream application/x-ogg: ogg: Ogg Vorbis stream ifdef([MP_VORBIS],[ MP_ENTRIES_STREAM() ]) controls url: ogg123 -q -b 128 "$url" nokill exits:xmms "$file" url nokill exits:xmms "$url" repeat swallow(alsaplayer): alsaplayer -q "$file" >/dev/null ## ## OGG _audio_ streams ## audio/ogg: ogg: Ogg Vorbis audio stream audio/x-ogg: ogg: Ogg Vorbis audio stream controls url: ogg123 -q -b 128 "$url" controls url noisy ignore_errors: mplayer -quiet "$url" /dev/null ifdef([MP_VORBIS],[ MP_ENTRIES_STREAM() ]) ## ## Realaudio plugin ## audio/x-pn-realaudio-plugin:rpm: RealPlayer Plugin Metafile audio/x-pn-realaudio: ra,rm,ram: Realaudio-plugin resource locator audio/x-realaudio: ra,rm,ram: RealAudio file application/vnd.rn-realmedia: rm: RealMedia file application/smil: smi: RealPlayer audio/vnd.rn-realaudio: ra,ram: RealAudio file audio/vnd.rn-realvideo: rv: RealVideo file exits nokill: realplay "$file" ## ## AU ## audio/basic: au,snd: Basic audio file audio/x-basic: au,snd: Basic audio file controls: play "$file" loop: xanim +Av100 -Zr +W$window +q +f "$file" : xanim +Av100 -Zr +W$window +q +f +Ze "$file" ## ## WMP audio ## audio/x-ms-wax:wax,wma:Windows Media controls url noisy ignore_errors: mplayer -quiet "$url" /dev/null 2>/dev/null "$file" controls url noisy ignore_errors: mplayer -quiet "$url" /dev/null controls: playwave "$file" >/dev/null 2>/dev/null controls: play "$file" >/dev/null 2>/dev/null ## ## Soundtracker Modules (Originally from the Amiga platform) ## audio/mod: mod: Soundracker audio Module audio/x-mod: mod: Soundracker audio Module controls loop: mikmod -l -q -i -f 60000 --hqmixer "$file" 2>/dev/null 1>/dev/null controls : mikmod -q -i -f 60000 --hqmixer "$file" 2>/dev/null 1>/dev/null controls : tracker -picky -quiet -frequency 65000 -oversample 4 "$file" controls loop: nspmod -r "$file" 2>/dev/null 1>/dev/null controls repeat: nspmod -l $repeat "$file" 2>/dev/null 1>/dev/null controls loop: xmp -l "$file" 2>/dev/null controls : xmp "$file" 2>/dev/null repeat swallow(alsaplayer): alsaplayer -q "$file" >/dev/null ### ### Commodore 64 emulated sound ### audio/prs.sid: sid: SID Music audio/x-sidtune: sid,psid,dat: Commodore 64 audio audio/sidtune: sid,psid,dat: Commodore 64 audio audio/psid: psid,sid,dat: Commodore 64 audio audio/x-psid: psid,sid,dat: Commodore 64 audio controls: sidplay -ss -16 -f44100 "$file" >/dev/null 2>/dev/null ## ## YM player ## audio/x-stsound: snd, psg, ym: Atari YM audio files audio/stsound: snd, psg, ym: Atari YM audio files repeat have(mktemp) have(stsoundc) swallow(plugger-controller) fill nocheck: tmp="`mktemp /tmp/plugger.XXXXXXXXXX`" || exit 1 ; trap 'rm "$tmp" >/dev/null 2>/dev/null' EXIT 1 2 3 4 5 6 15; case "`file - <"$file"`" in *LHa*) lha -pq "$file" ;; *Zip*) gunzip <"$file" ;; *) cat "$file" ;; esac >"$tmp" && $controller "stsoundc $tmp" >/dev/null ####################### ### Images ### ####################### ## ## Some common image formats ## BMP/PNG are normally handled directly by Mozilla. ## xli/xloadimage has security issues, uncomment at your own peril. ## image/tiff: tiff,tif: TIFF image image/x-tiff: tiff,tif: TIFF image image/x-tif: tiff,tif: TIFF image image/sun-raster: rs: SUN raster image image/x-sun-raster: rs: SUN raster image image/x-rgb: rgb: RGB Image image/x-portable-pixmap: ppm: PPM Image image/x-portable-graymap: pgm: PGM Image image/x-portable-bitmap: pbm: PBM Image image/x-portable-anymap: pnm: PBM Image #image/x-MS-bmp: bmp: Windows Bitmap image/x-ms-bmp: bmp: Windows Bitmap #image/x-bmp: bmp: Windows Bitmap #image/bmp: bmp: Windows Bitmap #image/png: png: PNG image #image/x-png: png: PNG image swallow(XVroot) maxaspect: xv -ima -igeom +9000+9000 -geometry +9000+9000 "$file" repeat swallow(gqview) fill: gqview -t "$file" >/dev/null 2>/dev/null repeat swallow(display) fill: display -geometry +9000+9000 "$file" repeat swallow(Sdtimage) fill: sdtimage "$file" exits: display -window $window -backdrop $file swallow(*qiv:) fill maxaspect: qiv -n "$file" # repeat swallow(xli) fill: xli -quiet "$file" >/dev/null 2>/dev/null # repeat swallow(xloadimage) fill: xloadimage -quiet "$file" >/dev/null 2>/dev/null # exits: xli -quiet -windowid $window "$file" # exits: xloadimage -quiet -windowid $window "$file" ## ## Photoshop files ## Requires 'convert' from the imagemagick package ## application/photoshop:psd:PhotoShop Image application/x-photoshop:psd:PhotoShop Image have(xv) repeat swallow(XVroot) maxaspect: convert -flatten "$file" "pnm:-" | xv -ima -igeom +9000+9000 -geometry +9000+9000 - have(display) repeat swallow(display) fill: convert -flatten "$file" "pnm:-" | display -geometry +9000+9000 - have(xli) repeat swallow(xli) fill: convert -flatten "$file" "pnm:-" | xli -quiet - >/dev/null 2>/dev/null have(xloadimage) repeat swallow(xloadimage) fill: convert -flatten "$file" "pnm:-" | xloadimage -quiet - >/dev/null 2>/dev/null have(xli) exits: convert -flatten "$file" "pnm:-" | xli -quiet -windowid $window - have(xloadimage) exits: convert -flatten "$file" "pnm:-" | xloadimage -quiet -windowid $window - have(display) exits: convert -flatten "$file" "pnm:-" | display -window $window -backdrop - ## ## GIMP files ## Requires 'xcftopnm', which normally comes with gimp. ## In debian, xcftopnm can be found in the package gimp1.2-perl ## image/x-xcf:xcf:Gimp Image image/xcf:xcf:Gimp Image application/x-gimp:xcf:Gimp Image application/gimp:xcf:Gimp Image have(xv) repeat swallow(XVroot) maxaspect: xcftopnm "$file" | xv -ima -igeom +9000+9000 -geometry +9000+9000 - have(display) repeat swallow(display) fill: xcftopnm "$file" | display -geometry +9000+9000 - have(xli) repeat swallow(xli) fill: xcftopnm "$file" | xli -quiet - >/dev/null 2>/dev/null have(xloadimage) repeat swallow(xloadimage) fill: xcftopnm "$file" | xloadimage -quiet - >/dev/null 2>/dev/null have(xli) exits: xcftopnm "$file" | xli -quiet -windowid $window - have(xloadimage) exits: xcftopnm "$file" | xloadimage -quiet -windowid $window - have(display) exits: xcftopnm "$file" | display -window $window -backdrop - ## ## Adobe Acrobat PDF ## application/pdf: pdf: PDF file application/x-pdf: pdf: PDF file text/pdf: pdf: PDF file text/x-pdf: pdf: PDF file repeat swallow(documentShell) fill: acroread -tempFile +useFrontEndProgram -geometry +9000+9000 "$file" repeat swallow(documentShell) fill: acroexch -tempFile +useFrontEndProgram -geometry +9000+9000 "$file" repeat swallow(gv) fill: gv -safer -quiet -antialias -geometry +9000+9000 "$file" 2>/dev/null repeat swallow(xpdf) fill: xpdf -g +9000+9000 "$file" >/dev/null 2>/dev/null ## ## DVI ## application/x-dvi: dvi: DVI file repeat swallow(kviewshell) fill: kdvi -geometry +9000+9000 "$file" repeat swallow(xdvi) fill: xdvi -safer -hush -geometry +9000+9000 "$file" ## ## Adobe Postscript ## application/x-postscript: ps: PostScript file application/postscript: ps: PostScript file repeat swallow(gv) fill: gv -safer -quiet -antialias -geometry +9000+9000 "$file" 2>/dev/null repeat swallow(Ggv) fill: ggv -antialias --geometry=+9000+9000 "$file" 2>/dev/null repeat swallow(ghostview) fill: ghostview -safer -quiet -geometry +9000+9000 "$file" 2>/dev/null repeat swallow(Pageview) fill: pageview "$file" fill have(ghostscript) swallow(ghostscript): sleep 9999999 | ghostscript -q -dSAFER -dBATCH -g${xsize}x${ysize} "$file" >/dev/null 2>/dev/null fill have(gs) swallow(ghostscript): sleep 9999999 | gs -q -dSAFER -dBATCH -g${xsize}x${ysize} "$file" >/dev/null 2>/dev/null ######################## ## Office documents ## ######################## define([OO],[have(soffice) nokill exits swallow(VCLSalFrame) fill: $oohelper $1 have(ooffice) nokill exits swallow(VCLSalFrame) fill: $oohelper $1]) ## ## Word Processor ## application/rtf: rtf: Rich Text Format application/x-msword: doc, dot: Microsoft Word Document application/msword: doc, dot: Microsoft Word Document application/vnd.sun.xml.writer: sxw: OpenOffice.org Writer Document application/vnd.sun.xml.writer.template: stw: OpenOffice.org Writer Template Document application/vnd.sun.xml.writer.global: sxg: OpenOffice.org Writer Global Document application/vnd.stardivision.writer: sdw: StarWriter Document application/x-starwriter: sdw: StarWriter Document application/vnd.stardivision.writer-global: sgl: StarWriter Global Document application/wordperfect5.1: wp: WordPerfect 5.1 Document OO(writer) repeat swallow(KWord) fill: kword -geometry +9000+9000 "$file" repeat swallow(AbiWord) fill: abiword -nosplash -geometry +9000+9000 "$file" >/dev/null 2>/dev/null repeat swallow(PCFileViewer) fill: sdtpcv "$file" repeat swallow(PCFileViewer) fill: /opt/SUNWdtpcv/bin/sdtpcv "$file" ## ## Spreadsheat ## application/vnd.ms-excel: xls, xlb: Microsoft Excel Document application/vnd.sun.xml.calc: sxc: OpenOffice.org Calc Document application/vnd.sun.xml.calc.template: stc: OpenOffice.org Calc Template Document application/vnd.stardivision.calc: sdc: StarCalc Document application/x-starcalc: sdc: StarCalc Document application/vnd.lotus-1-2-3: 123, wk1: Lotus 1-2-3 Document OO(calc) repeat swallow(PluggerGnumeric) fill: gnumeric --class PluggerGnumeric "$file" repeat swallow(PCFileViewer) fill: sdtpcv "$file" repeat swallow(PCFileViewer) fill: /opt/SUNWdtpcv/bin/sdtpcv "$file" ## ## Presentations ## application/vnd.sun.xml.impress: sxi: OpenOffice.org Impress Document application/vnd.sun.xml.impress.template: sti: OpenOffice.org Impress Template Document application/vnd.stardivision.impress: sdd: StarImpress Document application/vnd.stardivision.impress-packed: sdp: StarImpress Packed Document application/x-starimpress: sdd: StarImpress Document application/vnd.ms-powerpoint: ppt: Microsoft PowerPoint Slideshow application/mspowerpoint: : Microsoft PowerPoint Slideshow OO(impress) ## ## Squiggels ## application/vnd.sun.xml.draw: sxd: OpenOffice.org Draw Document application/vnd.sun.xml.draw.template: std: OpenOffice.org Draw Template Document application/vnd.stardivision.draw: sda: StarDraw Document application/x-stardraw: sda: StarDraw Document OO(draw) ## ## Math? ## application/vnd.sun.xml.math: sxm: OpenOffice.org Math Document application/vnd.stardivision.math: smf: StarMath Document application/x-starmath: smf: StarMath Document OO(math) ############################### ### Misc ### ############################### ## ## Molecules ## chemical/x-pdb: pdb: Protein Data Bank file model/x-pdb: pdb: Protein Data Bank file swallow(molecule) fill: /usr/X11R6/lib/xscreensaver/molecule -delay 20000 -geometry +9000+9000 -no-spin -molecule "$file" swallow(molecule) fill: /usr/local/lib/xscreensaver/molecule -delay 20000 -geometry +9000+9000 -no-spin -molecule "$file" swallow(molecule) fill: /usr/lib/xscreensaver/molecule -delay 20000 -geometry +9000+9000 -no-spin -molecule "$file" swallow(molecule) fill: molecule -delay 20000 -geometry +9000+9000 -no-spin -molecule "$file" ## ## Virtual Reality Modeling Language - VRML ## model/vrml:vrl,vrml:Virtual Reality Modeling Language model/x-vrml:vrl:Virtual Reality Modeling Language world/vrml:vrl,vrml:Virtual Reality Modeling Language world/x-vrml:vrl:Virtual Reality Modeling Language x-world/vrml:vrl,vrml:Virtual Reality Modeling Language x-world/x-vrml:vrl:Virtual Reality Modeling Language swallow(VRweb Scene Viewer) fill: vrweb -geometry +9000+9000 -URL "$url" "$file" >/dev/null 2>/dev/null ## ## Bittorrent files ## application/bittorrent:torrent:Bittorrent application/x-bittorrent:torrent:Bittorrent have(btdownloadcurses.py) swallow(plugger-bt) fill: xterm -geometry +9000+9000 -T plugger-bt -e 'btdownloadcurses.py --responsefile "$file"' ## ## DWIM (Do What I Mean) ## These lines allow plugger to display some documents which have ## the wrong mime-type. You can also add application/octet-stream here ## if you really don't like those pesky download windows. ## #text/plain::For files with the wrong type #plain/text::For files with the wrong type # :internal:dwim # have(less) swallow(plugger-text) fill: xterm -geometry +9000+9000 -T plugger-text -e 'less "$file"' # have(more) swallow(plugger-text) fill: xterm -geometry +9000+9000 -T plugger-text -e 'more "$file"' ## ## MAN pages ## application/x-troff-man:man:MAN pages have(nroff) have(less) have(less) swallow(plugger-text) fill: xterm -geometry +9000+9000 -T plugger-text -e 'nroff -man -name "$file" | less' have(nroff) have(more) have(less) swallow(plugger-text) fill: xterm -geometry +9000+9000 -T plugger-text -e 'nroff -man -name "$file" | more'