Add community scripts for i3blocks
This commit is contained in:
68
.local/bin/i3scripts/contrib/disk
Executable file
68
.local/bin/i3scripts/contrib/disk
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
################################
|
||||
# Shows info about a specified mount point
|
||||
#
|
||||
# Dependencies:
|
||||
# - [notify-send]
|
||||
#
|
||||
# @param {String} disk: The mount point to check
|
||||
# @return {Number(%)}: Space used on the disk
|
||||
################################
|
||||
|
||||
dir=$(dirname $0)
|
||||
source $dir/util.sh
|
||||
|
||||
full=""
|
||||
short=""
|
||||
status=0
|
||||
|
||||
disks=$(lsblk | tail -n +2 | awk '{ print $7 }' | sed '/^\s*$/d' | sort)
|
||||
let numDisks=$(echo "$disks" | wc -l)
|
||||
let diskNum=$(getCache 1)
|
||||
|
||||
getDisk() {
|
||||
echo "$disks" | sed -n "$diskNum p"
|
||||
}
|
||||
disk=$(getDisk)
|
||||
|
||||
case $BLOCK_BUTTON in
|
||||
# right click: show details
|
||||
# TODO: fix
|
||||
3)
|
||||
local summary=$(du -h --max-depth=1 $disk)
|
||||
notify-send "Disk usage" "$summary"
|
||||
;;
|
||||
# scroll up: cycle disks
|
||||
4)
|
||||
diskNum=$[$(getCache) - 1]
|
||||
if (( diskNum <= 0 )); then
|
||||
diskNum=$numDisks
|
||||
fi
|
||||
setCache $diskNum
|
||||
disk=$(getDisk)
|
||||
;;
|
||||
5)
|
||||
# scroll down: cycle disks
|
||||
diskNum=$[$(getCache) + 1]
|
||||
if (( diskNum >= numDisks + 1 )); then
|
||||
diskNum=1
|
||||
fi
|
||||
setCache $diskNum
|
||||
disk=$(getDisk)
|
||||
;;
|
||||
esac
|
||||
|
||||
usage=$(df -h $disk | sed -n '2 p')
|
||||
usage=($usage)
|
||||
|
||||
if [ ${usage[4]%?} -ge 90 ]; then
|
||||
status=33
|
||||
fi
|
||||
|
||||
full="$disk ${usage[4]}"
|
||||
short="$full"
|
||||
|
||||
echo $full
|
||||
echo $short
|
||||
exit $status
|
||||
Reference in New Issue
Block a user