Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

how can I invoke zsh via screen when logged in via ssh?



I use zsh as my login shell for several accounts I connect to via ssh.


My connection to these accounts is often fragile, either because they
were initiated on an iOS device or behind a satellite internet
connection.


I had a thought today that perhaps one answer would be to use
'screen(1)' as my login shell for those accounts, but then I realized
that I didn't want that to be the shell I use for local logins, just
for SSH logins.


I wondered if anyone had already done this, so I didn't have to
re-invent the wheel, or might have some experience with potential
problems that I might run into when doing this.


1) Would 'zsh' function normally when in screen(1) ?


2) I've already noticed that emacs keys don't seem to work right, i.e.
control+a does not jump to the beginning of the line, although
control+e jumps to the end of the line. Should I make some adjustment
to `bindkeys` or anything else?


3) What's the 'best' way to invoke screen(1) from .zshenv ? I already have this:


PPID_NAME=$(command ps -o 'command=' -cp ${PPID} 2>/dev/null )


case "${PPID_NAME}" in

        sshd)

                        SSH=yes

        ;;


        launchd)

                        LAUNCHD=yes

        ;;


esac


So I was going to change it to:



PPID_NAME=$(command ps -o 'command=' -cp ${PPID} 2>/dev/null )


case "${PPID_NAME}" in

        sshd)

exec =screen -r || exec =screen

        ;;


        launchd)

                        LAUNCHD=yes

        ;;


esac


which would, I believe, resume an existing `screen` session if one
existed, but would otherwise just launch `screen` anew.


Is there a better way?


Thanks in advance,


TjL




ps - bonus question: anyone know how to tell screen(1) to _not_ show
its welcome message every time it launches?



Messages sorted by: Reverse Date, Date, Thread, Author