updating a bunch of shit
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# rofi config without entry so to make select from available options only
|
||||
rofiprompt=theme/passmenu.rasi
|
||||
# normal rofi menu
|
||||
rofidmenu=theme/passmenu.rasi
|
||||
# rofi config for password
|
||||
rofipass=theme/passmenu.rasi
|
||||
|
||||
# Power Status
|
||||
flag=$(cat /sys/class/net/wl*/flags)
|
||||
|
||||
if [ "$flag" = "0x1003" ]; then
|
||||
power="On"
|
||||
else
|
||||
power="Off"
|
||||
fi
|
||||
|
||||
# Connection Status
|
||||
state=$(cat /sys/class/net/wl*/operstate)
|
||||
|
||||
if [ "$state" = "up" ]; then
|
||||
status=$(nmcli | grep "^wlp" | sed 's/\ connected\ to/Connected to/' | cut -d ':' -f2)
|
||||
else
|
||||
status="Disconnected"
|
||||
fi
|
||||
|
||||
# ┌─┐┌─┐┬ ┬┌─┐┬─┐
|
||||
# ├─┘│ ││││├┤ ├┬┘
|
||||
# ┴ └─┘└┴┘└─┘┴└─
|
||||
|
||||
powertoggle=$( [ "$flag" = "0x1003" ] && echo "Power Off" || echo "Power On" )
|
||||
|
||||
powerswitch() {
|
||||
if [ "$powertoggle" = "Power Off" ]; then
|
||||
nmcli radio wifi off
|
||||
elif [ "$powertoggle" = "Power On" ]; then
|
||||
nmcli radio wifi on
|
||||
fi
|
||||
}
|
||||
|
||||
# ┌─┐┌─┐┌┐┌┌┐┌┌─┐┌─┐┌┬┐
|
||||
# │ │ │││││││├┤ │ │
|
||||
# └─┘└─┘┘└┘┘└┘└─┘└─┘ ┴
|
||||
|
||||
connections() {
|
||||
list=$(nmcli --fields "SECURITY,SSID" device wifi list | tail -n +2 | sed "s/ */ /g" | sed -E "s/WPA*.?//g" | sed "s/^--//g" | sed "s/ //g")
|
||||
networks=$(printf "$list" | rofi -theme $rofiprompt -dmenu -i -hover-select -p "Select Wifi Network
|
||||
$status")
|
||||
wifi=$( echo "$networks" | sed "s/ //g" | sed "s/ //g" | xargs)
|
||||
[ -z "$networks" ] && exit
|
||||
nopass="No Password"
|
||||
pass=$(printf "$nopass\nCancel" | rofi -theme $rofipass -dmenu -i -hover-select -password -p "Wifi Password")
|
||||
|
||||
if [ "$pass" = "" ]; then
|
||||
exit
|
||||
elif [ "$pass" = "$nopass" ]; then
|
||||
nmcli dev wifi con "$wifi" && printf "exit" | rofi -theme $rofiprompt -dmenu -only-match -i -p "Successfully Connected to $wifi" && exit
|
||||
elif [ "$pass" = "Cancel" ]; then
|
||||
exit
|
||||
else
|
||||
nmcli dev wifi con "$wifi" password "$pass" && printf "exit" | rofi -theme $rofiprompt -dmenu -i -only-match -p "Successfully Connected to $wifi" && exit
|
||||
fi
|
||||
|
||||
printf "exit" | rofi -theme $rofiprompt -dmenu -i -p -only-match "Failed to Connect $wifi" && exit
|
||||
}
|
||||
|
||||
|
||||
# ┌┬┐┌─┐┌┐┌┬ ┬┌─┐┬
|
||||
# │││├─┤││││ │├─┤│
|
||||
# ┴ ┴┴ ┴┘└┘└─┘┴ ┴┴─┘
|
||||
|
||||
manual() {
|
||||
|
||||
wifi=$(rofi -theme $rofidmenu -dmenu -i -p "Enter Wifi Name")
|
||||
|
||||
[ -z "$wifi" ] && exit
|
||||
nopass="Run Without Password"
|
||||
pass=$(printf "$nopass\nCancel" | rofi -theme $rofipass -dmenu -i -password -p "Wifi Password")
|
||||
|
||||
if [ "$pass" = "" ]; then
|
||||
exit
|
||||
elif [ "$pass" = "$nopass" ]; then
|
||||
nmcli dev wifi con "$wifi" && printf "exit" | rofi -theme $rofiprompt -dmenu -i -only-match -p "Successfully Connected to $wifi" && exit
|
||||
elif [ "$pass" = "Cancel" ]; then
|
||||
exit
|
||||
else
|
||||
nmcli dev wifi con "$wifi" password "$pass" && printf "exit" | rofi -theme $rofiprompt -dmenu -i -only-match -p "Successfully Connected to $wifi" && exit
|
||||
fi
|
||||
|
||||
printf "exit" | rofi -theme $rofiprompt -dmenu -only-match -i -p "Failed to Connect $wifi" && exit
|
||||
}
|
||||
|
||||
# ┌─┐┌─┐┌┬┐┬┌─┐┌┐┌┌─┐
|
||||
# │ │├─┘ │ ││ ││││└─┐
|
||||
# └─┘┴ ┴ ┴└─┘┘└┘└─┘
|
||||
|
||||
options="$powertoggle\nConnections\nConnect Manually"
|
||||
|
||||
rofiwifi=$(printf "$options" | rofi -theme $rofiprompt -dmenu -i -hover-select -p "Wifi
|
||||
Powered: $power
|
||||
Status: $status")
|
||||
|
||||
case $rofiwifi in
|
||||
$powertoggle)
|
||||
powerswitch
|
||||
;;
|
||||
Connections)
|
||||
notify-send "Scanning"
|
||||
connections
|
||||
;;
|
||||
"Connect Manually")
|
||||
manual
|
||||
esac 2>/dev/null
|
||||
|
||||
Reference in New Issue
Block a user