[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU emacs locks files modified with CVS
From: |
gebser |
Subject: |
Re: GNU emacs locks files modified with CVS |
Date: |
Wed, 17 Dec 2003 10:34:16 -0500 (EST) |
Of course everyone can set up their systems however they wish, but I
use:
export DISPLAY=$(who -lum|awk -F '(' '{print $2}'|awk -F ')' '{print $1}'):0
in my ~/.bashrc and have no problem logging in and/or running remotely
whatever X apps I want.
Because it would take a lot of thinking to hash out which is the correct
file to put this in, whether the DISPLAY is a resource or not, whether
this variable should be set for all interactive shells or just for
logins, and because I don't wish to argue any of this, I'll just say
that I disagree and believe that .bashrc *is* the proper place for
setting DISPLAY. As said at the outset, everyone can set up their
systems however they wish.
hth,
ken
At 07:42 (UTC+0100) on 17 Dec 2003 Maurizio Loreti said:
= Pepijn Kenter <kenter_remove_spam@tpd.tno.nl> writes:
=
= > gebser@speakeasy.net wrote:
= > > There's two ways which will keep/set the DISPLAY variable:
= > > First, if the DISPLAY variable is set in user1 and you do "su
= > > user2", then the environment of user1 will carry into user2. IOW,
= > > you're good. Second, if you, instead, do "su - user2", then you will
= > > have a fresh environment, that of user2. If user2's environment
= > > doesn't have the DISPLAY variable set properly, you can do this by
= > > setting this in user2's ~/.bashrc file... if user2's default shell
= > > is bash-- if you're using some other shell, consult the manpage for
= > > the proper file and command syntax for setting the environment.
= > >
= > Thanks for your reply but the .bashrc seems to me the wrong place to
= > set the DISPLAY variable.
= > If you login from another machine it won't be set properly.
=
= Correct. The right place is .bash_profile, executed at login.
=
= FWIW, this is from my own .bash_profile:
=
= ,-----
= | # Tries to figure out a correct DISPLAY environment variable
= |
= | if [ -n "$DISPLAY" ]
= | then
= | # if DISPLAY is set, we assume it is also valid; if it is not,
= | # the user may always change it later ($DISPLAY is printed at
= | # the end of the login procedure).
= |
= | REMOTE="${DISPLAY%%:*}"
= | else
= | temp0=$(who am i | awk '{print $2}')
= |
= | if [ "$temp0" = "console" ]
= | then
= | REMOTE="localhost"
= | DISPLAY=":0.0"
= | else
= | temp1=$(who --lookup | grep "$temp0 " | uniq | awk '{print $6}')
= | # Note the blank-------------------^
= | if [ -n "$temp1" ]
= | then
= | temp2=$(echo $temp1 | sed -e 's/(//' -e 's/)//')
= | temp3=$(echo $temp2 | cut -d. -f2)
= | if [ "$temp3" = "pd" ]
= | then
= | # If on host.pd.infn.it, DISPLAY="host:0.0";
= | # if not, DISPLAY="host.dom.ain:0.0"
= | REMOTE=$(echo $temp2 | cut -d. -f1)
= | else
= | REMOTE="${temp2%%:*}"
= | fi
= | DISPLAY="${REMOTE}:0.0"
= | unset temp2 temp3
= | else
= | REMOTE=""
= | DISPLAY=":0.0"
= | fi
= | unset temp1
= | fi
= | unset temp0
= | fi
= |
= | export REMOTE DISPLAY
= | echo "DISPLAY is now: $DISPLAY"
= `-----
=
=