From 369179c057d8cf18caa14f963468f2b651584f15 Mon Sep 17 00:00:00 2001 From: thomas Date: Tue, 25 Aug 2026 09:34:04 +0100 Subject: [PATCH] added vpn exclusitivity to allow functions to coexist --- .../.config/quickshell/config/VpnExclusivity.qml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 dotfiles/.config/quickshell/config/VpnExclusivity.qml diff --git a/dotfiles/.config/quickshell/config/VpnExclusivity.qml b/dotfiles/.config/quickshell/config/VpnExclusivity.qml new file mode 100644 index 0000000..1859446 --- /dev/null +++ b/dotfiles/.config/quickshell/config/VpnExclusivity.qml @@ -0,0 +1,16 @@ +pragma Singleton +import QtQuick + +// Tailscale, Mullvad, and ProtonVPN all fight over the default route/DNS if +// more than one is active at once (see VpnIndicator.qml's header comment) — +// only one of the three should ever actually be connected. This singleton +// is the shared signal between the two widget files: VpnIndicator.qml +// writes Mullvad/ProtonVPN's live connection state here as it polls them; +// TailscaleIndicator.qml reads it to back off (`tailscale down`) rather +// than stay up alongside either one, and to refuse turning Tailscale back +// on while one is still connected. +QtObject { + property bool mullvadConnected: false + property bool protonConnected: false + readonly property bool commercialVpnActive: mullvadConnected || protonConnected +}