+
+# RUN COMMANDS
+
+# If not already in screen reattach to a running session or create a new one.
+# This also starts screen one a remote server when connecting through ssh.
+if [[ $TERM != dumb && -z $STY ]]; then
+ # Get running detached sessions.
+ session=$(screen -list | grep 'Detached' | awk '{ print $1; exit }')
+
+ # As we exec later we have to set the title here.
+ window_preexec "screen"
+
+ # Create a new session if none is running.
+ if [[ -z $session ]]; then
+ exec screen
+ # Reattach to a running session.
+ else
+ exec screen -r $session
+ fi
+fi
+
+