On Tue, 01 Apr 2008 05:37:39 +0200, Hisham <[EMAIL PROTECTED]> wrote:
> On Mon, Mar 31, 2008 at 9:23 PM, Jonatan Liljedahl <[EMAIL PROTECTED]> wrote: >> >> Hisham wrote: >> > On Mon, Mar 31, 2008 at 8:44 PM, Jonatan Liljedahl <[EMAIL PROTECTED]> >> wrote: >> >> At least mine *does* read zprofile in interactive shells: I put echo >> >> lines at the end of my .zshrc and .zprofile and when I now launch an >> >> xterm -ls I get this: >> >> >> >> reading .zprofile >> >> reading .zshrc >> >> [EMAIL PROTECTED] ~] >> > >> > Yes, but -ls turn on "login shell", so that's why .zprofile was read, >> isn't it? >> >> Yes, of course. I now see the confusion, what I was arguing against was >> the idea that interactive login shells didn't read zprofile, but perhaps >> nobody was saying this... :) >> >> An interactive non-login shell wouldn't read zprofile, that's right. But >> I'm having a hard time seeing why you would need environment variables >> without beeing logged in. And how often do you use an interactive >> non-login shell that is not started from another login shell, and need >> the env variables? "Display manager straight into X" (without login) is >> not something you would want, since the env variables wouldn't be there >> and many things wouldn't work. regardless if they are set in zprofile or >> zshrc. (zshrc is *not* always read, only on interactive shells, which a >> display manager login shell is not. >> >> This thread is starting to get ridiculous.. :) > > No, this thread is not ridiculous -- esac is! :) > > Getting this kind of shell stuff 100% right is complicated business > and threads like this are valuable because each participant brings > different aspects of knowledge to the table. > >> All I want is that login >> shells should have the proper env vars set, regardless of whether the >> shell is interactive (text prompt) or not. > > It's fair. I too find it hard to imagine a shell running that didn't > have any (grand^n for n >= 0)-parent process that was a login shell. > > My suggestion: how about this? (pseudo-shell ahead: ) > > zprofile: > export ZPROFILE_SET=1 > # export PATH and other env vars... > > zshrc: > if [ ! "$ZPROFILE_SET" = "1" ] > then > source zprofile > fi > # other interactive shell stuff: prompt style, completion, etc. > > I think this should make everyone happy, no? > Atually, I think a solution was given in the zsh user's guide posted earlier: * So, at the absolute least, you should probably surround any option * settings in /etc/zshenv with * if [[ ! -o norcs ]]; then * ... <commands to run if NO_RCS is not set, * such as setting options> ... * fi Put environment stuff into zshenv with the above "if"-wrapper. -- /Jonas Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ _______________________________________________ gobolinux-devel mailing list gobolinux-devel@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel