aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rwxr-xr-x[-rw-r--r--]functions/colors.zsh0
-rwxr-xr-x[-rw-r--r--]functions/icons.zsh72
-rwxr-xr-x[-rw-r--r--]functions/utilities.zsh47
-rwxr-xr-x[-rw-r--r--]functions/vcs.zsh0
-rwxr-xr-xpowerlevel9k.zsh-theme22
6 files changed, 139 insertions, 6 deletions
diff --git a/README.md b/README.md
index 4fb6614a..6b516c12 100644
--- a/README.md
+++ b/README.md
@@ -375,6 +375,7 @@ Customizations available are:
| Strategy Name | Description |
|---------------|-------------|
|Default|Truncate whole directories from left. How many is defined by `POWERLEVEL9K_SHORTEN_DIR_LENGTH`|
+|`truncate_absolute_chars`|Truncates an absolute number of characters from the left such that the number of characters that your path displays (with or without `POWERLEVEL9K_SHORTEN_DELIMITER`) is no more than `POWERLEVEL9K_SHORTEN_DIR_LENGTH` + the length of `POWERLEVEL9K_SHORTEN_DELIMITER` |
|`truncate_middle`|Truncates the middle part of a folder. E.g. you are in a folder named `~/MySuperProjects/AwesomeFiles/BoringOffice`, then it will truncated to `~/MyS..cts/Awe..les/BoringOffice`, if `POWERLEVEL9K_SHORTEN_DIR_LENGTH=3` is also set (controls the amount of characters to be left).|
|`truncate_from_right`|Just leaves the beginning of a folder name untouched. E.g. your folders will be truncated like so: "/ro../Pr../office". How many characters will be untouched is controlled by `POWERLEVEL9K_SHORTEN_DIR_LENGTH`.|
|`truncate_with_package_name`|Search for a `package.json` or `composer.json` and prints the `name` field to abbreviate the directory path. The precedence and/or files could be set by `POWERLEVEL9K_DIR_PACKAGE_FILES=(package.json composer.json)`. If you have [jq](https://stedolan.github.io/jq/) installed, it will dramatically improve the speed of this strategy.|
@@ -604,6 +605,7 @@ customization is provided via:
|`POWERLEVEL9K_VCS_GIT_HOOKS`|`(vcs-detect-changes git-untracked git-aheadbehind git-stash git-remotebranch git-tagname)`|Layout of the segment for git repositories.|
|`POWERLEVEL9K_VCS_HG_HOOKS`|`(vcs-detect-changes)`|Layout of the segment for Mercurial repositories.|
|`POWERLEVEL9K_VCS_SVN_HOOKS`|`(vcs-detect-changes svn-detect-changes)`|Layout of the segment for SVN repositories.|
+|`POWERLEVEL9K_VCS_ACTIONFORMAT_FOREGROUND`|`red`|The color of the foreground font during actions (e.g., `REBASE`).|
##### vcs symbols
@@ -639,6 +641,8 @@ you are using the [ZSH Line Editor](http://zsh.sourceforge.net/Doc/Release/Zsh-L
|`POWERLEVEL9K_VI_INSERT_MODE_STRING`|`"INSERT"`|String to display while in 'Insert' mode.|
|`POWERLEVEL9K_VI_COMMAND_MODE_STRING`|`"NORMAL"`|String to display while in 'Command' mode.|
+To hide the segment entirely when in `INSERT` mode, set `POWERLEVEL9K_VI_INSERT_MODE_STRING=''`
+
#### Unit Test Ratios
The `symfony2_tests` and `rspec_stats` segments both show a ratio of "real"
diff --git a/functions/colors.zsh b/functions/colors.zsh
index f421165c..f421165c 100644..100755
--- a/functions/colors.zsh
+++ b/functions/colors.zsh
diff --git a/functions/icons.zsh b/functions/icons.zsh
index 6000e108..b929f73a 100644..100755
--- a/functions/icons.zsh
+++ b/functions/icons.zsh
@@ -48,6 +48,19 @@ case $POWERLEVEL9K_MODE in
FREEBSD_ICON $'\U1F608 ' # 😈
ANDROID_ICON $'\uE270' # 
LINUX_ICON $'\uE271' # 
+ LINUX_ARCH_ICON 'Arc'
+ LINUX_DEBIAN_ICON 'Deb'
+ LINUX_UBUNTU_ICON 'Ubu'
+ LINUX_CENTOS_ICON 'Cen'
+ LINUX_COREOS_ICON 'Cor'
+ LINUX_ELEMENTARY_ICON 'Elm'
+ LINUX_MINT_ICON 'LMi'
+ LINUX_FEDORA_ICON 'Fed'
+ LINUX_GENTOO_ICON 'Gen'
+ LINUX_MAGEIA_ICON 'Mag'
+ LINUX_OPENSUSE_ICON 'OSu'
+ LINUX_SABAYON_ICON 'Sab'
+ LINUX_SLACKWARE_ICON 'Sla'
SUNOS_ICON $'\U1F31E ' # 🌞
HOME_ICON $'\uE12C' # 
HOME_SUB_ICON $'\uE18D' # 
@@ -127,6 +140,19 @@ case $POWERLEVEL9K_MODE in
FREEBSD_ICON $'\U1F608 ' # 😈
ANDROID_ICON $'\uE17B' # 
LINUX_ICON $'\uF17C' # 
+ LINUX_ARCH_ICON 'Arc'
+ LINUX_DEBIAN_ICON 'Deb'
+ LINUX_UBUNTU_ICON 'Ubu'
+ LINUX_CENTOS_ICON 'Cen'
+ LINUX_COREOS_ICON 'Cor'
+ LINUX_ELEMENTARY_ICON 'Elm'
+ LINUX_MINT_ICON 'LMi'
+ LINUX_FEDORA_ICON 'Fed'
+ LINUX_GENTOO_ICON 'Gen'
+ LINUX_MAGEIA_ICON 'Mag'
+ LINUX_OPENSUSE_ICON 'OSu'
+ LINUX_SABAYON_ICON 'Sab'
+ LINUX_SLACKWARE_ICON 'Sla'
SUNOS_ICON $'\uF185 ' # 
HOME_ICON $'\uF015' # 
HOME_SUB_ICON $'\uF07C' # 
@@ -153,7 +179,7 @@ case $POWERLEVEL9K_MODE in
VCS_GIT_GITLAB_ICON $'\uF296 ' # 
VCS_HG_ICON $'\uF0C3 ' # 
VCS_SVN_ICON '(svn) '
- RUST_ICON $'\uE6A8' # 
+ RUST_ICON $'\uE6A8' # 
PYTHON_ICON $'\ue63c' # 
SWIFT_ICON ''
GO_ICON ''
@@ -208,6 +234,19 @@ case $POWERLEVEL9K_MODE in
APPLE_ICON '\u'$CODEPOINT_OF_AWESOME_APPLE # 
FREEBSD_ICON $'\U1F608 ' # 😈
LINUX_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # 
+ LINUX_ARCH_ICON 'Arc'
+ LINUX_DEBIAN_ICON 'Deb'
+ LINUX_UBUNTU_ICON 'Ubu'
+ LINUX_CENTOS_ICON 'Cen'
+ LINUX_COREOS_ICON 'Cor'
+ LINUX_ELEMENTARY_ICON 'Elm'
+ LINUX_MINT_ICON 'LMi'
+ LINUX_FEDORA_ICON 'Fed'
+ LINUX_GENTOO_ICON 'Gen'
+ LINUX_MAGEIA_ICON 'Mag'
+ LINUX_OPENSUSE_ICON 'OSu'
+ LINUX_SABAYON_ICON 'Sab'
+ LINUX_SLACKWARE_ICON 'Sla'
SUNOS_ICON '\u'$CODEPOINT_OF_AWESOME_SUN_O' ' # 
HOME_ICON '\u'$CODEPOINT_OF_AWESOME_HOME # 
HOME_SUB_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_OPEN # 
@@ -251,6 +290,7 @@ case $POWERLEVEL9K_MODE in
'nerdfont-complete'|'nerdfont-fontconfig')
# nerd-font patched (complete) font required! See
# https://github.com/ryanoasis/nerd-fonts
+ # http://nerdfonts.com/#cheat-sheet
# Set the right locale to protect special characters
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
icons=(
@@ -281,6 +321,19 @@ case $POWERLEVEL9K_MODE in
WINDOWS_ICON $'\uF17A' # 
FREEBSD_ICON $'\UF30E ' # 
ANDROID_ICON $'\uF17B' # 
+ LINUX_ARCH_ICON $'\uF300' # 
+ LINUX_DEBIAN_ICON $'\uF302' # 
+ LINUX_UBUNTU_ICON $'\uF30C' # 
+ LINUX_CENTOS_ICON $'\uF301' # 
+ LINUX_COREOS_ICON $'\uF30F' # 
+ LINUX_ELEMENTARY_ICON $'\uF311' # 
+ LINUX_FEDORA_ICON $'\uF303' # 
+ LINUX_GENTOO_ICON $'\uF310' # 
+ LINUX_MINT_ICON $'\uF304' # 
+ LINUX_MAGEIA_ICON $'\uF306' # 
+ LINUX_OPENSUSE_ICON $'\uF308' # 
+ LINUX_SABAYON_ICON $'\uF313' # 
+ LINUX_SLACKWARE_ICON $'\uF30A' # 
LINUX_ICON $'\uF17C' # 
SUNOS_ICON $'\uF185 ' # 
HOME_ICON $'\uF015' # 
@@ -302,8 +355,8 @@ case $POWERLEVEL9K_MODE in
VCS_COMMIT_ICON $'\uE729 ' # 
VCS_BRANCH_ICON $'\uF126 ' # 
VCS_REMOTE_BRANCH_ICON $'\uE728 ' # 
- VCS_GIT_ICON $'\uF113 ' # 
- VCS_GIT_GITHUB_ICON $'\uE709 ' # 
+ VCS_GIT_ICON $'\uF1D3 ' # 
+ VCS_GIT_GITHUB_ICON $'\uF113 ' # 
VCS_GIT_BITBUCKET_ICON $'\uE703 ' # 
VCS_GIT_GITLAB_ICON $'\uF296 ' # 
VCS_HG_ICON $'\uF0C3 ' # 
@@ -357,6 +410,19 @@ case $POWERLEVEL9K_MODE in
FREEBSD_ICON 'BSD'
ANDROID_ICON 'And'
LINUX_ICON 'Lx'
+ LINUX_ARCH_ICON 'Arc'
+ LINUX_DEBIAN_ICON 'Deb'
+ LINUX_UBUNTU_ICON 'Ubu'
+ LINUX_CENTOS_ICON 'Cen'
+ LINUX_COREOS_ICON 'Cor'
+ LINUX_ELEMENTARY_ICON 'Elm'
+ LINUX_MINT_ICON 'LMi'
+ LINUX_FEDORA_ICON 'Fed'
+ LINUX_GENTOO_ICON 'Gen'
+ LINUX_MAGEIA_ICON 'Mag'
+ LINUX_OPENSUSE_ICON 'OSu'
+ LINUX_SABAYON_ICON 'Sab'
+ LINUX_SLACKWARE_ICON 'Sla'
SUNOS_ICON 'Sun'
HOME_ICON ''
HOME_SUB_ICON ''
diff --git a/functions/utilities.zsh b/functions/utilities.zsh
index b4bfb838..1f4df9bc 100644..100755
--- a/functions/utilities.zsh
+++ b/functions/utilities.zsh
@@ -103,7 +103,52 @@ case $(uname) in
;;
Linux)
OS='Linux'
- OS_ICON=$(print_icon 'LINUX_ICON')
+ os_release_id="$(grep -E '^ID=([a-zA-Z]*)' /etc/os-release | cut -d '=' -f 2)"
+ case "$os_release_id" in
+ "arch")
+ OS_ICON=$(print_icon 'LINUX_ARCH_ICON')
+ ;;
+ "debian")
+ OS_ICON=$(print_icon 'LINUX_DEBIAN_ICON')
+ ;;
+ "ubuntu")
+ OS_ICON=$(print_icon 'LINUX_UBUNTU_ICON')
+ ;;
+ "elementary")
+ OS_ICON=$(print_icon 'LINUX_ELEMENTARY_ICON')
+ ;;
+ "fedora")
+ OS_ICON=$(print_icon 'LINUX_FEDORA_ICON')
+ ;;
+ "coreos")
+ OS_ICON=$(print_icon 'LINUX_COREOS_ICON')
+ ;;
+ "gentoo")
+ OS_ICON=$(print_icon 'LINUX_GENTOO_ICON')
+ ;;
+ "mageia")
+ OS_ICON=$(print_icon 'LINUX_MAGEIA_ICON')
+ ;;
+ "centos")
+ OS_ICON=$(print_icon 'LINUX_CENTOS_ICON')
+ ;;
+ "opensuse"|"tumbleweed")
+ OS_ICON=$(print_icon 'LINUX_OPENSUSE_ICON')
+ ;;
+ "sabayon")
+ OS_ICON=$(print_icon 'LINUX_SABAYON_ICON')
+ ;;
+ "slackware")
+ OS_ICON=$(print_icon 'LINUX_SLACKWARE_ICON')
+ ;;
+ "linuxmint")
+ OS_ICON=$(print_icon 'LINUX_MINT_ICON')
+ ;;
+ *)
+ OS='Linux'
+ OS_ICON=$(print_icon 'LINUX_ICON')
+ ;;
+ esac
# Check if we're running on Android
case $(uname -o 2>/dev/null) in
diff --git a/functions/vcs.zsh b/functions/vcs.zsh
index e2e9f3a3..e2e9f3a3 100644..100755
--- a/functions/vcs.zsh
+++ b/functions/vcs.zsh
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 8eb13bde..3e587717 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -744,6 +744,11 @@ prompt_dir() {
set_default POWERLEVEL9K_SHORTEN_DELIMITER $'\U2026'
case "$POWERLEVEL9K_SHORTEN_STRATEGY" in
+ truncate_absolute_chars)
+ if [ ${#current_path} -gt $(( $POWERLEVEL9K_SHORTEN_DIR_LENGTH + ${#POWERLEVEL9K_SHORTEN_DELIMITER} )) ]; then
+ current_path=$POWERLEVEL9K_SHORTEN_DELIMITER${current_path:(-POWERLEVEL9K_SHORTEN_DIR_LENGTH)}
+ fi
+ ;;
truncate_middle)
current_path=$(echo "$current_path" | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\2\//g")
;;
@@ -1039,9 +1044,9 @@ prompt_load() {
# Replace comma
load_avg=${load_avg//,/.}
- if [[ "$load_avg" -gt $(bc -l <<< "${cores} * 0.7") ]]; then
+ if [[ "$load_avg" -gt $((${cores} * 0.7)) ]]; then
current_state="critical"
- elif [[ "$load_avg" -gt $(bc -l <<< "${cores} * 0.5") ]]; then
+ elif [[ "$load_avg" -gt $((${cores} * 0.5)) ]]; then
current_state="warning"
else
current_state="normal"
@@ -1453,6 +1458,7 @@ prompt_vi_mode() {
"$1_prompt_segment" "$0_NORMAL" "$2" "$DEFAULT_COLOR" "default" "$POWERLEVEL9K_VI_COMMAND_MODE_STRING"
;;
main|viins|*)
+ if [[ -z $POWERLEVEL9K_VI_INSERT_MODE_STRING ]]; then return; fi
"$1_prompt_segment" "$0_INSERT" "$2" "$DEFAULT_COLOR" "blue" "$POWERLEVEL9K_VI_INSERT_MODE_STRING"
;;
esac
@@ -1639,10 +1645,20 @@ $(print_icon 'MULTILINE_LAST_PROMPT_PREFIX')'
NEWLINE='
'
[[ $POWERLEVEL9K_PROMPT_ADD_NEWLINE == true ]] && PROMPT="$NEWLINE$PROMPT"
+
+ # Allow iTerm integration to work
+ [[ $ITERM_SHELL_INTEGRATION_INSTALLED == "Yes" ]] && PROMPT="%{$(iterm2_prompt_mark)%}$PROMPT"
+}
+
+
+zle-keymap-select () {
+ zle reset-prompt
+ zle -R
}
set_default POWERLEVEL9K_IGNORE_TERM_COLORS false
set_default POWERLEVEL9K_IGNORE_TERM_LANG false
+
prompt_powerlevel9k_setup() {
# The value below was set to better support 32-bit CPUs.
# It's the maximum _signed_ integer value on 32-bit CPUs.
@@ -1706,6 +1722,8 @@ prompt_powerlevel9k_setup() {
# prepare prompts
add-zsh-hook precmd powerlevel9k_prepare_prompts
add-zsh-hook preexec powerlevel9k_preexec
+
+ zle -N zle-keymap-select
}
prompt_powerlevel9k_teardown() {