summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--themes/agnoster.zsh-theme32
1 files changed, 25 insertions, 7 deletions
diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme
index ee0c2afb8..e54346acf 100644
--- a/themes/agnoster.zsh-theme
+++ b/themes/agnoster.zsh-theme
@@ -7,6 +7,9 @@
#
# In order for this theme to render correctly, you will need a
# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts).
+# Make sure you have a recent version: the code points that Powerline
+# uses changed in 2012, and older versions will display incorrectly,
+# in confusing ways.
#
# In addition, I recommend the
# [Solarized theme](https://github.com/altercation/solarized/) and, if you're
@@ -27,12 +30,21 @@
CURRENT_BG='NONE'
-# Fix odd char on mac
-if [[ `uname` == 'Darwin' ]]; then
- SEGMENT_SEPARATOR='\ue0b0'
-else
- SEGMENT_SEPARATOR=''
-fi
+# Special Powerline characters
+
+() {
+ local LC_ALL="" LC_CTYPE="en_US.UTF-8"
+ # NOTE: This segment separator character is correct. In 2012, Powerline changed
+ # the code points they use for their special characters. This is the new code point.
+ # If this is not working for you, you probably have an old version of the
+ # Powerline-patched fonts installed. Download and install the new version.
+ # Do not submit PRs to change this unless you have reviewed the Powerline code point
+ # history and have new information.
+ # This is defined using a Unicode escape sequence so it is unambiguously readable, regardless of
+ # what font the user is viewing this source code in. Do not replace the
+ # escape sequence with a single literal character.
+ SEGMENT_SEPARATOR=$'\ue0b0' # 
+}
# Begin a segment
# Takes two arguments, background and foreground. Both can be omitted,
@@ -73,6 +85,12 @@ prompt_context() {
# Git: branch/detached head, dirty status
prompt_git() {
+
+ local PL_BRANCH_CHAR
+ () {
+ local LC_ALL="" LC_CTYPE="en_US.UTF-8"
+ PL_BRANCH_CHAR=$'\ue0a0' # 
+ }
local ref dirty mode repo_path
repo_path=$(git rev-parse --git-dir 2>/dev/null)
@@ -104,7 +122,7 @@ prompt_git() {
zstyle ':vcs_info:*' formats ' %u%c'
zstyle ':vcs_info:*' actionformats ' %u%c'
vcs_info
- echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }${mode}"
+ echo -n "${ref/refs\/heads\//$PL_BRANCH_CHAR }${vcs_info_msg_0_%% }${mode}"
fi
}