diff options
| author | spl3g <spleefer6@yandex.ru> | 2025-05-01 15:02:43 +0300 |
|---|---|---|
| committer | spl3g <spleefer6@yandex.ru> | 2025-05-01 15:16:52 +0300 |
| commit | c3be51a077b4a74a512928e814aed2146b4be681 (patch) | |
| tree | 212dde62c2d8a812bf6b3f0014da0dbf1bd8b260 /home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh | |
| parent | 31eeedf686c9d2c73c733b4c124b850df1751b24 (diff) | |
feat(waybar): add vpn status
Diffstat (limited to 'home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh')
| -rwxr-xr-x | home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh b/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh index a712a1e..c7f42be 100755 --- a/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh +++ b/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh @@ -2,8 +2,12 @@ ROFI_CMD="rofi -dmenu -theme-str listview{enabled:false;} -p" LOCAL_STORAGE=~/.local/share/toggle +TMP_PATH=/tmp/vpn-status V2RAYA_URL="http://localhost:2017" +DBUS_INTERFACE="com.vpn_status" +DBUS_MEMBER="StatusChanged" + set_token() { login=$(echo "" | $ROFI_CMD "Enter login > ") password=$(echo "" | $ROFI_CMD "Enter password > " -theme-str 'entry {enabled: false;}') @@ -33,6 +37,19 @@ toggle() { echo $response | jq ".data.running" -r } +check_status() { + case $(cat $TMP_PATH) in + true) + output='{"text": ""}' + ;; + *) + output='{"text": ""}' + ;; + esac + echo $output | jq --unbuffered --compact-output +} + + if [[ ! -d "${LOCAL_STORAGE}" ]]; then mkdir "${LOCAL_STORAGE}" fi @@ -48,14 +65,29 @@ if [[ -z "${TOKEN}" ]]; then fi STATUS=$(get_status $TOKEN) -if [[ $STATUS == "true" ]]; then - NEW_STATUS=$(toggle $TOKEN DELETE) +echo $STATUS > $TMP_PATH + +if [[ $1 == "waybar" ]]; then + check_status + + dbus-monitor --profile "interface='${DBUS_INTERFACE}',member='${DBUS_MEMBER}'" | + while read -r line; do + check_status + done else - NEW_STATUS=$(toggle $TOKEN POST) -fi + if [[ $STATUS == "true" ]]; then + NEW_STATUS=$(toggle $TOKEN DELETE) + else + NEW_STATUS=$(toggle $TOKEN POST) + fi -if [[ $NEW_STATUS == "null" ]]; then - set_token -fi + if [[ $NEW_STATUS == "null" ]]; then + set_token + exit 0 + fi -notify-send v2rayA "running: ${NEW_STATUS}" + echo $NEW_STATUS > $TMP_PATH + dbus-send --type=signal / "${DBUS_INTERFACE}.${DBUS_MEMBER}" + + notify-send v2rayA "running: ${NEW_STATUS}" +fi |
