#!/bin/sh plumbfirefox() { echo ' tell application "Firefox" activate tell application "System Events" tell process "firefox" keystroke "t" using {command down} end tell end tell Get URL "'$1'" end tell ' | osascript } plumbsafari() { echo ' tell application "Safari" activate tell application "System Events" tell process "safari" keystroke "t" using {command down} end tell end tell open location "'$1'" end tell ' | osascript } plumbapple() { case ${BROWSER:-none} in firefox) plumbfirefox "$@" ;; safari) plumbsafari "$@" ;; none) if [ -d /Applications/Firefox.app ] then plumbfirefox "$@" else plumbsafari "$@" fi ;; esac } plumbunix() { case "${BROWSER:=firefox}" in # Other browsers here # ... *opera*) $BROWSER -remote 'openURL('"$i"',new-page)' ;; *firebird*) $BROWSER -remote 'openURL('"$i"',new-window)' ;; *firefox*) $BROWSER -remote 'openURL('"$i"',new-tab)' || $BROWSER "$i" ;; *mozilla*) $BROWSER -remote 'openURL('"$i"',new-tab)' || $BROWSER "$i" ;; esac } plumb1() { case `uname` in Darwin) plumbapple "$@" ;; *) plumbunix "$@" ;; esac } if [ $# = 0 ] then plumb1 about:blank else for i do if [ -f "$i" ] then p=`pwd` i=`echo $i | sed 's/ /%20/g'` i=`cleanname -d $p $i` i=file://$i else i=`echo $i | tr -d ' '` fi plumb1 $i done fi case $BROWSER in *opera*) $BROWSER -remote 'raise()' esac