Created
November 26, 2019 08:08
-
-
Save akhiljalagam/be5e27c9fce8260649e0f479be3797da to your computer and use it in GitHub Desktop.
display brightness and net speed on i3 status bar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| # Authors: | |
| # - Moritz Warning <[email protected]> (2016) | |
| # - Zhong Jianxin <[email protected]> (2014) | |
| # - Akhil Jalagam <[email protected]> (2019) | |
| # | |
| # See file LICENSE at the project root directory for license information. | |
| # | |
| # i3status.conf should contain: | |
| # general { | |
| # output_format = i3bar | |
| # } | |
| # | |
| # i3 config looks like this: | |
| # bar { | |
| # status_command exec /usr/share/doc/i3status/contrib/net-speed.sh | |
| # } | |
| # | |
| # Single interface: | |
| # ifaces="eth0" | |
| # | |
| # Multiple interfaces: | |
| # ifaces="eth0 wlan0" | |
| # | |
| # Auto detect interfaces | |
| #ifaces=$(ls /sys/class/net | grep -E '^(eth|wlan|enp|wlp)') | |
| ifaces="enp2s0 wlp3s0" | |
| last_time=0 | |
| last_rx=0 | |
| last_tx=0 | |
| rate="" | |
| readable() { | |
| local bytes=$1 | |
| local kib=$(( bytes >> 10 )) | |
| if [ $kib -lt 0 ]; then | |
| echo "? K" | |
| elif [ $kib -gt 1024 ]; then | |
| local mib_int=$(( kib >> 10 )) | |
| local mib_dec=$(( kib % 1024 * 976 / 10000 )) | |
| if [ "$mib_dec" -lt 10 ]; then | |
| mib_dec="0${mib_dec}" | |
| fi | |
| echo "${mib_int}.${mib_dec} M" | |
| else | |
| echo "${kib} K" | |
| fi | |
| } | |
| update_rate() { | |
| local time=$(date +%s) | |
| local rx=0 tx=0 tmp_rx tmp_tx | |
| for iface in $ifaces; do | |
| read tmp_rx < "/sys/class/net/${iface}/statistics/rx_bytes" | |
| read tmp_tx < "/sys/class/net/${iface}/statistics/tx_bytes" | |
| rx=$(( rx + tmp_rx )) | |
| tx=$(( tx + tmp_tx )) | |
| done | |
| local interval=$(( $time - $last_time )) | |
| if [ $interval -gt 0 ]; then | |
| rate="$(readable $(( (rx - last_rx) / interval )))↓ $(readable $(( (tx - last_tx) / interval )))↑" | |
| else | |
| rate="" | |
| fi | |
| # show brightness | |
| brightness=$(cat /sys/class/backlight/intel_backlight/brightness) | |
| last_time=$time | |
| last_rx=$rx | |
| last_tx=$tx | |
| } | |
| i3status | (read line && echo "$line" && read line && echo "$line" && read line && echo "$line" && update_rate && while : | |
| do | |
| read line | |
| update_rate | |
| echo ",[{\"full_text\":\"${rate} | Sun: $(($brightness/75))% \" },${line#,\[}" || exit 1 | |
| done) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment