# 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
        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
        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
        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
        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
        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
}