Like this?
#!/bin/sh
set -eu
name_from_desc() {
LANG=C pactl list sinks \
| awk 'BEGIN {FS=": "} /Name:/ {name=$2} /Description:/ {print name, ":", $2}' \
| while IFS=' : ' read name desc; do
if [ "$desc" = "$1" ]; then echo "$name"; fi
done
}
id_from_name() {
pw-cli i "$1" | awk '/id:/ {print $2}'
}
ret=$(LANG=C pactl list sinks | awk 'BEGIN {FS=": "} /Description:/ {print $2}' | tofi)
wpctl set-default $(id_from_name $(name_from_desc "$ret"))
I don’t get how that case statement of yours is even supposed to work. I’m pretty sure that’s just a syntax error. I guess you want to map from description to name? But that’s not remotely what that does.
Very weird, I can think of some things I might check:
It is possible that you have files on disk that don’t have a filename anymore. This can happen when a file gets deleted while it is still opened by some process. Only the filename is gone then, but the file still exist until that process gets killed. If this were the problem, it would go away if you rebooted, since that kills all processes.
Maybe it is file system corruption. Try running fsck.
Maybe the files are impossible to see for baobab. Like if you had gigs of stuff under (say)
/home
on you root fs, then mount another partition as/home
over that, those files would be hidden behind the mount point. Try booting into a live usb and checking your disk usage from there, when nothing is mounted except root.If you have lots and lots of tiny files, that can in theory use up a lot more disk space than the combined size of the files would, because on a lot file systems, small files always use up some minimum amount of space, and each file also has some metadata. This would show up as some discrepancy between
du
anddf
output. For me,df --inodes /
shows ~300000 used, or about 10% of total. Each file, directory, symlink etc. should require one inode, I think.I have never heard of baobab, maybe that program is buggy or has some caveats. Does
du -shx /
give the same results?