diff --git a/.local/bin/stats b/.local/bin/stats new file mode 100755 index 0000000..ec82bb7 --- /dev/null +++ b/.local/bin/stats @@ -0,0 +1,52 @@ +#!/bin/bash + +# Written by: fennek182 + # Version: 1 + # Last change: Sun 2026-06-14 + # Git repo: https://git.fennek.xyz/fennek182/dotfiles + # Description: For my personal use currently. Outputs useful disk usage and package stats. + +# total size of installed pacman packages +# expac %m | awk '{sum+=$1} END {printf "%.2fGiB\n", sum/2^30}' | grep -oe '[0-9]*\.*' | tr '\n' '\0' | cut -c1- +sum=$(expac %m | awk '{sum+=$1} END {printf "%.2fGiB\n", sum/2^30}' | cut -c 1-4) +sum=$(awk "BEGIN{print $sum*1073741824/1000/1000/1000}" | cut -c-3 | tr . ,) #limit to 2 decimals, replace "." with "," + +# TODO: better stats:# +# sudo /bin/du -xcsh /etc /opt /root /run /usr /var && echo " " && sudo /bin/du -sh /home + + +# --- todo --- : move repeating string manipluations to functions +df -h -H -x tmpfs -x efivarfs -x devtmpfs -T -x vfat | head -n3 +echo "----------" +echo "Pacman packages installed: $(pacman -Qq | wc -l)" +echo "Foreign packages (aur): $(pacman -Qm | wc -l)" +echo "explicitly installed packages: $(pacman -Qe | wc -l)" +echo "explicitly installed packages (without dependencies): $(pacman -Qet | wc -l)" +echo "Flatpak packages installed: $(flatpak list --app | wc -l)" +echo "==> Sum disk usage of installed packages: $sum GB" +echo "Size of pacman cache /var/cache/pacman/pkg/: $(dus /var/cache/pacman/pkg/ | sed 's/M/ MB/' | sed 's/G/ GB/' | tr . ,)" +echo "Size of home cache /home/tobias/.cache: $(dus ~/.cache/ / 2> >(grep -v 'Did not') | sed 's/M/ MB/' | sed 's/G/ GB/' | tr . ,)" +echo " -> Size of yay cache /home/tobias/.cache/yay: $(dus ~/.cache/yay/ / 2> >(grep -v 'Did not') | sed 's/M/ MB/' | sed 's/G/ GB/')" +# echo "Size of systemd journals /var/log/journal: $(dus /var/log/journal | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g')B" +echo "Size of ~/.local/share/: $(dus ~/.local/share/ | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' | tr . ,)B" +echo "Size of ~/.local/share/flatpak/: $(dus ~/.local/share/flatpak/ | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g')B" +echo "Size of ~/.local/share/cargo/: $(dus ~/.local/share/cargo/ | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' | tr . ,)B" +echo "Size of ~/.local/share/go/: $(dus ~/.local/share/go/ | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' | tr . ,)B" +echo "Size of ~/.local/share/npm/: $(dus ~/.local/share/npm/ | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' | tr . ,)B" +echo "Size of ~/.local/share/nvim/: $(dus ~/.local/share/nvim/ | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' | tr . ,)B" +echo ".var size: $(dus ~/.var/ | grep --color=never -oE '^\S*')B" +echo ".var size without Steam: $(dust -b -c -o si -n0 -v "com.valvesoftware.Steam" .var | grep --color=never -oE '^\S*' | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g'| tr . ,)B" +echo ".var size only Steam: $(dust -b -c -o si -n0 ~/.var/app/com.valvesoftware.Steam/ | grep --color=never -oE '^\S*' | sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g' | tr . ,)B" +echo "----------" +echo "Top 10 pacman packages by disk usage:" +expac -H M '%m\t%n' | sort -h | tail -n10 + +echo "Top 10 flatpak apps by disk usage:" +flatpak list --app --columns=size,name | sort -g | tail -n10 + +GREEN='\033[0;32m' +#printf "I ${GREEN}love \033[0mStack Overflow\n" + +echo "enter sudo password for / disk usage (system):" +echo 'sudo /bin/du -xcsh /etc /opt /root /run /usr /var && echo " " && sudo /bin/du -sh /home' +sudo /bin/du -xcsh /etc /opt /root /run /usr /var && echo " " && sudo /bin/du -sh /home