diff --git a/waybar/config.json b/waybar/config.json index e9fe438..366ecb4 100644 --- a/waybar/config.json +++ b/waybar/config.json @@ -1,77 +1,86 @@ { - "layer": "top", - "height": 35, - "modules-left": ["sway/workspaces", "sway/mode", "custom/media"], - "modules-center": ["sway/window"], - "modules-right": ["pulseaudio", "custom/network","backlight", "battery", "clock", "tray", "idle_inhibitor"], - "sway/workspaces": { - "disable-scroll": true, - "all-outputs": true - }, - "sway/mode": { - "format": "{}" - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - "tray": { - "spacing": 10 - }, - "clock": { - "tooltip-format": "{:%Y-%m-%d | %H:%M}", - "format-alt": "{:%Y-%m-%d}" - }, - "backlight": { - "format": "{icon} {percent}% ", - "format-icons": ["", "", "", ""] - }, - "battery": { - "interval": 1, - "states": { - "good": 95, - "warning": 30, - "critical": 15 - }, - "format": " {capacity}%", - "format-discharging": "{icon} {capacity}%", - "format-icons": ["", "", "", "", ""] - }, - "pulseaudio": { - "format": "{icon} {volume}%", - "format-bluetooth": "{volume}% {icon}", - "format-muted": "", - "format-icons": { - "headphones": "", - "handsfree": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", ""] - }, - "on-click": "pavucontrol" - }, - "custom/media": { - "format": "{icon} {}", - "return-type": "json", - "max-length": 40, - "format-icons": { - "spotify": "", - "default": "🎜" - }, - "on-click": "playerctl play-pause", - "escape": true, - "exec": "$HOME/.config/waybar/custom_modules/mediaplayer.py 2> /dev/null" - }, - "custom/network": { - "escape" :true, - "exec": "$HOME/.config/waybar/custom_modules/wifi.sh 2> /dev/null", - "on-click": "rofi-wifi-menu", - "restart-interval": 1, - "return-type": "json" + "layer": "top", + "height": 35, + "modules-left": ["sway/workspaces", "sway/mode", "custom/media"], + "modules-center": ["sway/window"], + "modules-right": [ + "pulseaudio", + "custom/network", + "backlight", + "battery", + "clock", + "tray", + "idle_inhibitor" + ], + "sway/workspaces": { + "disable-scroll": true, + "all-outputs": true + }, + "sway/mode": { + "format": "{}" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" } + }, + "tray": { + "spacing": 10 + }, + "clock": { + "tooltip-format": "{:%Y-%m-%d | %H:%M}", + "format-alt": "{:%Y-%m-%d}" + }, + "backlight": { + "format": "{icon} {percent}% ", + "format-icons": ["", "", "", ""] + }, + "battery": { + "interval": 1, + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": " {capacity}%", + "format-discharging": "{icon} {capacity}%", + "format-icons": ["", "", "", "", ""] + }, + "pulseaudio": { + "format": "{icon} {volume}%", + "format-bluetooth": "{volume}% {icon}", + "format-muted": "", + "format-icons": { + "headphones": "", + "handsfree": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "on-click": "playerctl play-pause", + "escape": true, + "exec": "$HOME/.config/waybar/custom_modules/mediaplayer.py 2> /dev/null" + }, + "custom/network": { + "escape": true, + "exec": "$HOME/.config/waybar/custom_modules/wifi.sh status 2> /dev/null", + "on-click": "rofi-wifi-menu", + "on-click-right": "swaymsg exec \"~/.config/sway/scripts/tty-popup tunnel ~/.config/waybar/custom_modules/wifi.sh onclick\"", + "restart-interval": 1, + "return-type": "json" + } } diff --git a/waybar/custom_modules/wifi.sh b/waybar/custom_modules/wifi.sh index 92d39ca..7662543 100755 --- a/waybar/custom_modules/wifi.sh +++ b/waybar/custom_modules/wifi.sh @@ -1,21 +1,31 @@ #! /usr/bin/env bash -main(){ - connected_val="$(iwgetid 1> /dev/null ; echo $?)" - if [ $connected_val -eq 255 ]; then - echo '{"text": "⚠ Disconnected", "class":"disconnected"}' - return +status(){ + connected_val="$(iwgetid 1> /dev/null ; echo $?)" + if [ "$connected_val" -eq 255 ]; then + echo '{"text": "⚠ Disconnected", "class":"disconnected"}' + return + else + wg_val="$(wg 2> /dev/null ; echo $?)" + if [ "$wg_val" -eq 0 ]; then + echo "{\"text\": \" $(iwgetid -r)\", \"class\":\"connected\"}" else - wg_val="$(wg 2> /dev/null ; echo $?)" - if [ $wg_val -eq 0 ]; then - echo "{\"text\": \" $(iwgetid -r)\", \"class\":\"connected\"}" - else - echo "{\"text\": \"聯 $(iwgetid -r)\", \"class\":\"secured\"}" - fi + echo "{\"text\": \"聯 $(iwgetid -r)\", \"class\":\"secured\"}" fi + fi } -while true; do - main - sleep 1 -done +onclick(){ + wg_val="$(wg 2> /dev/null ; echo $?)" + if [ "$wg_val" -eq 0 ]; then + echo "Securing Connection" + wg-quick up mullvad-us18 + else + echo "Disconnecting tunnel" + wg-quick down mullvad-us18 + fi +} + +case "$1" in + onclick|status) $1 ;; +esac