updated nvim init.lua and waybar network module
This commit is contained in:
50
waybar/scripts/network.sh
Executable file
50
waybar/scripts/network.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Path for the temporary file to store previous stats
|
||||
STATS_FILE="/tmp/waybar_net_stats"
|
||||
|
||||
# Find the default network interface
|
||||
INTERFACE=$(ip route | grep '^default' | awk '{print $5}' | head -n1)
|
||||
|
||||
# Exit if no active interface is found
|
||||
if [ -z "$INTERFACE" ]; then
|
||||
echo "{\"text\": \"No connection\"}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Get the IP address for the interface
|
||||
IP_ADDR=$(ip -4 addr show "$INTERFACE" | grep -oP 'inet \K[\d.]+')
|
||||
|
||||
# Get current time and byte counts
|
||||
TIME_NOW=$(date +%s)
|
||||
RX_BYTES_NOW=$(cat "/sys/class/net/$INTERFACE/statistics/rx_bytes")
|
||||
TX_BYTES_NOW=$(cat "/sys/class/net/$INTERFACE/statistics/tx_bytes")
|
||||
|
||||
# Initialize speeds to 0
|
||||
RX_MBPS="0.00"
|
||||
TX_MBPS="0.00"
|
||||
|
||||
# Read previous values if the stats file exists
|
||||
if [ -f "$STATS_FILE" ]; then
|
||||
source "$STATS_FILE" # This loads PREV_TIME, PREV_RX_BYTES, PREV_TX_BYTES
|
||||
fi
|
||||
|
||||
# Calculate speed if we have previous data and time has passed
|
||||
if [ -n "$PREV_TIME" ] && [ "$TIME_NOW" -gt "$PREV_TIME" ]; then
|
||||
TIME_DIFF=$((TIME_NOW - PREV_TIME))
|
||||
|
||||
RX_BPS=$(( (RX_BYTES_NOW - PREV_RX_BYTES) / TIME_DIFF ))
|
||||
TX_BPS=$(( (TX_BYTES_NOW - PREV_TX_BYTES) / TIME_DIFF ))
|
||||
|
||||
# Using printf for better formatting (forces two decimal places)
|
||||
RX_MBPS=$(printf "%.2f" "$(echo "$RX_BPS / 1024 / 1024" | bc -l)")
|
||||
TX_MBPS=$(printf "%.2f" "$(echo "$TX_BPS / 1024 / 1024" | bc -l)")
|
||||
fi
|
||||
|
||||
# Save current values for the next run
|
||||
echo "PREV_TIME=$TIME_NOW" > "$STATS_FILE"
|
||||
echo "PREV_RX_BYTES=$RX_BYTES_NOW" >> "$STATS_FILE"
|
||||
echo "PREV_TX_BYTES=$TX_BYTES_NOW" >> "$STATS_FILE"
|
||||
|
||||
# Output JSON for Waybar
|
||||
echo "{\"text\": \"$INTERFACE ($IP_ADDR): ${RX_MBPS} MB/s ${TX_MBPS} MB/s\"}"
|
Reference in New Issue
Block a user