diff --git a/LICENSE b/LICENSE deleted file mode 100644 index b0fb0cf..0000000 --- a/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This repository uses code from @dottmp on github, -for the Mullvad VPN waybar module. - -MIT License - -Copyright (c) 2026 dottmp - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/home-manager/modules/hypr/mullvad.sh b/home-manager/modules/hypr/mullvad.sh deleted file mode 100755 index 88eed9f..0000000 --- a/home-manager/modules/hypr/mullvad.sh +++ /dev/null @@ -1,142 +0,0 @@ -#!/run/current-system/sw/bin/bash - -# CREDIT TO @dottmp on Github (https://github.com/dottmp/mullvad-waybar-module/blob/main/mullvad.sh) -# LICENSED UNDER MIT: - -# MIT License - -# Copyright (c) 2026 dottmp - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - - -# @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -# Mullvad CLI -# -# Manage the Mullvad VPN daemon via a convenient CLI -# Usage: mullvad -# -# Commands: -# account Control and display information about your Mullvad account -# auto-connect Control the daemon auto-connect setting -# beta-program Receive notifications about beta updates -# lockdown-mode Control whether to block network access when disconnected from VPN -# dns Configure DNS servers to use when connected -# lan Control the allow local network sharing setting -# connect Connect to a VPN relay -# disconnect Disconnect from the VPN -# reconnect Reconnect to any matching VPN relay -# relay Manage relay and tunnel constraints -# api-access Manage Mullvad API access methods -# obfuscation Manage use of obfuscation protocols for WireGuard. Can make WireGuard traffic look like something else on the network. Helps circumvent censorship and to establish a tunnel when on restricted networks -# split-tunnel Manage split tunneling. To launch applications outside the tunnel, use the program 'mullvad-exclude' instead of this command -# status Return the state of the VPN tunnel -# tunnel Manage tunnel options -# version Show information about the current Mullvad version and available versions -# factory-reset Reset settings, caches, and logs -# reset-settings Reset settings only, but remain logged in and keep logs and caches -# custom-list Manage custom lists -# import-settings Apply a JSON patch generated by 'export-settings' -# export-settings Export a JSON patch based on the current settings -# help Print this message or the help of the given subcommand(s) - - -# @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -# Mullvad Methods -vpn_get_status() { - mullvad status -} - -vpn_reconnect() { - mullvad reconnect -} - -vpn_disconnect() { - mullvad disconnect -} - -vpn_connect() { - mullvad connect -} - - -# @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -# Vars -VPN_STATUS="$(vpn_get_status)" -VPN_CONNECTION=$(echo "$VPN_STATUS" | head -n1 | xargs) -VPN_RELAY=$(echo "$VPN_STATUS" | awk -F'Relay: ' '/Relay:/ {print $2}' | xargs) -VPN_FEATURES=$(echo "$VPN_STATUS" | awk -F'Features: ' '/Features:/ {print $2}' | xargs) -VPN_VISIBLE_LOCATION=$(echo "$VPN_STATUS" | awk -F'Visible location: ' '/Visible location:/ {print $2}' | xargs) - - -# @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -# Actions -# -# [toggle_connection] Connect/disconnect to a VPN relay based on current status and send notification -toggle_connection() { - if [ "$VPN_CONNECTION" = "Connected" ]; then - vpn_disconnect - else - vpn_connect - fi - - notify-send - sleep 1 -} - -# [reconnect] Reconnect to any matching VPN relay and send notification -reconnect() { - vpn_reconnect - - notify-send - sleep 1 -} - -# [get_module_data] Get data for custom/mullvad module in waybar. Returns waybar JSON -get_module_data() { - local class alt tooltip - - tooltip="Mullvad VPN\n\nStatus: $VPN_CONNECTION\nRelay: $VPN_RELAY\nFeatures: $VPN_FEATURES\nVisible Location: $VPN_VISIBLE_LOCATION" - - case "$VPN_CONNECTION" in - Connected) - class="connected" - alt="connected" - ;; - Connecting) - class="connecting" - alt="connecting" - ;; - *) - class="disconnected" - alt="disconnected" - ;; - esac - - echo "{\"text\": \"$VPN_CONNECTION\", \"tooltip\": \"$tooltip\", \"alt\": \"$alt\", \"class\": \"$class\"}" -} - - -# @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -# Input -case "$1" in -toggle) toggle_connection ;; -reconnect) reconnect ;; -*) get_module_data ;; -esac diff --git a/home-manager/modules/hypr/waybar.nix b/home-manager/modules/hypr/waybar.nix index c1e96c0..fa33d10 100644 --- a/home-manager/modules/hypr/waybar.nix +++ b/home-manager/modules/hypr/waybar.nix @@ -12,7 +12,6 @@ "hyprland/workspaces" "niri/workspaces" # "niri/window" - "custom/mullvad" ]; modules-center = [ "clock" ]; modules-right = [ @@ -22,22 +21,6 @@ "battery" ]; - "custom/mullvad" = { - "format" = "{icon}"; - "exec" = "/home/zeph/nix/home-manager/modules/hypr/mullvad.sh"; - "interval" = 10; - "return-type" = "json"; - "on-click" = "/home/zeph/nix/home-manager/modules/hypr/mullvad.sh toggle"; - "on-click-middle" = "mullvad-vpn"; - "on-click-right" = "/home/zeph/nix/home-manager/modules/hypr/mullvad.sh reconnect"; - "format-icons" = { - "connected" = ""; - "connecting" = ""; - "disconnected" = ""; - }; - "tooltip" = true; - }; - "hyprland/workspaces" = { disable-scroll = true; all-outputs = true; @@ -106,25 +89,6 @@ @define-color purple #b16286; @define-color aqua #689d6a; @define-color orange #d65d0e; - @define-color error #F96184; - @define-color foreground #D3D9FF; - @define-color success #01D38F; - - #custom-mullvad { - background-color: @bg1; - min-width: 14px; - margin: 3px 2px; - padding: 2px 6px; - border: 2px solid @orange; - border-radius: 0; - } - - #custom-mullvad.connecting { - color: @foreground; - } - #custom-mullvad.connected { - color: @success; - } * { font-family: "JetBrainsMono Nerd Font", monospace;