[vox-tech] bash question

Peter Jay Salzman vox-tech@lists.lugod.org
Mon, 6 May 2002 08:55:55 -0700


mark,

i think i just stumbled onto the answer as you were typing your email.
you must have been sending me extra sensory perception messages.   :-)

i THINK this will work:

if [ "$DISPLAY" == ":0.0" ]; then
	# Kill the capslock key
	/usr/X11R6/bin/xmodmap -e "remove Lock = Caps_Lock"
fi

that is, i believe xmodmap will only execute when the non-login shell was
executed under an X server running on the same machine as the non-login
shell.

pete


begin Mark K. Kim <markslist@cbreak.org> 
> I think you can analyze the content of the $DISPLAY variable.  As I
> recall, the forwarding was set so that the display is set to :10 or
> above... or something like that (that was using the ssh from ssh.com, not
> openssh, though).  I'm not in front of a Linux box so I can't check it at
> the moment...
> 
> -Mark
> 
> On Mon, 6 May 2002, Peter Jay Salzman wrote:
> 
> > hi matt,
> >
> > unfortunately i use X forwarding alot.  i would think this situation is
> > very common.  i'm surprised the answer is so elusive!
> >
> > also, i think this solution will cause a non-fatal (but annoying)
> > message whenever i use scp (which i use 10, 20 times a day).
> >
> > pete
> >
> >
> > begin Matt Roper <matt@mattrope.com>
> > > If you aren't using X forwarding (i.e. ssh -X), I think you could check
> > > to see if $DISPLAY is set...
> > >
> > >     if [ "${DISPLAY}" != "" ]; then
> > >        shopt -s checkwinsize
> > >        xmodmap -e "remove Lock = Caps_Lock"
> > >     fi
> > >
> > >
> > > Matt
> > >
> > >
> > > On Mon, May 06, 2002 at 07:55:42AM -0700, Peter Jay Salzman wrote:
> > > > i have an xmodmap that i'd like to be run when the shell is a
> > > > non-login shell under local X.
> > > >
> > > > i thought it would be something like:
> > > >
> > > >    if [ "${TERM}" == "xterm" ]; then
> > > >       shopt -s checkwinsize
> > > >       xmodmap -e "remove Lock = Caps_Lock"
> > > >    fi
> > > >
> > > > but this suffers from ${TERM} being "xterm" when i ssh in from another
> > > > machine running X.
> > > >
> > > > how can i test for "if this shell is being run from X server running on
> > > > THIS machine"?