add vpn ip to prompt

This commit is contained in:
David Sabatie 2017-05-31 17:32:42 +02:00
parent 92264124a9
commit 5eec2e28d0
3 changed files with 30 additions and 6 deletions

View file

@ -94,6 +94,7 @@ The segments that are currently available are:
* `history` - The command number for the current line.
* [`host`](#host) - Your current host name
* [`ip`](#ip) - Shows the current IP address.
* [`vpn`](#vpn) - Shows the current VPN IP address.
* [`public_ip`](#public_ip) - Shows your public IP address.
* `load` - Your machine's load averages.
* `os_icon` - Display a nice little icon, depending on your operating system.
@ -444,6 +445,14 @@ specify the correct network interface by setting:
|----------|---------------|-------------|
|`POWERLEVEL9K_IP_INTERFACE`|None|The NIC for which you wish to display the IP address. Example: `eth0`.|
##### vpn
This segment tries to extract the VPN related IP addresses from nmcli, based on the NIC type:
| Variable | Default Value | Description |
|----------|---------------|-------------|
|`POWERLEVEL9K_VPN_IP_INTERFACE`|tun|The VPN NIC type|
##### public_ip
This segment will display your public IP address. There are several methods of obtaining this

View file

@ -84,6 +84,7 @@ case $POWERLEVEL9K_MODE in
LOCK_ICON $'\UE138' # 
EXECUTION_TIME_ICON $'\UE89C' # 
SSH_ICON '(ssh)'
VPN_ICON '(vpn)'
)
;;
'awesome-fontconfig')
@ -145,13 +146,14 @@ 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 $'\U1F40D' # 🐍
SWIFT_ICON ''
PUBLIC_IP_ICON ''
LOCK_ICON $'\UE138' # 
EXECUTION_TIME_ICON $'\uF253'
SSH_ICON '(ssh)'
VPN_ICON $'\uF023'
)
;;
'nerdfont-complete'|'nerdfont-fontconfig')
@ -174,7 +176,7 @@ case $POWERLEVEL9K_MODE in
TEST_ICON $'\uF188' # 
TODO_ICON $'\uF133' # 
BATTERY_ICON $'\UF240 ' # 
DISK_ICON $'\uF0A0' # 
DISK_ICON $'\uF0A0' # 
OK_ICON $'\uF00C' # 
FAIL_ICON $'\uF00D' # 
SYMFONY_ICON $'\uE757' # 
@ -210,16 +212,17 @@ case $POWERLEVEL9K_MODE in
VCS_GIT_ICON $'\uF113 ' # 
VCS_GIT_GITHUB_ICON $'\uE709 ' # 
VCS_GIT_BITBUCKET_ICON $'\uE703 ' # 
VCS_GIT_GITLAB_ICON $'\uF296 ' # 
VCS_GIT_GITLAB_ICON $'\uF296 ' # 
VCS_HG_ICON $'\uF0C3 ' # 
VCS_SVN_ICON $'\uE72D ' # 
RUST_ICON $'\uE7A8 ' # 
PYTHON_ICON $'\UE73C ' # 
SWIFT_ICON $'\uE755' # 
PUBLIC_IP_ICON $'\UF0AC' # 
LOCK_ICON $'\UF023' # 
EXECUTION_TIME_ICON $'\uF252' # 
SSH_ICON $'\uF489' # 
LOCK_ICON $'\UF023' # 
EXECUTION_TIME_ICON $'\uF252' # 
SSH_ICON $'\uF489' # 
VPN_ICON '(vpn)'
)
;;
*)
@ -288,6 +291,7 @@ case $POWERLEVEL9K_MODE in
LOCK_ICON $'\UE0A2'
EXECUTION_TIME_ICON 'Dur'
SSH_ICON '(ssh)'
VPN_ICON '(vpn)'
)
;;
esac

View file

@ -914,6 +914,17 @@ prompt_ip() {
"$1_prompt_segment" "$0" "$2" "cyan" "$DEFAULT_COLOR" "$ip" 'NETWORK_ICON'
}
set_default POWERLEVEL9K_VPN_IP_INTERFACE "tun"
# prompt if vpn active
prompt_vpn_ip() {
for vpn_iface in $(ip tuntap | grep -e ^"$POWERLEVEL9K_VPN_IP_INTERFACE" | cut -d":" -f1)
do
ip=$(ip -4 a show "$vpn_iface" | grep -o "inet\s*[0-9.]*" | grep -o "[0-9.]*")
"$1_prompt_segment" "$0" "$2" "cyan" "$DEFAULT_COLOR" "$ip" 'VPN_ICON'
done
}
prompt_load() {
# The load segment can have three different states
local current_state="unknown"