Here's how us old farts do it: #! /bin/sh #*********************************************************************** ***** #*********************************************************************** ***** # # Install this script as "~/bin/hide" with 0755 permissions. # # trap 'rm -f /tmp/hide$$; exit 1' 1 2 3 15 # PROG=`basename $0` VERSION="1.0" # VERSION="$Id$" USAGE="eval echo usage: $PROG [options] application; grep \"^#@\" $0 |\ sed s/#@//; exit 1" #@ hide app => hide specified application "app" #@ hide -a[ll] => hide all applications but the Finder #@ hide -a[ll] app => hide all but specified application #@ hide -r[eveal] => reveal all applications #@ hide -r[eveal] app => reveal specified application #@ hide -v[ersion] => print version and exit #@ hide => print this usage message # Validate command line arguments. CMDLINE=$* until test -z "$1" ; do case $1 in -a*) CSTR="every process whose visible is true and name is not \"Finder\" to false";; -r*) CSTR="every process whose visible is false to true";; -v) echo ${VERSION}; exit 0;; -*) $USAGE;; *) APPLICATION="$*"; break;; esac shift done [ "${CSTR}" -o "${APPLICATION}" ] || $USAGE if [ "${APPLICATION}" ] ; then CSTR="application process \"${APPLICATION}\" to false" set -- $CMDLINE until test -z "$1" ; do case $1 in -a*) CSTR="every process whose visible is true and name is not \"${APPLICATION}\" " ;; -r*) CSTR="application process \"${APPLICATION}\" to true";; *) break;; esac shift done osascript<<XXX tell application "Finder" if exists application process "${APPLICATION}" then set visible of ${CSTR} end if end tell XXX else osascript<<YYY tell application "Finder" set visible of ${CSTR} end tell YYY fi