diff --git a/CON.tmux b/CON.tmux new file mode 100755 index 0000000..856ffce --- /dev/null +++ b/CON.tmux @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +online_status_icon="#($CURRENT_DIR/scripts/CON.sh)" +online_status_interpolation_string="\#{CON}" + +source $CURRENT_DIR/scripts/shared.sh + +do_interpolation() { + local string="$1" + local interpolated="${string/$online_status_interpolation_string/$online_status_icon}" + echo "$interpolated" +} + +update_tmux_option() { + local option="$1" + local option_value="$(get_tmux_option "$option")" + local new_option_value="$(do_interpolation "$option_value")" + set_tmux_option "$option" "$new_option_value" +} + +main() { + update_tmux_option "status-right" + update_tmux_option "status-left" +} +main diff --git a/DNS.tmux b/DNS.tmux new file mode 100755 index 0000000..0dff72a --- /dev/null +++ b/DNS.tmux @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +online_status_icon="#($CURRENT_DIR/scripts/DNS.sh)" +online_status_interpolation_string="\#{DNS}" + +source $CURRENT_DIR/scripts/shared.sh + +do_interpolation() { + local string="$1" + local interpolated="${string/$online_status_interpolation_string/$online_status_icon}" + echo "$interpolated" +} + +update_tmux_option() { + local option="$1" + local option_value="$(get_tmux_option "$option")" + local new_option_value="$(do_interpolation "$option_value")" + set_tmux_option "$option" "$new_option_value" +} + +main() { + update_tmux_option "status-right" + update_tmux_option "status-left" +} +main diff --git a/GW.tmux b/GW.tmux new file mode 100755 index 0000000..d86242f --- /dev/null +++ b/GW.tmux @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +online_status_icon="#($CURRENT_DIR/scripts/GW.sh)" +online_status_interpolation_string="\#{GW}" + +source $CURRENT_DIR/scripts/shared.sh + +do_interpolation() { + local string="$1" + local interpolated="${string/$online_status_interpolation_string/$online_status_icon}" + echo "$interpolated" +} + +update_tmux_option() { + local option="$1" + local option_value="$(get_tmux_option "$option")" + local new_option_value="$(do_interpolation "$option_value")" + set_tmux_option "$option" "$new_option_value" +} + +main() { + update_tmux_option "status-right" + update_tmux_option "status-left" +} +main diff --git a/screenshots/offline_indicator.png b/screenshots/offline_indicator.png index f01f433..88c8d84 100644 Binary files a/screenshots/offline_indicator.png and b/screenshots/offline_indicator.png differ diff --git a/screenshots/offline_indicator_linux.png b/screenshots/offline_indicator_linux.png index dc8cded..73ff990 100644 Binary files a/screenshots/offline_indicator_linux.png and b/screenshots/offline_indicator_linux.png differ diff --git a/screenshots/online_indicator.png b/screenshots/online_indicator.png index a79beda..58b45ea 100644 Binary files a/screenshots/online_indicator.png and b/screenshots/online_indicator.png differ diff --git a/screenshots/online_indicator_linux.png b/screenshots/online_indicator_linux.png index 1300a99..5a43aeb 100644 Binary files a/screenshots/online_indicator_linux.png and b/screenshots/online_indicator_linux.png differ diff --git a/scripts/CON.sh b/scripts/CON.sh new file mode 100755 index 0000000..9b5f6be --- /dev/null +++ b/scripts/CON.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +online_option_string="@online_icon" +offline_option_string="@offline_icon" +ping_timeout_string="@ping_timeout" +route_to_ping_string="@route_to_ping" + +online_icon_osx="✅ " +online_icon="#[fg=green]ok##[fg=white]" +offline_icon="#[fg=red]down##[fg=white]" +offline_icon_osx="⛔️ " +offline_icon_cygwin="X" +ping_timeout_default="3" +route_to_ping_default="8.8.8.8" + +source $CURRENT_DIR/shared.sh + +is_osx() { + [ $(uname) == "Darwin" ] +} + +is_cygwin() { + [[ $(uname) =~ CYGWIN ]] +} + +online_icon_default() { + if is_osx; then + echo "$online_icon_osx" + else + echo "$online_icon" + fi +} + +offline_icon_default() { + if is_osx; then + echo "$offline_icon_osx" + elif is_cygwin; then + echo "$offline_icon_cygwin" + else + echo "$offline_icon" + fi +} + +online_status() { + if is_osx; then + local timeout_flag="-t" + else + local timeout_flag="-w" + fi + if is_cygwin; then + local number_pings_flag="-n" + else + local number_pings_flag="-c" + fi + local ping_timeout="$(get_tmux_option "$ping_timeout_string" "$ping_timeout_default")" + local ping_route="$(get_tmux_option "$route_to_ping_string" "$route_to_ping_default")" + ping "$number_pings_flag" 1 "$timeout_flag" "$ping_timeout" "$ping_route" >/dev/null 2>&1 +} + +print_icon() { + if $(online_status); then + printf "$(get_tmux_option "$online_option_string" "$(online_icon_default)")" + else + printf "$(get_tmux_option "$offline_option_string" "$(offline_icon_default)")" + fi +} + +main() { + print_icon +} +main diff --git a/scripts/DNS.sh b/scripts/DNS.sh new file mode 100755 index 0000000..d8b6f73 --- /dev/null +++ b/scripts/DNS.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +online_option_string="@online_icon" +offline_option_string="@offline_icon" +ping_timeout_string="@ping_timeout" +route_to_ping_string="@route_to_ping" + +online_icon_osx="✅ " +online_icon="#[fg=green]ok##[fg=white]" +offline_icon="#[fg=red]down##[fg=white]" +offline_icon_osx="⛔️ " +offline_icon_cygwin="X" +ping_timeout_default="3" +route_to_ping_default="www.google.com" + +source $CURRENT_DIR/shared.sh + +is_osx() { + [ $(uname) == "Darwin" ] +} + +is_cygwin() { + [[ $(uname) =~ CYGWIN ]] +} + +online_icon_default() { + if is_osx; then + echo "$online_icon_osx" + else + echo "$online_icon" + fi +} + +offline_icon_default() { + if is_osx; then + echo "$offline_icon_osx" + elif is_cygwin; then + echo "$offline_icon_cygwin" + else + echo "$offline_icon" + fi +} + +online_status() { + if is_osx; then + local timeout_flag="-t" + else + local timeout_flag="-w" + fi + if is_cygwin; then + local number_pings_flag="-n" + else + local number_pings_flag="-c" + fi + local ping_timeout="$(get_tmux_option "$ping_timeout_string" "$ping_timeout_default")" + local ping_route="$(get_tmux_option "$route_to_ping_string" "$route_to_ping_default")" + ping "$number_pings_flag" 1 "$timeout_flag" "$ping_timeout" "$ping_route" >/dev/null 2>&1 +} + +print_icon() { + if $(online_status); then + printf "$(get_tmux_option "$online_option_string" "$(online_icon_default)")" + else + printf "$(get_tmux_option "$offline_option_string" "$(offline_icon_default)")" + fi +} + +main() { + print_icon +} +main diff --git a/scripts/GW.sh b/scripts/GW.sh new file mode 100755 index 0000000..9de7089 --- /dev/null +++ b/scripts/GW.sh @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +online_option_string="@online_icon" +offline_option_string="@offline_icon" +ping_timeout_string="@ping_timeout" +route_to_ping_string="@route_to_ping" + +online_icon_osx="✅ " +offline_icon_osx="⛔️ " +online_icon="#[fg=green]ok##[fg=white]" +offline_icon="#[fg=red]down##[fg=white]" +offline_icon_cygwin="X" +ping_timeout_default="3" + +is_osx() { + [ $(uname) == "Darwin" ] +} + +is_cygwin() { + [[ $(uname) =~ CYGWIN ]] +} + +if is_osx; then + route_to_ping_default="$(ifconfig en0 | grep netmask | cut -d ' ' -f2)" +else + route_to_ping_default="$(ip route | awk NR==1'{print $3}')" +fi + +source $CURRENT_DIR/shared.sh + + +online_icon_default() { + if is_osx; then + echo "$online_icon_osx" + else + echo "$online_icon" + fi +} + +offline_icon_default() { + if is_osx; then + echo "$offline_icon_osx" + elif is_cygwin; then + echo "$offline_icon_cygwin" + else + echo "$offline_icon" + fi +} + +online_status() { + if is_osx; then + local timeout_flag="-t" + else + local timeout_flag="-w" + fi + if is_cygwin; then + local number_pings_flag="-n" + else + local number_pings_flag="-c" + fi + local ping_timeout="$(get_tmux_option "$ping_timeout_string" "$ping_timeout_default")" + local ping_route="$(get_tmux_option "$route_to_ping_string" "$route_to_ping_default")" + ping "$number_pings_flag" 1 "$timeout_flag" "$ping_timeout" "$ping_route" >/dev/null 2>&1 +} + +print_icon() { + if $(online_status); then + printf "$(get_tmux_option "$online_option_string" "$(online_icon_default)")" + else + printf "$(get_tmux_option "$offline_option_string" "$(offline_icon_default)")" + fi +} + +main() { + print_icon +} +main diff --git a/scripts/online_status_icon.sh b/scripts/online_status_icon.sh old mode 100755 new mode 100644