View Single Post
  #7   (View Single Post)  
Old 18th October 2019
shep shep is offline
Real Name: Scott
Arp Constable
 
Join Date: May 2008
Location: Dry and Dusty
Posts: 1,306
Default

Tint2 executor to display current wifi connection data.

This project tries to use OpenBSD tools whenever possible and recently the project has implemented a feature which can connect to multiple networks provided they are listed in your /etc/hostname.if file. The following script lets the user know, with a single click, which of the possible networks is being used.

OpenBSD gains Wi-Fi "auto-join".

The script is still a little rough. One issue is that ifconfig line that is parsed for connection data can lead off with "nwid" or "ieee80211". The script currently uses "grep ieee80211". If you do not use the join command your can either replace ieee80211 with nwid in the script or add "join" to your /etc/hostname.if. Some spacing issues in the yad output lead to the addition of non-printable \t "tab".
obsd_wifi_tint2.sh
Code:
#!/bin/sh
TEST="$(nc -dzw1 8.8.8.8 443 2>&1)"
if echo $TEST | grep '^Connect' >/dev/null ; then

# IFS; Inter Field Separator (see man ksh)
# to preserve newlines,save and set IFS to space only
OLD_IFS="${IFS}"
IFS=" "

# capture 'ifconfig' output once and reuse ....
IFCONFIG=$(ifconfig)
#echo ${IFCONFIG}

NWID="$(echo ${IFCONFIG} | grep ieee80211 | awk '{print $3}')"
CHAN="$(echo ${IFCONFIG} | grep ieee80211 | awk '{print $5}')"
BSSID="$(echo ${IFCONFIG} | grep ieee80211 | awk '{print $7}')"
SN="$(echo ${IFCONFIG} | grep ieee80211 | awk '{print $8}')"
IP="$(echo ${IFCONFIG} | grep inet | tail -n1 | awk '{print $2}')"

cat <<END
--------------------------------------
    Current WiFi Connection
--------------------------------------

NWID    \t:  $NWID
CHAN    \t:  $CHAN
BSSID   \t:  $BSSID
S/N     \t:  $SN
IP      \t:  $IP
END
else
cat <<END
--------------------------------------
Currently Connection as
tested by
nc google.com 443 is Down
--------------------------------------
END
fi
yad_wifi.sh
Code:
#!/bin/sh
yad --geometry=-0+38 --text="$(sh /home/jsh/scripts/obsd_wifi_tint2.sh 2>&1)" \
--undecorated --button=gtk-close:6
I added this as a second "button" in my tint2 panel configuration (P).
Code:
#-------------------------------------
# Panel
panel_items = TSPPC
panel_size = 100% 38
-----
 #-------------------------------------
# Button 1
button = new
button_icon = /usr/local/share/icons/gnome/32x32/status/weather-overcast.png
button_tooltip = "Yakima, WA Weather"
button_padding = 6 3 0
button_max_icon_size = 24
button_lclick_command = sh ~/scripts/yad_weather.sh
button_mclick_command =
button_rclick_command = sh ~/scripts/yad_weather.sh
# Button 2
button = new
button_icon = /usr/local/share/icons/gnome/32x32/devices/network-wireless.png
button_tooltip = "Wireless Connection"
button_padding = 6 3 0
button_max_icon_size = 24
button_lclick_command = sh ~/scripts/yad_wifi.sh
button_mclick_command =
button_rclick_command = sh ~/scripts/yad_wifi.sh
For those using Gnome, KDE4 or XFCE4, you can either make a obsd_wifi.desktop file ,described above, or use yad --notification to produce a sytemtray entry
yad Notification Options
yad Notification

This is the output positioned under the wireless icon in the tint2 panel
Name:  wifi.jpg
Views: 160
Size:  18.1 KB

Last edited by shep; 18th October 2019 at 09:10 PM.
Reply With Quote