aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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