You probably want to "exec tmux new-session", or use "tmux new-session -d" instead.
Otherwise if it works it must be fine, shell script isn't meant to be elegant... :-) On Fri, Feb 26, 2010 at 09:57:39PM +1100, Trent W. Buck wrote: > Because screen doesn't implement -c like a normal shell, I can't use it > as my login shell without breaking scp(1) and suchlike. Thus for some > time I've had this in my .bash_profile: > > ## The naive "chsh -s /usr/bin/screen" breaks scp (and other things). > ## Have sh start screen automatically "when appropriate". That is, > ## 1) not in a screen window (STY); > ## 2) stdin is a tty; > ## 3) screen is installed; and > ## 4) terminal is capable of displaying screen. > ## Replace "$STY" with "$STY$SSH_CLIENT$SSH_ORIGINAL_COMMAND" to avoid > ## nesting screens when sshing (untested). > test -z "$STY" -a -t 0 && > { which screen && tput clear && tput cup && ! tput hc && ! tput os > } &>/dev/null && # ignore boring, expected error messages > { > ## If new session, start agents. > screen -ls | grep -qi 'No Sockets found' && > eval "$(twb-agents)" > ## Start screen. > exec screen -DRR > } > > The other advantage of this hack is that my login shell, stored in NIS, > remains valid on hosts where neither screen nor tmux are installed. It > is for this reason that I wish to extend the code above to auto-start > tmux, rather than simply making tmux my login shell. > > The implementation below seems to work, but I suspect it's neither > correct nor ideal. I'd appreciate any critique you care to give. Bash > and a GNU userland can be assumed, but I can't assume RECENT ones (some > hosts are still Fedora Core 1). > > test -z "$STY$TMUX" -a -t 0 && > { > which tmux &>/dev/null && > { > tmux list-sessions &>/dev/null || > { > eval "$(twb-agents)" > tmux new-session > } > exec tmux attach-session -d > } > > { which screen && tput clear && tput cup && ! tput hc && ! tput os > } &>/dev/null && # ignore boring, expected error messages > { > ## If new session, start agents. > screen -ls | grep -qi 'No Sockets found' && > eval "$(twb-agents)" > ## Start screen. > exec screen -DRR > } > } > > > PS: twb-agents is basically a NIH rewrite of Gentoo's keychain(1), see > http://twb.ath.cx/Preferences/.bin/twb-agents . > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > tmux-users mailing list > tmux-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tmux-users ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users