2022-10-08 12:47:57 +02:00
|
|
|
#!/bin/sh
|
|
|
|
# network module for status/stellar
|
|
|
|
|
2022-10-21 13:35:02 +02:00
|
|
|
# load config
|
2022-10-27 17:51:19 +02:00
|
|
|
. $HOME/.config/speedwm/statusrc
|
2022-10-25 19:23:36 +02:00
|
|
|
BINDIR="$(dirname $(command -v speedwm_status))/"
|
2022-10-21 13:35:02 +02:00
|
|
|
|
|
|
|
ARG1="$1"
|
|
|
|
|
2022-11-01 20:38:29 +01:00
|
|
|
# write
|
|
|
|
if [ ! -e "/tmp/module_net_tx" ]; then
|
|
|
|
R1="$(cat /sys/class/net/[ew]*/statistics/rx_bytes)"
|
|
|
|
T1="$(cat /sys/class/net/[ew]*/statistics/tx_bytes)"
|
|
|
|
sleep 0.1
|
|
|
|
R2="$(cat /sys/class/net/[ew]*/statistics/rx_bytes)"
|
|
|
|
T2="$(cat /sys/class/net/[ew]*/statistics/tx_bytes)"
|
|
|
|
TXPMS="$(expr $T2 - $T1)"
|
|
|
|
RXPMS="$(expr $R2 - $R1)"
|
|
|
|
TX="$(expr $TXPMS / 1024 "*" 10)"
|
|
|
|
RX="$(expr $RXPMS / 1024 "*" 10)"
|
|
|
|
printf "$TX" > /tmp/module_net_tx
|
|
|
|
printf "$RX" > /tmp/module_net_rx
|
|
|
|
fi
|
2022-10-21 13:35:02 +02:00
|
|
|
|
|
|
|
# click
|
|
|
|
CLICK() {
|
|
|
|
# values
|
2022-11-01 20:38:29 +01:00
|
|
|
NETWORK_TRANSMITTED="$(cat /tmp/module_net_tx) kb/s"
|
|
|
|
NETWORK_RECEIVED="$(cat /tmp/module_net_rx) kb/s"
|
2022-10-21 13:35:02 +02:00
|
|
|
ICON="$ITEM6_ICON"
|
|
|
|
BUTTON="$(cat /tmp/speedwm-button)"
|
|
|
|
|
|
|
|
case "$TERMINAL" in
|
|
|
|
"") TERMINAL=st
|
|
|
|
esac
|
|
|
|
|
|
|
|
case "$BUTTON" in
|
|
|
|
"3") $TERMINAL -e bmon ; exit ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
# no spacing if there's no icon
|
|
|
|
if [ "$ICON" != "" ]; then
|
|
|
|
ICONSPACING=" " # one character spacing
|
2022-10-08 18:07:28 +02:00
|
|
|
fi
|
2022-10-21 13:35:02 +02:00
|
|
|
|
|
|
|
# send the notification
|
|
|
|
SEND_NOTIF() {
|
2022-11-01 20:38:29 +01:00
|
|
|
FULL_NETWORK="${ICON}${ICONSPACING}${NETWORK_TRANSMITTED} transmitted, ${NETWORK_RECEIVED} received."
|
2022-10-21 13:35:02 +02:00
|
|
|
notify-send "$FULL_NETWORK"
|
|
|
|
|
|
|
|
echo "Notification sent successfully!"
|
|
|
|
echo "INFO: $FULL_NETWORK"
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
|
|
|
|
command -v notify-send > /dev/null && SEND_NOTIF
|
|
|
|
echo "FATAL: libnotify not installed, can't send notification."
|
|
|
|
|
|
|
|
exit 1
|
2022-10-08 12:47:57 +02:00
|
|
|
}
|
|
|
|
|
2022-10-21 13:35:02 +02:00
|
|
|
# information itself
|
|
|
|
PRINT() {
|
|
|
|
if [ "$ENABLE_ITEM6" = "true" ]; then
|
|
|
|
if [ -e "${BINDIR}awk" ]; then
|
2022-11-01 20:38:29 +01:00
|
|
|
NETWORK_TRANSMITTED="$(cat /tmp/module_net_tx)"
|
|
|
|
NETWORK_RECEIVED="$(cat /tmp/module_net_rx)"
|
|
|
|
|
|
|
|
echo "$SEPARATOR $ITEM6_ICON $ITEM6_FORMAT" | sed "s|@t|$NETWORK_TRANSMITTED|g; s|@r|$NETWORK_RECEIVED|g"
|
2022-10-21 13:35:02 +02:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
2022-10-08 12:47:57 +02:00
|
|
|
|
2022-10-21 13:35:02 +02:00
|
|
|
# argument 1
|
|
|
|
case "$ARG1" in
|
|
|
|
"") CLICK ;;
|
|
|
|
"--print") PRINT > /tmp/module_net ;;
|
|
|
|
"--click") CLICK ;;
|
|
|
|
esac
|
2022-11-01 20:38:29 +01:00
|
|
|
|
|
|
|
R1="$(cat /sys/class/net/[ew]*/statistics/rx_bytes)"
|
|
|
|
T1="$(cat /sys/class/net/[ew]*/statistics/tx_bytes)"
|
|
|
|
sleep 0.1
|
|
|
|
R2="$(cat /sys/class/net/[ew]*/statistics/rx_bytes)"
|
|
|
|
T2="$(cat /sys/class/net/[ew]*/statistics/tx_bytes)"
|
|
|
|
TXPMS="$(expr $T2 - $T1)"
|
|
|
|
RXPMS="$(expr $R2 - $R1)"
|
|
|
|
TX="$(expr $TXPMS / 1024 "*" 10)"
|
|
|
|
RX="$(expr $RXPMS / 1024 "*" 10)"
|
|
|
|
printf "$TX" > /tmp/module_net_tx
|
|
|
|
printf "$RX" > /tmp/module_net_rx
|