-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwifi_bar_info.sh
executable file
·83 lines (65 loc) · 1.83 KB
/
wifi_bar_info.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env bash
#===============================================================================
# FILE: wifi_bar_info.sh
# USAGE: ./wifi_bar_info.sh
# DESCRIPTION: gives your essid and quality for use in tmux or xmobar
# OPTIONS: none
# REQUIREMENTS: wireless-tools, awk
# BUGS: probably a bunch
# AUTHOR: Cesar Bodden (), [email protected]
# ORGANIZATION: pissedoffadmins.com
# CREATED: 03/19/2019 06:14:26 PM EDT
# REVISION: .2
#===============================================================================
case "$(echo $SHELL 2>/dev/null)" in
'/bin/bash')
set -o nounset
set -o pipefail
;;
esac
if [[ -z "$(which iw 2>/dev/null)" && -z "$(which iwconfig 2>/dev/null)" ]]
then
echo "WIFI tools not found"
exit 1
fi
if [ -n "$(which iw 2>/dev/null)" ]
then
_IFACE=$(\
iw dev 2>&1 \
| awk '/Interface/ {print $2}')
_ESSID=$(\
iw dev ${_IFACE} link 2>&1 \
| awk '/SSID:/ {print $2}')
if [[ -z ${_ESSID} ]]
then
printf "%s\n" "No wifi detected"
exit 1
fi
_STR=$(\
iw dev ${_IFACE} link 2>&1 \
| awk '/signal/ {print $2}')
echo "${_ESSID} [${_STR} / -110]"
else
_IFACE=$(\
iwconfig 2>&1 \
| awk '/IEEE/ {print $1}')
_ESSID=$(\
iwconfig ${_IFACE} 2>&1 \
| awk -F '"' '/ESSID/ {print $2}')
if [[ -z ${_ESSID} ]]
then
printf "%s\n" "No wifi detected"
exit 1
fi
_STR=$(\
iwconfig ${_IFACE} 2>&1 \
| awk -F '[ |=]' '/Quality/ {print $13}')
_BAR=$(\
expr ${_STR%%/*} / 10)
_TIC=$(eval \
printf "X%.0s" {1..${_BAR}})
_MRK=$(eval \
printf "%s%-$((${_STR##*/}/10))s%s" "[" "${_TIC}" "]" \
| tr ' ~' '- ')
echo ${_ESSID} ${_MRK}
fi