From aac0c90c87127510e8e1206059e493a8272a784d Mon Sep 17 00:00:00 2001 From: Robin Date: Sat, 23 Nov 2013 04:23:56 -0800 Subject: [PATCH] Don't override customized environments in subshells Only set up environment for top-level shells, and allow it to be inherited normally. Top level shells are usually login shells, but can also be non-interactive non-login shells in certain cases, such as when executing an ssh remote command. --- runcoms/zprofile | 71 +++++++++++++++++++++++++++++++++++++++++++++++- runcoms/zshenv | 70 ++--------------------------------------------- 2 files changed, 73 insertions(+), 68 deletions(-) diff --git a/runcoms/zprofile b/runcoms/zprofile index 2a3d07e6..8599cec2 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -1,7 +1,76 @@ # -# Executes commands at login pre-zshrc. +# Executes commands for top-level shells, pre-zshrc. # # Authors: # Sorin Ionescu # +# +# Browser +# + +if [[ "$OSTYPE" == darwin* ]]; then + export BROWSER='open' +fi + +# +# Editors +# + +export EDITOR='nano' +export VISUAL='nano' +export PAGER='less' + +# +# Language +# + +if [[ -z "$LANG" ]]; then + export LANG='en_US.UTF-8' +fi + +# +# Paths +# + +typeset -gU cdpath fpath mailpath path + +# Set the the list of directories that cd searches. +# cdpath=( +# $cdpath +# ) + +# Set the list of directories that Zsh searches for programs. +path=( + /usr/local/{bin,sbin} + $path +) + +# +# Less +# + +# Set the default Less options. +# Mouse-wheel scrolling has been disabled by -X (disable screen clearing). +# Remove -X and -F (exit if the content fits on one screen) to enable it. +export LESS='-F -g -i -M -R -S -w -X -z-4' + +# Set the Less input preprocessor. +if (( $+commands[lesspipe.sh] )); then + export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-' +fi + +# +# Temporary Files +# + +if [[ ! -d "$TMPDIR" ]]; then + export TMPDIR="/tmp/$USER" + mkdir -p -m 700 "$TMPDIR" +fi + +TMPPREFIX="${TMPDIR%/}/zsh" +if [[ ! -d "$TMPPREFIX" ]]; then + mkdir -p "$TMPPREFIX" +fi + diff --git a/runcoms/zshenv b/runcoms/zshenv index 9ff39e06..3b482a26 100644 --- a/runcoms/zshenv +++ b/runcoms/zshenv @@ -5,72 +5,8 @@ # Sorin Ionescu # -# -# Browser -# - -if [[ "$OSTYPE" == darwin* ]]; then - export BROWSER='open' -fi - -# -# Editors -# - -export EDITOR='nano' -export VISUAL='nano' -export PAGER='less' - -# -# Language -# - -if [[ -z "$LANG" ]]; then - export LANG='en_US.UTF-8' -fi - -# -# Paths -# - -typeset -gU cdpath fpath mailpath path - -# Set the the list of directories that cd searches. -# cdpath=( -# $cdpath -# ) - -# Set the list of directories that Zsh searches for programs. -path=( - /usr/local/{bin,sbin} - $path -) - -# -# Less -# - -# Set the default Less options. -# Mouse-wheel scrolling has been disabled by -X (disable screen clearing). -# Remove -X and -F (exit if the content fits on one screen) to enable it. -export LESS='-F -g -i -M -R -S -w -X -z-4' - -# Set the Less input preprocessor. -if (( $+commands[lesspipe.sh] )); then - export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-' -fi - -# -# Temporary Files -# - -if [[ ! -d "$TMPDIR" ]]; then - export TMPDIR="/tmp/$USER" - mkdir -p -m 700 "$TMPDIR" -fi - -TMPPREFIX="${TMPDIR%/}/zsh" -if [[ ! -d "$TMPPREFIX" ]]; then - mkdir -p "$TMPPREFIX" +# Treat top-level shells as "login" shells. +if [[ $SHLVL == 1 && ! -o LOGIN ]]; then + source "${ZDOTDIR:-$HOME}/.zprofile" fi