From b9ea238dd7e8a56b1d171cdc76e405bb2a8584dd Mon Sep 17 00:00:00 2001 From: Urbain Vaes Date: Wed, 21 Feb 2018 12:18:32 +0000 Subject: Improve i3 status --- i3/.config/i3blocks/bin/battery | 51 +++++++++++++++++++++++++++++++++++++++++ i3/.config/i3blocks/bin/email | 5 ++-- i3/.config/i3blocks/bin/repos | 28 ++++++++++++++++++++++ i3/.config/i3blocks/bin/updates | 13 +++++++++++ i3/.config/i3blocks/bin/wifi | 10 ++++++-- 5 files changed, 102 insertions(+), 5 deletions(-) create mode 100755 i3/.config/i3blocks/bin/battery create mode 100755 i3/.config/i3blocks/bin/repos create mode 100755 i3/.config/i3blocks/bin/updates (limited to 'i3/.config/i3blocks/bin') diff --git a/i3/.config/i3blocks/bin/battery b/i3/.config/i3blocks/bin/battery new file mode 100755 index 0000000..b345f16 --- /dev/null +++ b/i3/.config/i3blocks/bin/battery @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +if [ ! -d /sys/class/power_supply/BAT0 ]; then + echo " No battery" + exit +fi + +output="$(acpi -b)" +remaining_time=$(echo "$output" | grep -o "[0-9][0-9]:[0-9][0-9]") +<<<<<<< HEAD + +if [ -d /sys/class/power_supply/BAT0 ]; then + now_charge=$(cat /sys/class/power_supply/BAT0/now_charge) + full_charge=$(cat /sys/class/power_supply/BAT0/full_charge) + charge=$(( (100*now_charge) / full_charge )) +else + echo "" + exit +fi +======= +now_charge=$(cat /sys/class/power_supply/BAT0/now_charge) +full_charge=$(cat /sys/class/power_supply/BAT0/full_charge) +charge=$(( (100*now_charge) / full_charge )) +# charge=$(echo "$output" | grep -oP "..(?=%)") +>>>>>>> de29d3a... Add minor updates + +if grep -q "Discharging" <(echo "$output"); then + remaining_time=$(echo "$output" | grep -oP "..:..(?=:.. remaining)") + if [[ $charge -lt 20 ]]; then + icon="" + color="#FF0000" + elif [[ $charge -lt 40 ]]; then + icon="" + color="#FFAE00" + elif [[ $charge -lt 60 ]]; then + icon="" + color="#FFF600" + elif [[ $charge -lt 80 ]]; then + icon="" + color="#A8FF00" + else + icon="" + color="#00FF00" + fi +else + icon= + color="lightblue" +fi + +echo "$icon $charge% ($remaining_time)" +echo "$icon $charge% ($remaining_time)" diff --git a/i3/.config/i3blocks/bin/email b/i3/.config/i3blocks/bin/email index ab875e0..f83f4b0 100755 --- a/i3/.config/i3blocks/bin/email +++ b/i3/.config/i3blocks/bin/email @@ -1,10 +1,9 @@ #!/usr/bin/env bash nMails=$(find $HOME/.mail -path '*/new/*' -type f -not -path '*/rss/*' -not -path '*/lists/*' | wc -l) -echo -e "${nMails}\n${nMails}" if [[ ${nMails} -eq 0 ]]; then - echo \#FFFFFF + echo -e " ${nMails}" else - echo \#00FF00 + echo -e " ${nMails}" fi diff --git a/i3/.config/i3blocks/bin/repos b/i3/.config/i3blocks/bin/repos new file mode 100755 index 0000000..48b8b27 --- /dev/null +++ b/i3/.config/i3blocks/bin/repos @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +color_changes() { + if [[ $1 -gt 100 ]]; then + echo 'red' + elif [[ $1 -gt 10 ]]; then + echo 'yellow' + elif [[ $1 -gt 0 ]]; then + echo 'lightgreen' + else + echo 'gray' + fi +} + +if command -v mr > /dev/null; then + total_changes=0 + for title_dir in $BLOCK_INSTANCE; do + title="${title_dir%:*}" + cd "${title_dir##*:}" || exit + n_changes=$(mr status | grep -vc "^$\\|^mr") + [[ n_changes -gt total_changes ]] && total_changes=n_changes + color=$(color_changes "$n_changes") + output+="$sep$title:$n_changes" + sep=" - " + done + color_label=$(color_changes $total_changes) + echo " $output" +fi diff --git a/i3/.config/i3blocks/bin/updates b/i3/.config/i3blocks/bin/updates new file mode 100755 index 0000000..325b485 --- /dev/null +++ b/i3/.config/i3blocks/bin/updates @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +if command -v checkupdates > /dev/null; then + n_updates=$(checkupdates | wc -l) + if [[ n_updates -gt 50 ]]; then + color='red' + elif [[ n_updates -gt 10 ]]; then + color='yellow' + else + color='gray' + fi + echo " $n_updates" +fi diff --git a/i3/.config/i3blocks/bin/wifi b/i3/.config/i3blocks/bin/wifi index 434c508..bc24672 100755 --- a/i3/.config/i3blocks/bin/wifi +++ b/i3/.config/i3blocks/bin/wifi @@ -6,10 +6,16 @@ wifi_address=$(ip addr show wlp2s0 2>/dev/null | grep -oP -m1 "(?<=inet ).*(?=/) eth_address=$(ip addr show eno1 2>/dev/null | grep -oP -m1 "(?<=inet ).*(?=/)") if [[ -n $eth_address ]]; then - echo "eno1: $eth_address" + full_text="eno1: $eth_address" + ip_addr="$eth_address" elif [[ -n $wifi_address ]]; then - echo "wlp2s0: (${quality}% at ${ssid}) ${wifi_address}" + full_text="wlp2s0: (${quality}% at ${ssid}) ${wifi_address}" + ip_addr="$wifi_address" else echo "No connection" fi +case $BLOCK_BUTTON in + 1) echo "$full_text" ;; + *) echo -e "$ip_addr" ;; +esac -- cgit v1.2.3