Everything is nicely scripted in .bashrc.screen:
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
if [[ "$IN_THE_SCREEN" != "TRUE" ]]; then
export IN_THE_SCREEN="TRUE"
exec screen -xRR -S main
fi
As I use bash as a default shell, I plug this code into .bashrc with just one line:
[ -f "$HOME/.bashrc.screen" ] && source "$HOME/.bashrc.screen"
This way I don't have to remember about running screen manually which obviously has many advantages. And I can connect/disconnect from multiple locations and work on one default session without disconnecting any ssh client already connected. It's like remote desktop session - only for shell account.