Said Nick Wilson on Wed, Feb 20, 2002 at 03:14:14PM +0100:

> I regularly use urlview and lynx with mutt but am frustrated because
> I've not been able to work out how to avoid having to manually type in
> the URL when I want to view something in a graphical browser. Hummph!

Attached are my ~/.urlview and ~/bin/url_handler.sh files.  I think I
got them from the global settings and just modified them as necessary
(this is a Debian system).  You will note in the browser specification
that a graphical browser (konqueror) is specified first, then a text one
(lynx).  If it can't handle a graphical browser (due to an unforwarded
remote SSH session or similar), then it will fall back to the text one. 

-- 
[!] Justin R. Miller <[EMAIL PROTECTED]>
    PGP 0xC9C40C31 -=- http://codesorcery.net

    http://www.cnn.com/2002/US/02/19/gen.strategic.influence/index.html

# regular expression to use to match URLs
REGEXP (((http|https|ftp|gopher)|mailto):(//)?[^ <>"\t]*|www\.[-a-z0-9.]+)[^ 
.,;\t<">\):]

# command to invoke for selected URL
COMMAND $HOME/bin/url_handler.sh

#! /bin/bash

#   Copyright (c) 1998  Martin Schulze <[EMAIL PROTECTED]>
#   Slightly modified by Luis Francisco Gonzalez <[EMAIL PROTECTED]>

#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.

#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

###########################################################################
# Configurable section
###########################################################################
#
# Any entry in the lists of programs that urlview handler will try out will
# be made of /path/to/program + ':' + TAG where TAG is one of
# PW: XWindows program intended to live on after urlview's caller exits.
# XW: XWindows program
# XT: Launch with an xterm if possible or as VT if not
# VT: Launch in the same terminal

# The lists of programs to be executed are
https_prgs="/usr/bin/konqueror:PW /usr/bin/lynx:VT"
http_prgs="/usr/bin/konqueror:PW /usr/bin/lynx:VT" 
mailto_prgs="/usr/bin/mutt:VT /usr/bin/mail:VT"
ftp_prgs="/usr/bin/ncftp:VT /usr/bin/lynx:VT"

# Program used as an xterm (if it doesn't support -T you'll need to change
# the command line in getprg)
XTERM=/usr/bin/x-terminal-emulator


###########################################################################
# Change bellow this at your own risk
###########################################################################
function getprg()
{
    local ele tag prog

    for ele in $*
    do
	tag=${ele##*:}
	prog=${ele%%:*}
	if [ -x $prog ]; then
	    case $tag in
	    PW) [ -n "$DISPLAY" ] && echo "P:$prog" && return 0
	    	;;
	    XW)
		[ -n "$DISPLAY" ] && echo "X:$prog" && return 0
		;;
	    XT)
		[ -n "$DISPLAY" ] && [ -x "$XTERM" ] && \
		    echo "X:$XTERM -e $prog" && return 0
		echo "$prog" && return 0
		;;
	    VT)
		echo "$prog" && return 0
		;;
	    esac
	fi
    done
}

url=$1; shift

type=${url%%:*}

if [ "$url" = "$type" ]; then
    type=${url%%.*}
    case $type in
    www|web)
	type=http
	;;
    esac
    url=$type://$url
fi

case $type in
https)
    prg=`getprg $https_prgs`
    ;;
http)
    prg=`getprg $http_prgs`
    ;;
ftp)
    prg=`getprg $ftp_prgs`
    ;;
mailto)
    prg=`getprg $mailto_prgs`
    url=${url#mailto:}
    ;;
gopher)
    prg=`getprg $gopher_prgs`
    ;;
*)
    echo "Unknown URL type.  Please report URL and viewer to"
    echo "[EMAIL PROTECTED]"
    echo -n "Press enter to continue.."; read x
    exit
    ;;
esac

if [ -n "$prg" ]; then
   if [ "${prg%:*}" = "P" ]; then
    nohup ${prg#*:} $url 2>/dev/null 1>/dev/null &
   elif [ "${prg%:*}" = "X" ]; then
    ${prg#*:} $url 2>/dev/null &
   else
    $prg $url
   fi
fi




Attachment: msg24596/pgp00000.pgp
Description: PGP signature

Reply via email to