aboutsummaryrefslogtreecommitdiff
path: root/bash
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-11-30 10:48:14 +1300
committerTom Ryder <tom@sanctum.geek.nz>2016-11-30 10:48:14 +1300
commit8b4f5774b59398b964e9dce0866068f14744d631 (patch)
treebff19be02fc68063d9fb0c7f7eb22916d224c228 /bash
parentOnly add > starting from SHLVL=2 (diff)
downloaddotfiles-8b4f5774b59398b964e9dce0866068f14744d631.tar.gz
dotfiles-8b4f5774b59398b964e9dce0866068f14744d631.zip
Handle tmux sessions showing SHLVL properly
Diffstat (limited to 'bash')
-rw-r--r--bash/bashrc7
-rw-r--r--bash/bashrc.d/prompt.bash6
2 files changed, 10 insertions, 3 deletions
diff --git a/bash/bashrc b/bash/bashrc
index 088182ef..57d4bcf6 100644
--- a/bash/bashrc
+++ b/bash/bashrc
@@ -81,6 +81,13 @@ if ((BASH_VERSINFO[0] >= 4)) ; then
((BASH_VERSINFO[1] >= 3)) && shopt -s direxpand
fi
+# Set a SHLVL-derived value that takes tmux into account. This is used to show
+# the current SHLVL in the prompt
+if [[ -n $TMUX && -z $TMUX_SHLVL ]] ; then
+ TMUX_SHLVL=$((SHLVL - 1))
+ export TMUX_SHLVL
+fi
+
# Load Bash-specific startup files
for sh in "$HOME"/.bashrc.d/*.bash ; do
[[ -e $sh ]] && source "$sh"
diff --git a/bash/bashrc.d/prompt.bash b/bash/bashrc.d/prompt.bash
index 84cdf584..7058f4c3 100644
--- a/bash/bashrc.d/prompt.bash
+++ b/bash/bashrc.d/prompt.bash
@@ -32,9 +32,9 @@ prompt() {
PS1=$PS1'\$'
# Add > signs at the front of the prompt to show the current shell
- # level
- local i
- for ((i = 1; i < SHLVL; i++)) ; do
+ # level, taking tmux sessions into account
+ local shlvl
+ for ((shlvl = SHLVL - TMUX_SHLVL; shlvl > 1; shlvl--)) ; do
PS1='>'$PS1
done