On date Wednesday 2007-01-17 09:55:33 -0500, Kyle Wheeler muttered: > On Wednesday, January 17 at 03:34 PM, quoth Stefano Sabatini: > >When I try to view a text/html attachment I get from my browser a > >similiar message: > > > >File "/home/sds/tmp/muttIVsHqg" not found. > >Check the location of the file and try again. > > > >I checked for the named file and I effectively couldn't find it. > >I have no auto_view commands in my muttrc and have this line in my > >~/.mailcap: > > > >text/html; /usr/bin/epiphany --new-tab %s > > Mutt deletes the temporary file whenever the helper program exits, so > that temporary files don't build up and lay around. If epiphany is > just sending the URL to the "master" program and exiting, then that's > what's going on. > > The solution is to do something like make a script to copy the > temporary file elsewhere, or to make the helper program not exit right > away, or to make mutt think there will be something to view (e.g. add > "copiousoutput" to your mailcap file).
So thanks Kyle you're right. I've tried both the copiousoutput solution (mutt will wait for the user to press a key while displaying an empty pager until the user will press the exit key, mutt will delete the temporary file and the browser won't be able to display it anymore), and this (somehow circonvoluted, but more closed to what I want since I don't want to change the usual mailcap behaviour) scripting solution. Now I have in my mailcap: text/html; ~/bin/web-browse %s and in ~/bin/web-browse: #! /bin/bash file=$1 # textual session if [ -z "display" ]; then links $file exit $? fi # graphical session # if this script is run by mutt (the parent process is mutt) if ps -u $USER -o pid,command | grep -q "$PPID *mutt"; then tmp_file=~/tmp/mutt-$$-$(date +%s) mv $file $tmp_file file=$tmp_file fi if ps -u $USER -o command | grep -q "sawfish"; then sawfish-client -q -e "(select-workspace web-workspace-num)" epiphany --new-tab $file else epiphany --new-tab $file fi In this way the script will mv the HTML file in a temporary file with a unique name and exit, while epiphany will continue to see the file (mutt will try to delete the original file which doesn't exist anymore, but it seems without complaining). The temporary file will be then automatically cleaned by a periodic cron script. Cheers -- Stefano Sabatini Linux user number 337176 (see http://counter.li.org)