diff --git a/passion.zsh-theme b/passion.zsh-theme index ed5a1cf..b7719f5 100644 --- a/passion.zsh-theme +++ b/passion.zsh-theme @@ -22,6 +22,31 @@ function real_time() { echo "${color}${time}${color_reset}"; } +# login_info +function login_info() { + local color="%{$fg_no_bold[cyan]%}"; # color in PROMPT need format in %{XXX%} which is not same with echo + local ip + if [[ "$OSTYPE" == "linux-gnu" ]]; then + # Linux + ip="$(ifconfig | grep ^eth1 -A 1 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | head -1)"; + elif [[ "$OSTYPE" == "darwin"* ]]; then + # macOS + ip="$(ifconfig | grep ^en1 -A 4 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | head -1)"; + elif [[ "$OSTYPE" == "cygwin" ]]; then + # POSIX compatibility layer and Linux environment emulation for Windows + elif [[ "$OSTYPE" == "msys" ]]; then + # Lightweight shell and GNU utilities compiled for Windows (part of MinGW) + elif [[ "$OSTYPE" == "win32" ]]; then + # I'm not sure this can happen. + elif [[ "$OSTYPE" == "freebsd"* ]]; then + # ... + else + # Unknown. + fi + local color_reset="%{$reset_color%}"; + echo "${color}[%n@${ip}]${color_reset}"; +} + # directory function directory() { @@ -29,7 +54,7 @@ function directory() { # REF: https://stackoverflow.com/questions/25944006/bash-current-working-directory-with-replacing-path-to-home-folder local directory="${PWD/#$HOME/~}"; local color_reset="%{$reset_color%}"; - echo "${color}${directory}${color_reset}"; + echo "${color}[${directory}]${color_reset}"; } @@ -184,4 +209,4 @@ TRAPALRM() { # prompt -PROMPT='$(real_time) $(directory) $(git_status)$(command_status) '; +PROMPT='$(real_time) $(login_info) $(directory) $(git_status)$(command_status) ';