Andrew DeFaria wrote: > Donald MacVicar wrote: > >>>> surely you could just have @="rxvt -ls -e bash -c \"cd '%1'; exec >>>> bash --login\"" and then all the startup scripts would be run >>>> properly? >>> >>> Nope! Because --login runs /etc/profile and /etc/profile cd's to $HOME! >> >> Realised that about 10 secs after I sent the mail. > > I know how that goes! :-) > >> how about put the --login on the first bash - i.e. txvt -ls -e bash >> --login -c ...... Just tried that and it seems to wok. > > Perhaps. Actually I'm a big advocate of putting options in > ~/.Xdefaults to make the command line for things like rxvt a lot > shorter. I already have loginShell set to true there so the -ls is > irrelevent in my situation. > > Actually does anybody know how to make this run minimized by default? > I say that because there is that annoying, flashing window that > Windows apparenlty runs cmd in to execute the contents of the command > key here. My workaround for this, WRT shortcuts say on the desktop, is > to preceed this already long command with "cmd /c start /b..." but > then set the shortcut to run minimized. So instead of a large flashing > cmd window there's a momentary blip in the taskbar that is quickly > replaced with the rxvt entry. BTW the /c is equivalent to -c and > start's /b option says don't open a cmd window for this command.
Actual experiementation shows me that both are needed! you need --login on the first bash so that /etc/profile gets executed. The -c then executes putting you in the right directory. The "; exec bash" is needed so that the -c command doesn't complete. If it did then bash would exit and you'd just have a flicker on the screen. In this new exec'ed bash there has been no indication to bash that you want any start up scripts to be processed. Putting --login on the second exec'ed bash gets you back to the same problem since /etc/profile does a cd "$HOME". Yet without any startup scripts running your enviornment is less than ideal. So you need -rcfile ~/.bash_login on the second, exec'ed bash so run your rcfile. To recap, for bare bones Windows window execution you need: bash --login -c "cd '%1'; exec bash -rcfile ~/.bash_login" For an rxvt window do: rxvt -e bash --login -c "cd '%1'; exec bash -rcfile ~/.bash_login" -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/