aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/hyprland/.local/bin/waybar-netspeed
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-02 12:16:38 -0500
committerCraig Jennings <c@cjennings.net>2026-06-02 12:16:38 -0500
commit8c32bbbf9fab115dc51afa17c081e0763cbee717 (patch)
tree246b46b53c956cfea07bc9d1c2b81f9f8de53d65 /dotfiles/hyprland/.local/bin/waybar-netspeed
parent3f370d6c19c83430547d1771b0e6fa669dc7d5c5 (diff)
downloadarchsetup-8c32bbbf9fab115dc51afa17c081e0763cbee717.tar.gz
archsetup-8c32bbbf9fab115dc51afa17c081e0763cbee717.zip
refactor: drop in-repo dotfiles/, move stow tooling to the dotfiles repo
Since the installer clones DOTFILES_REPO into ~/.dotfiles and stows from there, the in-repo dotfiles/ tree was dead weight. Nothing reads it at install time. I removed it (831 files) now that both machines are migrated. The Makefile's stow / restow / reset / unstow / import targets and the dotfile-script unit suites moved to the dotfiles repo. They sit alongside the scripts they manage and run standalone (cd ~/.dotfiles && make ...). This Makefile keeps the VM-integration targets and the installer-helper suite (safe-rm-rf). I updated CLAUDE.md and README.md so stow operations run from ~/.dotfiles, and the dotfile-management, theme, and unit-test sections point at the standalone repo. The README was already describing the old in-repo model from before the installer switched to cloning. This brings it in line.
Diffstat (limited to 'dotfiles/hyprland/.local/bin/waybar-netspeed')
-rwxr-xr-xdotfiles/hyprland/.local/bin/waybar-netspeed70
1 files changed, 0 insertions, 70 deletions
diff --git a/dotfiles/hyprland/.local/bin/waybar-netspeed b/dotfiles/hyprland/.local/bin/waybar-netspeed
deleted file mode 100755
index c285ac5..0000000
--- a/dotfiles/hyprland/.local/bin/waybar-netspeed
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-# Network status indicator for waybar
-# Shows: WiFi icon (signal strength) + SSID, or Ethernet icon + interface
-# Tooltip: upload/download speeds
-
-INTERFACE=$(ip route | awk '/default/ {print $5; exit}')
-
-if [ -z "$INTERFACE" ]; then
- echo '{"text": "󰤭 Offline", "tooltip": "No network connection", "class": "disconnected"}'
- exit 0
-fi
-
-# Measure network speed (requires 1 second delay)
-RX1=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
-TX1=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
-sleep 1
-RX2=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
-TX2=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
-
-RX_RATE=$((RX2 - RX1))
-TX_RATE=$((TX2 - TX1))
-
-format_speed() {
- local bytes=$1
- if [ $bytes -ge 1073741824 ]; then
- printf "%.2f GB/s" $(echo "scale=2; $bytes / 1073741824" | bc)
- elif [ $bytes -ge 1048576 ]; then
- printf "%.2f MB/s" $(echo "scale=2; $bytes / 1048576" | bc)
- elif [ $bytes -ge 1024 ]; then
- printf "%.2f KB/s" $(echo "scale=2; $bytes / 1024" | bc)
- else
- printf "%d B/s" $bytes
- fi
-}
-
-UP=$(format_speed $TX_RATE)
-DOWN=$(format_speed $RX_RATE)
-
-# Determine connection type and get appropriate icon/label
-if [ -d "/sys/class/net/$INTERFACE/wireless" ]; then
- # WiFi connection
- LABEL=$(iw dev "$INTERFACE" info 2>/dev/null | awk '/ssid/ {print $2}')
- [ -z "$LABEL" ] && LABEL="WiFi"
-
- # Get signal strength in dBm
- SIGNAL_DBM=$(iw dev "$INTERFACE" link 2>/dev/null | awk '/signal:/ {print $2}')
-
- # Select icon based on signal dBm
- if [ -z "$SIGNAL_DBM" ]; then
- ICON="󰤯" # No signal
- elif [ "$SIGNAL_DBM" -ge -50 ]; then
- ICON="󰤨" # Excellent
- elif [ "$SIGNAL_DBM" -ge -60 ]; then
- ICON="󰤥" # Good
- elif [ "$SIGNAL_DBM" -ge -70 ]; then
- ICON="󰤢" # Fair
- elif [ "$SIGNAL_DBM" -ge -80 ]; then
- ICON="󰤟" # Weak
- else
- ICON="󰤯" # No signal
- fi
-else
- # Ethernet connection
- ICON="󰈀"
- LABEL="$INTERFACE"
-fi
-
-TOOLTIP="Up: $UP\nDown: $DOWN"
-
-echo "{\"text\": \"<span size='large'>$ICON</span> $LABEL\", \"tooltip\": \"$TOOLTIP\", \"class\": \"connected\"}"