diff --git a/home/oli/bin/i3blocks/archupdates b/home/oli/bin/i3blocks/archupdates index 0da4bbb..0fd54be 100755 --- a/home/oli/bin/i3blocks/archupdates +++ b/home/oli/bin/i3blocks/archupdates @@ -5,14 +5,29 @@ # Check if updated Arch packages can be installed pkgupdate() { local pkgcount=$(checkupdates | wc -l) - if [[ $pkgcount -ge 1 && $pkgcount -lt 20 ]]; then - local bg=$mute_bg - local fg=$mute_fg - elif [[ $pkgcount -ge 20 ]]; then - local bg=$warn1_bg - local fg=$warn1_fg + local seconds_since_last_patched=$(echo "$(date +%s) - $(stat -c %Y /var/log/pacman.log)" | bc -l) + local hours_since_last_patched=$(echo "scale=0; $seconds_since_last_patched / 60 / 60" | bc -l) + local hours_to_consider_stale=168 + # Few updates + if [[ $pkgcount -ge 1 && $pkgcount -lt 35 ]]; then + if [[ $hours_since_last_patched -gt $hours_to_consider_stale ]]; then + local bg=$warn1_bg + local fg=$warn1_fg + else + local bg=$info_bg + local fg=$info_fg + fi + # Many updates + elif [[ $pkgcount -ge 35 ]]; then + if [[ $hours_since_last_patched -gt $hours_to_consider_stale ]]; then + local bg=$crit_bg + local fg=$crit_fg + else + local bg=$warn2_bg + local fg=$warn2_fg + fi fi - local stat="$pkgcount pkg updates" + local stat="$pkgcount pkg updates (last update: $hours_since_last_patched hours ago)" if [[ -n "$bg" ]]; then echo -e "$stat\n"