prezto/modules/screen/init.zsh
Gaelan D'costa 7c33f7d24d Don't attempt to enter screen/tmux environment when in Emacs
If launching Emacs from outside an interactive shell (say from Upstart,
Gnome3, an OS X .app bundle), $TMUX and $STY won't be set. We shouldn't
launch ssh/tmux when running emacs, because emacs can't handle the
termcaps of such multiplexers.

Emacs sets $INSIDE_EMACS and (on older versions) $EMACS, so if those are
set we won't attempt to autostart a tmux/screen session.
2014-02-17 18:20:46 -05:00

43 lines
886 B
Bash

#
# Defines GNU Screen aliases and provides for auto launching it at start-up.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Georges Discry <georges@discry.be>
#
# Return if requirements are not found.
if (( ! $+commands[screen] )); then
return 1
fi
#
# Auto Start
#
if [[ -z "$STY" && ( -n "$INSIDE_EMACS" || -n "$EMACS") ]] && ( \
( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' remote ) ||
( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' local ) \
); then
session="$(
screen -list 2> /dev/null \
| sed '1d;$d' \
| awk '{print $1}' \
| head -1)"
if [[ -n "$session" ]]; then
exec screen -x "$session"
else
exec screen -a -A -U -D -R -m "$SHELL" -l
fi
fi
#
# Aliases
#
alias scr='screen'
alias scrl='screen -list'
alias scrn='screen -U -S'
alias scrr='screen -a -A -U -D -R'