From 3989834bfef217115dc2ceb20cfbd6f3ac717756 Mon Sep 17 00:00:00 2001
From: Tim Smith <tim.dolores@gmail.com>
Date: Thu, 14 Jun 2018 21:41:13 -0600
Subject: Hide one-space indent at right margin

ZSH displays the right prompt indented one space from the right
margin. This can be tweaked with ZLE_RPROMPT_INDENT=0, but that
makes display problems very likely and I don't recommend it. But
all is not lost.

The %E prompt format does continue the current background color
through that last indent space. So it can *look* like our prompt
goes right up to the margin, if:
1) We remove the trailing space from the last segment, and
2) We add %E before clearing the background color
---
 powerlevel9k.zsh-theme | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 0e09ef03..61dfdba0 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -222,6 +222,12 @@ right_prompt_segment() {
   [[ -n "$4" ]] && fg="%F{$4}" || fg="%f"
 
   # If CURRENT_RIGHT_BG is "NONE", we are the first right segment.
+
+  if [[ "$CURRENT_RIGHT_BG" != "NONE" ]]; then
+    # This is the closing whitespace for the previous segment
+    echo -n "${POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS}%f"
+  fi
+
   if [[ $joined == false ]] || [[ "$CURRENT_RIGHT_BG" == "NONE" ]]; then
     if isSameColor "$CURRENT_RIGHT_BG" "$3"; then
       # Middle segment with same color as previous segment
@@ -257,7 +263,7 @@ right_prompt_segment() {
   # Print segment content if there is any
   [[ -n "$5" ]] && echo -n "${5}"
   # Print the visual identifier
-  echo -n "${visual_identifier}${POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS}%f"
+  echo -n "${visual_identifier}"
 
   CURRENT_RIGHT_BG=$3
   last_right_element_index=$current_index
@@ -1484,6 +1490,9 @@ build_right_prompt() {
 
     index=$((index + 1))
   done
+
+  # Clear to the end of the line
+  echo -n "%E"
 }
 
 powerlevel9k_preexec() {
-- 
cgit v1.2.3