dotfiles

dotfiles - ryukamish edition
Log | Files | Refs | README

commit fd322ade4d50ff0eab695648d69edc5cb2abd1b2
parent fcd1c4bac7bc3c17124331ced6702d5bf72e71fa
Author: ryukamish <[email protected]>
Date:   Mon,  8 Jun 2026 12:25:29 +0530

add: vpn module for waybar

Diffstat:
M.config/waybar/config.jsonc | 12++++++------
A.local/bin/waybar-vpn | 31+++++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc @@ -84,12 +84,12 @@ "on-click": "kitty --app-id TUI.float -e wifitui", "on-click-right": "rfkill toggle wlan" }, - "custom/vpn": { - "format": "VPN", - "exec": "echo '{\"class\": \"connected\"}'", - "exec-if": "test -d /proc/sys/net/ipv4/conf/proton0", + "format": "VPN: <span color='#aaaaaa'>{}</span>", + "exec": "~/.local/bin/waybar-vpn status", + // "exec": "echo '{\"class\": \"connected\"}'", + // "exec-if": "test -d /proc/sys/net/ipv4/conf/proton0", "return-type": "json", - "interval": 5 - }, + "interval": 30 + } } diff --git a/.local/bin/waybar-vpn b/.local/bin/waybar-vpn @@ -0,0 +1,31 @@ +#!/bin/sh + +# first user argument +cmd="$1" + +case "$cmd" in + connect) + # TODO: handle root permission password input + if [ -n $(type "nmcli") ]; then + nmcli connection show --active \ + rg -i 'wireguard' + fi + ;; + disconnect) + # `wg-quick` requires root permission to disconnect + # don't have the solution right now + ;; + status) + vpn=$(nmcli connection show --active | rg -i 'wireguard' | awk '{print $1}') + if [ -n "$vpn" ]; then + printf "{\"text\": \"$vpn\", \"class\": \"wireguard\", \"alt\": \"disconnected\" }\n" + else + printf "{\"text\": \"DC'D\", \"class\": \"wireguard\", \"alt\": \"disconnected\" }\n" + fi + ;; + *) + # print usage if not used with any of the below three commands + echo -e "Usage: %s {status|connect|disconnect}\n" + exit 1 + ;; +esac