diff options
Diffstat (limited to 'functions')
-rwxr-xr-x | functions/colors.zsh | 297 | ||||
-rwxr-xr-x | functions/icons.zsh | 593 | ||||
-rwxr-xr-x | functions/utilities.zsh | 142 | ||||
-rwxr-xr-x | functions/vcs.zsh | 165 |
4 files changed, 0 insertions, 1197 deletions
diff --git a/functions/colors.zsh b/functions/colors.zsh deleted file mode 100755 index d8b7cbe8..00000000 --- a/functions/colors.zsh +++ /dev/null @@ -1,297 +0,0 @@ -# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 -################################################################ -# Color functions -# This file holds some color-functions for -# the powerlevel9k-ZSH-theme -# https://github.com/bhilburn/powerlevel9k -################################################################ - -# https://jonasjacek.github.io/colors/ -# use color names by default to allow dark/light themes to adjust colors based on names -typeset -gAh __P9K_COLORS=( - black 000 - red 001 - green 002 - yellow 003 - blue 004 - magenta 005 - cyan 006 - white 007 - grey 008 - maroon 009 - lime 010 - olive 011 - navy 012 - fuchsia 013 - purple 013 - aqua 014 - teal 014 - silver 015 - grey0 016 - navyblue 017 - darkblue 018 - blue3 019 - blue3 020 - blue1 021 - darkgreen 022 - deepskyblue4 023 - deepskyblue4 024 - deepskyblue4 025 - dodgerblue3 026 - dodgerblue2 027 - green4 028 - springgreen4 029 - turquoise4 030 - deepskyblue3 031 - deepskyblue3 032 - dodgerblue1 033 - green3 034 - springgreen3 035 - darkcyan 036 - lightseagreen 037 - deepskyblue2 038 - deepskyblue1 039 - green3 040 - springgreen3 041 - springgreen2 042 - cyan3 043 - darkturquoise 044 - turquoise2 045 - green1 046 - springgreen2 047 - springgreen1 048 - mediumspringgreen 049 - cyan2 050 - cyan1 051 - darkred 052 - deeppink4 053 - purple4 054 - purple4 055 - purple3 056 - blueviolet 057 - orange4 058 - grey37 059 - mediumpurple4 060 - slateblue3 061 - slateblue3 062 - royalblue1 063 - chartreuse4 064 - darkseagreen4 065 - paleturquoise4 066 - steelblue 067 - steelblue3 068 - cornflowerblue 069 - chartreuse3 070 - darkseagreen4 071 - cadetblue 072 - cadetblue 073 - skyblue3 074 - steelblue1 075 - chartreuse3 076 - palegreen3 077 - seagreen3 078 - aquamarine3 079 - mediumturquoise 080 - steelblue1 081 - chartreuse2 082 - seagreen2 083 - seagreen1 084 - seagreen1 085 - aquamarine1 086 - darkslategray2 087 - darkred 088 - deeppink4 089 - darkmagenta 090 - darkmagenta 091 - darkviolet 092 - purple 093 - orange4 094 - lightpink4 095 - plum4 096 - mediumpurple3 097 - mediumpurple3 098 - slateblue1 099 - yellow4 100 - wheat4 101 - grey53 102 - lightslategrey 103 - mediumpurple 104 - lightslateblue 105 - yellow4 106 - darkolivegreen3 107 - darkseagreen 108 - lightskyblue3 109 - lightskyblue3 110 - skyblue2 111 - chartreuse2 112 - darkolivegreen3 113 - palegreen3 114 - darkseagreen3 115 - darkslategray3 116 - skyblue1 117 - chartreuse1 118 - lightgreen 119 - lightgreen 120 - palegreen1 121 - aquamarine1 122 - darkslategray1 123 - red3 124 - deeppink4 125 - mediumvioletred 126 - magenta3 127 - darkviolet 128 - purple 129 - darkorange3 130 - indianred 131 - hotpink3 132 - mediumorchid3 133 - mediumorchid 134 - mediumpurple2 135 - darkgoldenrod 136 - lightsalmon3 137 - rosybrown 138 - grey63 139 - mediumpurple2 140 - mediumpurple1 141 - gold3 142 - darkkhaki 143 - navajowhite3 144 - grey69 145 - lightsteelblue3 146 - lightsteelblue 147 - yellow3 148 - darkolivegreen3 149 - darkseagreen3 150 - darkseagreen2 151 - lightcyan3 152 - lightskyblue1 153 - greenyellow 154 - darkolivegreen2 155 - palegreen1 156 - darkseagreen2 157 - darkseagreen1 158 - paleturquoise1 159 - red3 160 - deeppink3 161 - deeppink3 162 - magenta3 163 - magenta3 164 - magenta2 165 - darkorange3 166 - indianred 167 - hotpink3 168 - hotpink2 169 - orchid 170 - mediumorchid1 171 - orange3 172 - lightsalmon3 173 - lightpink3 174 - pink3 175 - plum3 176 - violet 177 - gold3 178 - lightgoldenrod3 179 - tan 180 - mistyrose3 181 - thistle3 182 - plum2 183 - yellow3 184 - khaki3 185 - lightgoldenrod2 186 - lightyellow3 187 - grey84 188 - lightsteelblue1 189 - yellow2 190 - darkolivegreen1 191 - darkolivegreen1 192 - darkseagreen1 193 - honeydew2 194 - lightcyan1 195 - red1 196 - deeppink2 197 - deeppink1 198 - deeppink1 199 - magenta2 200 - magenta1 201 - orangered1 202 - indianred1 203 - indianred1 204 - hotpink 205 - hotpink 206 - mediumorchid1 207 - darkorange 208 - salmon1 209 - lightcoral 210 - palevioletred1 211 - orchid2 212 - orchid1 213 - orange1 214 - sandybrown 215 - lightsalmon1 216 - lightpink1 217 - pink1 218 - plum1 219 - gold1 220 - lightgoldenrod2 221 - lightgoldenrod2 222 - navajowhite1 223 - mistyrose1 224 - thistle1 225 - yellow1 226 - lightgoldenrod1 227 - khaki1 228 - wheat1 229 - cornsilk1 230 - grey100 231 - grey3 232 - grey7 233 - grey11 234 - grey15 235 - grey19 236 - grey23 237 - grey27 238 - grey30 239 - grey35 240 - grey39 241 - grey42 242 - grey46 243 - grey50 244 - grey54 245 - grey58 246 - grey62 247 - grey66 248 - grey70 249 - grey74 250 - grey78 251 - grey82 252 - grey85 253 - grey89 254 - grey93 255 -) - -# For user convenience: type `getColorCode background` or `getColorCode foreground` to see -# the list of predefined colors. -function getColorCode() { - if (( ARGC == 1 )); then - case $1 in - foreground) - local k - for k in "${(k@)__P9K_COLORS}"; do - local v=${__P9K_COLORS[$k]} - print -P "%F{$v}$v - $k%f" - done - return - ;; - background) - local k - for k in "${(k@)__P9K_COLORS}"; do - local v=${__P9K_COLORS[$k]} - print -P "%K{$v}$v - $k%k" - done - return - ;; - esac - fi - echo "Usage: getColorCode background|foreground" >&2 - return 1 -} diff --git a/functions/icons.zsh b/functions/icons.zsh deleted file mode 100755 index 64f6a04e..00000000 --- a/functions/icons.zsh +++ /dev/null @@ -1,593 +0,0 @@ -# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 -################################################################ -# icons -# This file holds the icon definitions and -# icon-functions for the powerlevel9k-ZSH-theme -# https://github.com/bhilburn/powerlevel9k -################################################################ - -# These characters require the Powerline fonts to work properly. If you see -# boxes or bizarre characters below, your fonts are not correctly installed. If -# you do not want to install a special font, you can set `POWERLEVEL9K_MODE` to -# `compatible`. This shows all icons in regular symbols. - -# Initialize the icon list according to the user's `POWERLEVEL9K_MODE`. -typeset -gAH icons - -set_default POWERLEVEL9K_HIDE_BRANCH_ICON false -set_default POWERLEVEL9K_MODE "" - -typeset -gi _P9K_ICONS_INITIALIZED=0 - -function _p9k_init_icons() { - (( _P9K_ICONS_INITIALIZED )) && return - _P9K_ICONS_INITIALIZED=1 - - case $POWERLEVEL9K_MODE in - 'flat'|'awesome-patched') - # Awesome-Patched Font required! See: - # https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched - # Set the right locale to protect special characters - local LC_ALL="" LC_CTYPE="en_US.UTF-8" - icons=( - RULER_CHAR $'\u2500' # ─ - LEFT_SEGMENT_SEPARATOR $'\uE0B0' # - RIGHT_SEGMENT_SEPARATOR $'\uE0B2' # - LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace - RIGHT_SEGMENT_END_SEPARATOR '' - LEFT_SUBSEGMENT_SEPARATOR $'\uE0B1' # - RIGHT_SUBSEGMENT_SEPARATOR $'\uE0B3' # - CARRIAGE_RETURN_ICON $'\u21B5' # ↵ - ROOT_ICON $'\uE801' # - SUDO_ICON $'\uF09C' # - RUBY_ICON $'\uE847 ' # - AWS_ICON $'\uE895' # - AWS_EB_ICON $'\U1F331 ' # 🌱 - BACKGROUND_JOBS_ICON $'\uE82F ' # - TEST_ICON $'\uE891' # - TODO_ICON $'\u2611' # ☑ - BATTERY_ICON $'\uE894' # - DISK_ICON $'\uE1AE ' # - OK_ICON $'\u2714' # ✔ - FAIL_ICON $'\u2718' # ✘ - SYMFONY_ICON 'SF' - NODE_ICON $'\u2B22' # ⬢ - MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─ - MULTILINE_NEWLINE_PROMPT_PREFIX $'\u251C'$'\U2500' # ├─ - MULTILINE_LAST_PROMPT_PREFIX $'\u2570'$'\U2500 ' # ╰─ - APPLE_ICON $'\uE26E' # - WINDOWS_ICON $'\uE26F' # - FREEBSD_ICON $'\U1F608 ' # 😈 - ANDROID_ICON $'\uE270' # - LINUX_ICON $'\uE271' # - LINUX_ARCH_ICON $'\uE271' # - LINUX_DEBIAN_ICON $'\uE271' # - LINUX_RASPBIAN_ICON $'\uE271' # - LINUX_UBUNTU_ICON $'\uE271' # - LINUX_CENTOS_ICON $'\uE271' # - LINUX_COREOS_ICON $'\uE271' # - LINUX_ELEMENTARY_ICON $'\uE271' # - LINUX_MINT_ICON $'\uE271' # - LINUX_FEDORA_ICON $'\uE271' # - LINUX_GENTOO_ICON $'\uE271' # - LINUX_MAGEIA_ICON $'\uE271' # - LINUX_NIXOS_ICON $'\uE271' # - LINUX_MANJARO_ICON $'\uE271' # - LINUX_DEVUAN_ICON $'\uE271' # - LINUX_ALPINE_ICON $'\uE271' # - LINUX_AOSC_ICON $'\uE271' # - LINUX_OPENSUSE_ICON $'\uE271' # - LINUX_SABAYON_ICON $'\uE271' # - LINUX_SLACKWARE_ICON $'\uE271' # - SUNOS_ICON $'\U1F31E ' # 🌞 - HOME_ICON $'\uE12C' # - HOME_SUB_ICON $'\uE18D' # - FOLDER_ICON $'\uE818' # - NETWORK_ICON $'\uE1AD' # - ETC_ICON $'\uE82F' # - LOAD_ICON $'\uE190 ' # - SWAP_ICON $'\uE87D' # - RAM_ICON $'\uE1E2 ' # - SERVER_ICON $'\uE895' # - VCS_UNTRACKED_ICON $'\uE16C' # - VCS_UNSTAGED_ICON $'\uE17C' # - VCS_STAGED_ICON $'\uE168' # - VCS_STASH_ICON $'\uE133 ' # - #VCS_INCOMING_CHANGES_ICON $'\uE1EB ' # - #VCS_INCOMING_CHANGES_ICON $'\uE80D ' # - VCS_INCOMING_CHANGES_ICON $'\uE131 ' # - #VCS_OUTGOING_CHANGES_ICON $'\uE1EC ' # - #VCS_OUTGOING_CHANGES_ICON $'\uE80E ' # - VCS_OUTGOING_CHANGES_ICON $'\uE132 ' # - VCS_TAG_ICON $'\uE817 ' # - VCS_BOOKMARK_ICON $'\uE87B' # - VCS_COMMIT_ICON $'\uE821 ' # - VCS_BRANCH_ICON $'\uE220 ' # - VCS_REMOTE_BRANCH_ICON $'\u2192' # → - VCS_LOADING_ICON '' - VCS_GIT_ICON $'\uE20E ' # - VCS_GIT_GITHUB_ICON $'\uE20E ' # - VCS_GIT_BITBUCKET_ICON $'\uE20E ' # - VCS_GIT_GITLAB_ICON $'\uE20E ' # - VCS_HG_ICON $'\uE1C3 ' # - VCS_SVN_ICON '(svn) ' - RUST_ICON '(rust)' - PYTHON_ICON $'\ue63c' # - SWIFT_ICON '' - GO_ICON '' - PUBLIC_IP_ICON '' - LOCK_ICON $'\UE138' # - EXECUTION_TIME_ICON $'\UE89C' # - SSH_ICON '(ssh)' - VPN_ICON '(vpn)' - KUBERNETES_ICON $'\U2388' # ⎈ - DROPBOX_ICON $'\UF16B' # - DATE_ICON $'\uE184' # - TIME_ICON $'\uE12E' # - JAVA_ICON $'\U2615' # ☕︎ - LARAVEL_ICON '' - ) - ;; - 'awesome-fontconfig') - # fontconfig with awesome-font required! See - # https://github.com/gabrielelana/awesome-terminal-fonts - # Set the right locale to protect special characters - local LC_ALL="" LC_CTYPE="en_US.UTF-8" - icons=( - RULER_CHAR $'\u2500' # ─ - LEFT_SEGMENT_SEPARATOR $'\uE0B0' # - RIGHT_SEGMENT_SEPARATOR $'\uE0B2' # - LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace - RIGHT_SEGMENT_END_SEPARATOR '' - LEFT_SUBSEGMENT_SEPARATOR $'\uE0B1' # - RIGHT_SUBSEGMENT_SEPARATOR $'\uE0B3' # - CARRIAGE_RETURN_ICON $'\u21B5' # ↵ - ROOT_ICON $'\uF201' # - SUDO_ICON $'\uF09C' # - RUBY_ICON $'\uF219 ' # - AWS_ICON $'\uF270' # - AWS_EB_ICON $'\U1F331 ' # 🌱 - BACKGROUND_JOBS_ICON $'\uF013 ' # - TEST_ICON $'\uF291' # - TODO_ICON $'\u2611' # ☑ - BATTERY_ICON $'\U1F50B' # 🔋 - DISK_ICON $'\uF0A0 ' # - OK_ICON $'\u2714' # ✔ - FAIL_ICON $'\u2718' # ✘ - SYMFONY_ICON 'SF' - NODE_ICON $'\u2B22' # ⬢ - MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─ - MULTILINE_NEWLINE_PROMPT_PREFIX $'\u251C'$'\U2500' # ├─ - MULTILINE_LAST_PROMPT_PREFIX $'\u2570'$'\U2500 ' # ╰─ - APPLE_ICON $'\uF179' # - WINDOWS_ICON $'\uF17A' # - FREEBSD_ICON $'\U1F608 ' # 😈 - ANDROID_ICON $'\uE17B' # - LINUX_ICON $'\uF17C' # - LINUX_ARCH_ICON $'\uF17C' # - LINUX_DEBIAN_ICON $'\uF17C' # - LINUX_RASPBIAN_ICON $'\uF17C' # - LINUX_UBUNTU_ICON $'\uF17C' # - LINUX_CENTOS_ICON $'\uF17C' # - LINUX_COREOS_ICON $'\uF17C' # - LINUX_ELEMENTARY_ICON $'\uF17C' # - LINUX_MINT_ICON $'\uF17C' # - LINUX_FEDORA_ICON $'\uF17C' # - LINUX_GENTOO_ICON $'\uF17C' # - LINUX_MAGEIA_ICON $'\uF17C' # - LINUX_NIXOS_ICON $'\uF17C' # - LINUX_MANJARO_ICON $'\uF17C' # - LINUX_DEVUAN_ICON $'\uF17C' # - LINUX_ALPINE_ICON $'\uF17C' # - LINUX_AOSC_ICON $'\uF17C' # - LINUX_OPENSUSE_ICON $'\uF17C' # - LINUX_SABAYON_ICON $'\uF17C' # - LINUX_SLACKWARE_ICON $'\uF17C' # - SUNOS_ICON $'\uF185 ' # - HOME_ICON $'\uF015' # - HOME_SUB_ICON $'\uF07C' # - FOLDER_ICON $'\uF115' # - ETC_ICON $'\uF013 ' # - NETWORK_ICON $'\uF09E' # - LOAD_ICON $'\uF080 ' # - SWAP_ICON $'\uF0E4' # - RAM_ICON $'\uF0E4' # - SERVER_ICON $'\uF233' # - VCS_UNTRACKED_ICON $'\uF059' # - VCS_UNSTAGED_ICON $'\uF06A' # - VCS_STAGED_ICON $'\uF055' # - VCS_STASH_ICON $'\uF01C ' # - VCS_INCOMING_CHANGES_ICON $'\uF01A ' # - VCS_OUTGOING_CHANGES_ICON $'\uF01B ' # - VCS_TAG_ICON $'\uF217 ' # - VCS_BOOKMARK_ICON $'\uF27B' # - VCS_COMMIT_ICON $'\uF221 ' # - VCS_BRANCH_ICON $'\uF126 ' # - VCS_REMOTE_BRANCH_ICON $'\u2192' # → - VCS_LOADING_ICON '' - VCS_GIT_ICON $'\uF1D3 ' # - VCS_GIT_GITHUB_ICON $'\uF113 ' # - VCS_GIT_BITBUCKET_ICON $'\uF171 ' # - VCS_GIT_GITLAB_ICON $'\uF296 ' # - VCS_HG_ICON $'\uF0C3 ' # - VCS_SVN_ICON '(svn) ' - RUST_ICON $'\uE6A8' # - PYTHON_ICON $'\ue63c' # - SWIFT_ICON '' - GO_ICON '' - PUBLIC_IP_ICON '' - LOCK_ICON $'\UF023' # - EXECUTION_TIME_ICON $'\uF253' - SSH_ICON '(ssh)' - VPN_ICON $'\uF023' - KUBERNETES_ICON $'\U2388' # ⎈ - DROPBOX_ICON $'\UF16B' # - DATE_ICON $'\uF073 ' # - TIME_ICON $'\uF017 ' # - JAVA_ICON $'\U2615' # ☕︎ - LARAVEL_ICON '' - ) - ;; - 'awesome-mapped-fontconfig') - # mapped fontconfig with awesome-font required! See - # https://github.com/gabrielelana/awesome-terminal-fonts - # don't forget to source the font maps in your startup script - # Set the right locale to protect special characters - local LC_ALL="" LC_CTYPE="en_US.UTF-8" - - if [ -z "$AWESOME_GLYPHS_LOADED" ]; then - echo "Powerlevel9k warning: Awesome-Font mappings have not been loaded. - Source a font mapping in your shell config, per the Awesome-Font docs - (https://github.com/gabrielelana/awesome-terminal-fonts), - Or use a different Powerlevel9k font configuration."; - fi - - icons=( - RULER_CHAR $'\u2500' # ─ - LEFT_SEGMENT_SEPARATOR $'\uE0B0' # - RIGHT_SEGMENT_SEPARATOR $'\uE0B2' # - LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace - RIGHT_SEGMENT_END_SEPARATOR '' - LEFT_SUBSEGMENT_SEPARATOR $'\uE0B1' # - RIGHT_SUBSEGMENT_SEPARATOR $'\uE0B3' # - CARRIAGE_RETURN_ICON $'\u21B5' # ↵ - ROOT_ICON '\u'$CODEPOINT_OF_OCTICONS_ZAP # - SUDO_ICON '\u'$CODEPOINT_OF_AWESOME_UNLOCK # - RUBY_ICON '\u'$CODEPOINT_OF_OCTICONS_RUBY' ' # - AWS_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER # - AWS_EB_ICON $'\U1F331 ' # 🌱 - BACKGROUND_JOBS_ICON '\u'$CODEPOINT_OF_AWESOME_COG' ' # - TEST_ICON '\u'$CODEPOINT_OF_AWESOME_BUG # - TODO_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O # - BATTERY_ICON '\U'$CODEPOINT_OF_AWESOME_BATTERY_FULL # - DISK_ICON '\u'$CODEPOINT_OF_AWESOME_HDD_O' ' # - OK_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK # - FAIL_ICON '\u'$CODEPOINT_OF_AWESOME_TIMES # - SYMFONY_ICON 'SF' - NODE_ICON $'\u2B22' # ⬢ - MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─ - MULTILINE_SECOND_PROMPT_PREFIX $'\u2570'$'\U2500 ' # ╰─ - APPLE_ICON '\u'$CODEPOINT_OF_AWESOME_APPLE # - FREEBSD_ICON $'\U1F608 ' # 😈 - LINUX_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_ARCH_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_DEBIAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_RASPBIAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_UBUNTU_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_CENTOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_COREOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_ELEMENTARY_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_MINT_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_FEDORA_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_GENTOO_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_MAGEIA_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_NIXOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_MANJARO_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_DEVUAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_ALPINE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_AOSC_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_OPENSUSE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_SABAYON_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - LINUX_SLACKWARE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # - SUNOS_ICON '\u'$CODEPOINT_OF_AWESOME_SUN_O' ' # - HOME_ICON '\u'$CODEPOINT_OF_AWESOME_HOME # - HOME_SUB_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_OPEN # - FOLDER_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_O # - ETC_ICON '\u'$CODEPOINT_OF_AWESOME_COG' ' # - NETWORK_ICON '\u'$CODEPOINT_OF_AWESOME_RSS # - LOAD_ICON '\u'$CODEPOINT_OF_AWESOME_BAR_CHART' ' # - SWAP_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD # - RAM_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD # - SERVER_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER # - VCS_UNTRACKED_ICON '\u'$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE # - VCS_UNSTAGED_ICON '\u'$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE # - VCS_STAGED_ICON '\u'$CODEPOINT_OF_AWESOME_PLUS_CIRCLE # - VCS_STASH_ICON '\u'$CODEPOINT_OF_AWESOME_INBOX' ' # - VCS_INCOMING_CHANGES_ICON '\u'$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN' ' # - VCS_OUTGOING_CHANGES_ICON '\u'$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP' ' # - VCS_TAG_ICON '\u'$CODEPOINT_OF_AWESOME_TAG' ' # - VCS_BOOKMARK_ICON '\u'$CODEPOINT_OF_OCTICONS_BOOKMARK # - VCS_COMMIT_ICON '\u'$CODEPOINT_OF_OCTICONS_GIT_COMMIT' ' # - VCS_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_GIT_BRANCH' ' # - VCS_REMOTE_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_REPO_PUSH # - VCS_LOADING_ICON '' - VCS_GIT_ICON '\u'$CODEPOINT_OF_AWESOME_GIT' ' # - VCS_GIT_GITHUB_ICON '\u'$CODEPOINT_OF_AWESOME_GITHUB_ALT' ' # - VCS_GIT_BITBUCKET_ICON '\u'$CODEPOINT_OF_AWESOME_BITBUCKET' ' # - VCS_GIT_GITLAB_ICON '\u'$CODEPOINT_OF_AWESOME_GITLAB' ' # - VCS_HG_ICON '\u'$CODEPOINT_OF_AWESOME_FLASK' ' # - VCS_SVN_ICON '(svn) ' - RUST_ICON $'\uE6A8' # - PYTHON_ICON $'\U1F40D' # 🐍 - SWIFT_ICON $'\uE655' # - PUBLIC_IP_ICON '\u'$CODEPOINT_OF_AWESOME_GLOBE # - LOCK_ICON '\u'$CODEPOINT_OF_AWESOME_LOCK # - EXECUTION_TIME_ICON '\u'$CODEPOINT_OF_AWESOME_HOURGLASS_END # - SSH_ICON '(ssh)' - VPN_ICON '\u'$CODEPOINT_OF_AWESOME_LOCK - KUBERNETES_ICON $'\U2388' # ⎈ - DROPBOX_ICON '\u'$CODEPOINT_OF_AWESOME_DROPBOX # - DATE_ICON $'\uF073 ' # - TIME_ICON $'\uF017 ' # - JAVA_ICON $'\U2615' # ☕︎ - LARAVEL_ICON '' - ) - ;; - '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=( - RULER_CHAR $'\u2500' # ─ - LEFT_SEGMENT_SEPARATOR $'\uE0B0' # - RIGHT_SEGMENT_SEPARATOR $'\uE0B2' # - LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace - RIGHT_SEGMENT_END_SEPARATOR '' - LEFT_SUBSEGMENT_SEPARATOR $'\uE0B1' # - RIGHT_SUBSEGMENT_SEPARATOR $'\uE0B3' # - CARRIAGE_RETURN_ICON $'\u21B5' # ↵ - ROOT_ICON $'\uE614 ' # - SUDO_ICON $'\uF09C' # - RUBY_ICON $'\uF219 ' # - AWS_ICON $'\uF270' # - AWS_EB_ICON $'\UF1BD ' # - BACKGROUND_JOBS_ICON $'\uF013 ' # - TEST_ICON $'\uF188' # - TODO_ICON $'\uF133' # - BATTERY_ICON $'\UF240 ' # - DISK_ICON $'\uF0A0' # - OK_ICON $'\uF00C' # - FAIL_ICON $'\uF00D' # - SYMFONY_ICON $'\uE757' # - NODE_ICON $'\uE617 ' # - MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─ - MULTILINE_NEWLINE_PROMPT_PREFIX $'\u251C'$'\U2500' # ├─ - MULTILINE_LAST_PROMPT_PREFIX $'\u2570'$'\U2500 ' # ╰─ - APPLE_ICON $'\uF179' # - WINDOWS_ICON $'\uF17A' # - FREEBSD_ICON $'\UF30C ' # - ANDROID_ICON $'\uF17B' # - LINUX_ARCH_ICON $'\uF303' # - LINUX_CENTOS_ICON $'\uF304' # - LINUX_COREOS_ICON $'\uF305' # - LINUX_DEBIAN_ICON $'\uF306' # - LINUX_RASPBIAN_ICON $'\uF315' # - LINUX_ELEMENTARY_ICON $'\uF309' # - LINUX_FEDORA_ICON $'\uF30a' # - LINUX_GENTOO_ICON $'\uF30d' # - LINUX_MAGEIA_ICON $'\uF310' # - LINUX_MINT_ICON $'\uF30e' # - LINUX_NIXOS_ICON $'\uF313' # - LINUX_MANJARO_ICON $'\uF312' # - LINUX_DEVUAN_ICON $'\uF307' # - LINUX_ALPINE_ICON $'\uF300' # - LINUX_AOSC_ICON $'\uF301' # - LINUX_OPENSUSE_ICON $'\uF314' # - LINUX_SABAYON_ICON $'\uF317' # - LINUX_SLACKWARE_ICON $'\uF319' # - LINUX_UBUNTU_ICON $'\uF31b' # - LINUX_ICON $'\uF17C' # - SUNOS_ICON $'\uF185 ' # - HOME_ICON $'\uF015' # - HOME_SUB_ICON $'\uF07C' # - FOLDER_ICON $'\uF115' # - ETC_ICON $'\uF013' # - NETWORK_ICON $'\uF1EB' # - LOAD_ICON $'\uF080 ' # - SWAP_ICON $'\uF464' # - RAM_ICON $'\uF0E4' # - SERVER_ICON $'\uF0AE' # - VCS_UNTRACKED_ICON $'\uF059' # - VCS_UNSTAGED_ICON $'\uF06A' # - VCS_STAGED_ICON $'\uF055' # - VCS_STASH_ICON $'\uF01C ' # - VCS_INCOMING_CHANGES_ICON $'\uF01A ' # - VCS_OUTGOING_CHANGES_ICON $'\uF01B ' # - VCS_TAG_ICON $'\uF02B ' # - VCS_BOOKMARK_ICON $'\uF461 ' # - VCS_COMMIT_ICON $'\uE729 ' # - VCS_BRANCH_ICON $'\uF126 ' # - VCS_REMOTE_BRANCH_ICON $'\uE728 ' # - VCS_LOADING_ICON '' - VCS_GIT_ICON $'\uF1D3 ' # - VCS_GIT_GITHUB_ICON $'\uF113 ' # - VCS_GIT_BITBUCKET_ICON $'\uE703 ' # - VCS_GIT_GITLAB_ICON $'\uF296 ' # - VCS_HG_ICON $'\uF0C3 ' # - VCS_SVN_ICON $'\uE72D ' # - RUST_ICON $'\uE7A8 ' # - PYTHON_ICON $'\UE73C ' # - SWIFT_ICON $'\uE755' # - GO_ICON $'\uE626' # - PUBLIC_IP_ICON $'\UF0AC' # - LOCK_ICON $'\UF023' # - EXECUTION_TIME_ICON $'\uF252' # - SSH_ICON $'\uF489' # - VPN_ICON '(vpn)' - KUBERNETES_ICON $'\U2388' # ⎈ - DROPBOX_ICON $'\UF16B' # - DATE_ICON $'\uF073 ' # - TIME_ICON $'\uF017 ' # - JAVA_ICON $'\U2615' # ☕︎ - LARAVEL_ICON $'\ue73f ' # - ) - ;; - *) - # Powerline-Patched Font required! - # See https://github.com/Lokaltog/powerline-fonts - # Set the right locale to protect special characters - local LC_ALL="" LC_CTYPE="en_US.UTF-8" - icons=( - RULER_CHAR $'\u2500' # ─ - LEFT_SEGMENT_SEPARATOR $'\uE0B0' # - RIGHT_SEGMENT_SEPARATOR $'\uE0B2' # - LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace - RIGHT_SEGMENT_END_SEPARATOR '' - LEFT_SUBSEGMENT_SEPARATOR $'\uE0B1' # - RIGHT_SUBSEGMENT_SEPARATOR $'\uE0B3' # - CARRIAGE_RETURN_ICON $'\u21B5' # ↵ - ROOT_ICON $'\u26A1' # ⚡ - SUDO_ICON $'\uE0A2' # - RUBY_ICON '' - AWS_ICON 'AWS:' - AWS_EB_ICON $'\U1F331 ' # 🌱 - BACKGROUND_JOBS_ICON $'\u2699' # ⚙ - TEST_ICON '' - TODO_ICON $'\u2611' # ☑ - BATTERY_ICON $'\U1F50B' # 🔋 - DISK_ICON $'hdd ' - OK_ICON $'\u2714' # ✔ - FAIL_ICON $'\u2718' # ✘ - SYMFONY_ICON 'SF' - NODE_ICON $'\u2B22' # ⬢ - MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─ - MULTILINE_NEWLINE_PROMPT_PREFIX $'\u251C'$'\U2500' # ├─ - MULTILINE_LAST_PROMPT_PREFIX $'\u2570'$'\U2500 ' # ╰─ - APPLE_ICON 'OSX' - WINDOWS_ICON 'WIN' - FREEBSD_ICON 'BSD' - ANDROID_ICON 'And' - LINUX_ICON 'Lx' - LINUX_ARCH_ICON 'Arc' - LINUX_DEBIAN_ICON 'Deb' - LINUX_RASPBIAN_ICON 'RPi' - 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_NIXOS_ICON 'Nix' - LINUX_MANJARO_ICON 'Man' - LINUX_DEVUAN_ICON 'Dev' - LINUX_ALPINE_ICON 'Alp' - LINUX_AOSC_ICON 'Aos' - LINUX_OPENSUSE_ICON 'OSu' - LINUX_SABAYON_ICON 'Sab' - LINUX_SLACKWARE_ICON 'Sla' - SUNOS_ICON 'Sun' - HOME_ICON '' - HOME_SUB_ICON '' - FOLDER_ICON '' - ETC_ICON $'\u2699' # ⚙ - NETWORK_ICON 'IP' - LOAD_ICON 'L' - SWAP_ICON 'SWP' - RAM_ICON 'RAM' - SERVER_ICON '' - VCS_UNTRACKED_ICON '?' - VCS_UNSTAGED_ICON $'\u25CF' # ● - VCS_STAGED_ICON $'\u271A' # ✚ - VCS_STASH_ICON $'\u235F' # ⍟ - VCS_INCOMING_CHANGES_ICON $'\u2193' # ↓ - VCS_OUTGOING_CHANGES_ICON $'\u2191' # ↑ - VCS_TAG_ICON '' - VCS_BOOKMARK_ICON $'\u263F' # ☿ - VCS_COMMIT_ICON '' - VCS_BRANCH_ICON $'\uE0A0 ' # - VCS_REMOTE_BRANCH_ICON $'\u2192' # → - VCS_LOADING_ICON '' - VCS_GIT_ICON '' - VCS_GIT_GITHUB_ICON '' - VCS_GIT_BITBUCKET_ICON '' - VCS_GIT_GITLAB_ICON '' - VCS_HG_ICON '' - VCS_SVN_ICON '' - RUST_ICON 'Rust' - PYTHON_ICON '' - SWIFT_ICON 'Swift' - GO_ICON 'Go' - PUBLIC_IP_ICON '' - LOCK_ICON $'\UE0A2' - EXECUTION_TIME_ICON 'Dur' - SSH_ICON '(ssh)' - VPN_ICON '(vpn)' - KUBERNETES_ICON $'\U2388' # ⎈ - DROPBOX_ICON 'Dropbox' - DATE_ICON '' - TIME_ICON '' - JAVA_ICON $'\U2615' # ☕︎ - LARAVEL_ICON '' - ) - ;; - esac - - # Override the above icon settings with any user-defined variables. - case $POWERLEVEL9K_MODE in - 'flat') - # Set the right locale to protect special characters - local LC_ALL="" LC_CTYPE="en_US.UTF-8" - icons[LEFT_SEGMENT_SEPARATOR]='' - icons[RIGHT_SEGMENT_SEPARATOR]='' - icons[LEFT_SUBSEGMENT_SEPARATOR]='|' - icons[RIGHT_SUBSEGMENT_SEPARATOR]='|' - ;; - 'compatible') - # Set the right locale to protect special characters - local LC_ALL="" LC_CTYPE="en_US.UTF-8" - icons[LEFT_SEGMENT_SEPARATOR]=$'\u2B80' # ⮀ - icons[RIGHT_SEGMENT_SEPARATOR]=$'\u2B82' # ⮂ - icons[VCS_BRANCH_ICON]='@' - ;; - esac - - if [[ "$POWERLEVEL9K_HIDE_BRANCH_ICON" == true ]]; then - icons[VCS_BRANCH_ICON]='' - fi -} - -# Safety function for printing icons -# Prints the named icon, or if that icon is undefined, the string name. -function print_icon() { - _p9k_init_icons - local icon_name=$1 - local var_name=POWERLEVEL9K_${icon_name} - if [[ -n "${(tP)var_name}" ]]; then - echo -n "${(P)var_name}" - else - echo -n "${icons[$icon_name]}" - fi -} - -# Get a list of configured icons -# * $1 string - If "original", then the original icons are printed, -# otherwise "print_icon" is used, which takes the users -# overrides into account. -function get_icon_names() { - _p9k_init_icons - # Iterate over a ordered list of keys of the icons array - for key in ${(@kon)icons}; do - echo -n "POWERLEVEL9K_$key: " - if [[ "${1}" == "original" ]]; then - # print the original icons as they are defined in the array above - echo "${icons[$key]}" - else - # print the icons as they are configured by the user - echo "$(print_icon "$key")" - fi - done -} diff --git a/functions/utilities.zsh b/functions/utilities.zsh deleted file mode 100755 index 5d32370c..00000000 --- a/functions/utilities.zsh +++ /dev/null @@ -1,142 +0,0 @@ -# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 -################################################################ -# Utility functions -# This file holds some utility-functions for -# the powerlevel9k-ZSH-theme -# https://github.com/bhilburn/powerlevel9k -################################################################ - -# Usage: set_default [OPTION]... NAME [VALUE]... -# -# Options are the same as in `typeset`. -function set_default() { - emulate -L zsh - local -a flags=(-g) - while true; do - case $1 in - --) shift; break;; - -*) flags+=$1; shift;; - *) break; - esac - done - - local varname=$1 - shift - if [[ -n ${(tP)varname} ]]; then - typeset $flags $varname - elif [[ "$flags" == *[aA]* ]]; then - eval "typeset ${(@q)flags} ${(q)varname}=(${(qq)@})" - else - typeset $flags $varname="$*" - fi -} - -function _p9k_g_expand() { - (( $+parameters[$1] )) || return - local -a ts=("${=$(typeset -p $1)}") - shift ts - local x - for x in "${ts[@]}"; do - [[ $x == -* ]] || break - # Don't change readonly variables. Ideally, we shouldn't modify any variables at all, - # but for now this will do. - [[ $x == -*r* ]] && return - done - typeset -g $1=${(g::)${(P)1}} -} - -# If we execute `print -P $1`, how many characters will be printed on the last line? -# Assumes that `%{%}` and `%G` don't lie. -# -# _p9k_prompt_length '' => 0 -# _p9k_prompt_length 'abc' => 3 -# _p9k_prompt_length $'abc\nxy' => 2 -# _p9k_prompt_length $'\t' => 8 -# _p9k_prompt_length '%F{red}abc' => 3 -# _p9k_prompt_length $'%{a\b%Gb%}' => 1 -function _p9k_prompt_length() { - emulate -L zsh - local COLUMNS=1024 - local -i x y=$#1 m - if (( y )); then - while (( ${${(%):-$1%$y(l.1.0)}[-1]} )); do - x=y - (( y *= 2 )); - done - local xy - while (( y > x + 1 )); do - m=$(( x + (y - x) / 2 )) - typeset ${${(%):-$1%$m(l.x.y)}[-1]}=$m - done - fi - _P9K_RETVAL=$x -} - -typeset -g _P9K_BYTE_SUFFIX=('B' 'K' 'M' 'G' 'T' 'P' 'E' 'Z' 'Y') - -# 42 => 42B -# 1536 => 1.5K -function _p9k_human_readable_bytes() { - typeset -F 2 n=$1 - local suf - for suf in $_P9K_BYTE_SUFFIX; do - (( n < 100 )) && break - (( n /= 1024 )) - done - _P9K_RETVAL=$n$suf -} - -# Determine if the passed segment is used in the prompt -# -# Pass the name of the segment to this function to test for its presence in -# either the LEFT or RIGHT prompt arrays. -# * $1: The segment to be tested. -segment_in_use() { - local key=$1 - [[ -n "${POWERLEVEL9K_LEFT_PROMPT_ELEMENTS[(r)${key}]}" || - -n "${POWERLEVEL9K_LEFT_PROMPT_ELEMENTS[(r)${key}_joined]}" || - -n "${POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS[(r)${key}]}" || - -n "${POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS[(r)${key}_joined]}" ]] -} - -function _p9k_parse_ip() { - local desiredInterface=${1:-'^[^ ]+'} - - if [[ $OS == OSX ]]; then - [[ -x /sbin/ifconfig ]] || return - local rawInterfaces && rawInterfaces="$(/sbin/ifconfig -l 2>/dev/null)" || return - local -a interfaces=(${(A)=rawInterfaces}) - local pattern="${desiredInterface}[^ ]?" - local -a relevantInterfaces - for rawInterface in $interfaces; do - [[ "$rawInterface" =~ $pattern ]] && relevantInterfaces+=$MATCH - done - local newline=$'\n' - local interfaceName interface - for interfaceName in $relevantInterfaces; do - interface="$(/sbin/ifconfig $interfaceName 2>/dev/null)" || continue - [[ "${interface}" =~ "lo[0-9]*" ]] && continue - if [[ "${interface//${newline}/}" =~ "<([^>]*)>(.*)inet[ ]+([^ ]*)" ]]; then - local ipFound="${match[3]}" - local -a interfaceStates=(${(s:,:)match[1]}) - if (( ${interfaceStates[(I)UP]} )); then - _P9K_RETVAL=$ipFound - return - fi - fi - done - else - [[ -x /sbin/ip ]] || return - local -a interfaces=( "${(f)$(/sbin/ip -brief -4 a show 2>/dev/null)}" ) - local pattern="^${desiredInterface}[[:space:]]+UP[[:space:]]+([^/ ]+)" - local interface - for interface in "${(@)interfaces}"; do - if [[ "$interface" =~ $pattern ]]; then - _P9K_RETVAL=$match[1] - return - fi - done - fi - - return 1 -} diff --git a/functions/vcs.zsh b/functions/vcs.zsh deleted file mode 100755 index d89525fd..00000000 --- a/functions/vcs.zsh +++ /dev/null @@ -1,165 +0,0 @@ -# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 -################################################################ -# vcs -# This file holds supplemental VCS functions -# for the powerlevel9k-ZSH-theme -# https://github.com/bhilburn/powerlevel9k -################################################################ - -set_default POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY false -function +vi-git-untracked() { - [[ -z "${vcs_comm[gitdir]}" || "${vcs_comm[gitdir]}" == "." ]] && return - - # get the root for the current repo or submodule - local repoTopLevel="$(command git rev-parse --show-toplevel 2> /dev/null)" - # dump out if we're outside a git repository (which includes being in the .git folder) - [[ $? != 0 || -z $repoTopLevel ]] && return - - local untrackedFiles=$(command git ls-files --others --exclude-standard "${repoTopLevel}" 2> /dev/null) - - if [[ -z $untrackedFiles && "$POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY" == "true" ]]; then - untrackedFiles+=$(command git submodule foreach --quiet --recursive 'command git ls-files --others --exclude-standard' 2> /dev/null) - fi - - [[ -z $untrackedFiles ]] && return - - hook_com[unstaged]+=" $(print_icon 'VCS_UNTRACKED_ICON')" - VCS_WORKDIR_HALF_DIRTY=true -} - -function +vi-git-aheadbehind() { - local ahead behind - local -a gitstatus - - # for git prior to 1.7 - # ahead=$(command git rev-list origin/${hook_com[branch]}..HEAD | wc -l) - ahead=$(command git rev-list --count "${hook_com[branch]}"@{upstream}..HEAD 2>/dev/null) - (( ahead )) && gitstatus+=( " $(print_icon 'VCS_OUTGOING_CHANGES_ICON')${ahead// /}" ) - - # for git prior to 1.7 - # behind=$(command git rev-list HEAD..origin/${hook_com[branch]} | wc -l) - behind=$(command git rev-list --count HEAD.."${hook_com[branch]}"@{upstream} 2>/dev/null) - (( behind )) && gitstatus+=( " $(print_icon 'VCS_INCOMING_CHANGES_ICON')${behind// /}" ) - - hook_com[misc]+=${(j::)gitstatus} -} - -function +vi-git-remotebranch() { - local remote - local branch_name="${hook_com[branch]}" - - # Are we on a remote-tracking branch? - remote=${$(command git rev-parse --verify HEAD@{upstream} --symbolic-full-name 2>/dev/null)/refs\/(remotes|heads)\/} - - if [[ -n "$POWERLEVEL9K_VCS_SHORTEN_LENGTH" ]] && [[ -n "$POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH" ]]; then - if [ ${#hook_com[branch]} -gt ${POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH} ] && [ ${#hook_com[branch]} -gt ${POWERLEVEL9K_VCS_SHORTEN_LENGTH} ]; then - case "$POWERLEVEL9K_VCS_SHORTEN_STRATEGY" in - truncate_middle) - hook_com[branch]="${branch_name:0:$POWERLEVEL9K_VCS_SHORTEN_LENGTH}${POWERLEVEL9K_VCS_SHORTEN_DELIMITER}${branch_name: -$POWERLEVEL9K_VCS_SHORTEN_LENGTH}" - ;; - truncate_from_right) - hook_com[branch]="${branch_name:0:$POWERLEVEL9K_VCS_SHORTEN_LENGTH}${POWERLEVEL9K_VCS_SHORTEN_DELIMITER}" - ;; - esac - fi - fi - - hook_com[branch]="$(print_icon 'VCS_BRANCH_ICON')${hook_com[branch]}" - # Always show the remote - #if [[ -n ${remote} ]] ; then - # Only show the remote if it differs from the local - if [[ -n ${remote} ]] && [[ "${remote#*/}" != "${branch_name}" ]] ; then - hook_com[branch]+="$(print_icon 'VCS_REMOTE_BRANCH_ICON')${remote// /}" - fi -} - -set_default POWERLEVEL9K_VCS_HIDE_TAGS false -function +vi-git-tagname() { - if [[ "$POWERLEVEL9K_VCS_HIDE_TAGS" == "false" ]]; then - # If we are on a tag, append the tagname to the current branch string. - local tag - tag=$(command git describe --tags --exact-match HEAD 2>/dev/null) - - if [[ -n "${tag}" ]] ; then - # There is a tag that points to our current commit. Need to determine if we - # are also on a branch, or are in a DETACHED_HEAD state. - if [[ -z $(command git symbolic-ref HEAD 2>/dev/null) ]]; then - # DETACHED_HEAD state. We want to append the tag name to the commit hash - # and print it. Unfortunately, `vcs_info` blows away the hash when a tag - # exists, so we have to manually retrieve it and clobber the branch - # string. - local revision - revision=$(command git rev-list -n 1 --abbrev-commit --abbrev=${POWERLEVEL9K_VCS_INTERNAL_HASH_LENGTH} HEAD) - hook_com[branch]="$(print_icon 'VCS_BRANCH_ICON')${revision} $(print_icon 'VCS_TAG_ICON')${tag}" - else - # We are on both a tag and a branch; print both by appending the tag name. - hook_com[branch]+=" $(print_icon 'VCS_TAG_ICON')${tag}" - fi - fi - fi -} - -# Show count of stashed changes -# Port from https://github.com/whiteinge/dotfiles/blob/5dfd08d30f7f2749cfc60bc55564c6ea239624d9/.zsh_shouse_prompt#L268 -function +vi-git-stash() { - if [[ -s "${vcs_comm[gitdir]}/logs/refs/stash" ]] ; then - local -a stashes=( "${(@f)"$(<${vcs_comm[gitdir]}/logs/refs/stash)"}" ) - hook_com[misc]+=" $(print_icon 'VCS_STASH_ICON')${#stashes}" - fi -} - -function +vi-hg-bookmarks() { - if [[ -n "${hgbmarks[@]}" ]]; then - hook_com[hg-bookmark-string]=" $(print_icon 'VCS_BOOKMARK_ICON')${hgbmarks[@]}" - - # To signal that we want to use the sting we just generated, set the special - # variable `ret' to something other than the default zero: - ret=1 - return 0 - fi -} - -function +vi-vcs-detect-changes() { - if [[ "${hook_com[vcs]}" == "git" ]]; then - - local remote=$(command git ls-remote --get-url 2> /dev/null) - if [[ "$remote" =~ "github" ]] then - vcs_visual_identifier='VCS_GIT_GITHUB_ICON' - elif [[ "$remote" =~ "bitbucket" ]] then - vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON' - elif [[ "$remote" =~ "stash" ]] then - vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON' - elif [[ "$remote" =~ "gitlab" ]] then - vcs_visual_identifier='VCS_GIT_GITLAB_ICON' - else - vcs_visual_identifier='VCS_GIT_ICON' - fi - - elif [[ "${hook_com[vcs]}" == "hg" ]]; then - vcs_visual_identifier='VCS_HG_ICON' - elif [[ "${hook_com[vcs]}" == "svn" ]]; then - vcs_visual_identifier='VCS_SVN_ICON' - fi - - if [[ -n "${hook_com[staged]}" ]] || [[ -n "${hook_com[unstaged]}" ]]; then - VCS_WORKDIR_DIRTY=true - else - VCS_WORKDIR_DIRTY=false - fi -} - -function +vi-svn-detect-changes() { - local svn_status="$(svn status)" - if [[ -n "$(echo "$svn_status" | \grep \^\?)" ]]; then - hook_com[unstaged]+=" $(print_icon 'VCS_UNTRACKED_ICON')" - VCS_WORKDIR_HALF_DIRTY=true - fi - if [[ -n "$(echo "$svn_status" | \grep \^\M)" ]]; then - hook_com[unstaged]+=" $(print_icon 'VCS_UNSTAGED_ICON')" - VCS_WORKDIR_DIRTY=true - fi - if [[ -n "$(echo "$svn_status" | \grep \^\A)" ]]; then - hook_com[staged]+=" $(print_icon 'VCS_STAGED_ICON')" - VCS_WORKDIR_DIRTY=true - fi -} |