-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdev_desktop_memory_usage.sh
More file actions
executable file
·40 lines (35 loc) · 1.01 KB
/
Copy pathdev_desktop_memory_usage.sh
File metadata and controls
executable file
·40 lines (35 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
BOLD='\033[1m'
NC='\033[0m'
pss_kb() {
local pid=$1
grep -oP '^Pss:\s+\K[0-9]+' /proc/$pid/smaps_rollup 2>/dev/null
}
total_mb=0
show() {
local label=$1 pid=$2 kb name
kb=$(pss_kb "$pid")
name=$(cat /proc/$pid/comm 2>/dev/null)
if [[ -n "$kb" ]]; then
local mb
mb=$(awk "BEGIN{printf \"%.1f\", $kb/1024}")
if [[ -n "$name" && "$label" != "openbox" && "$label" != "picom" ]]; then
label=$name
fi
printf "%-12s %8s MB\n" "$label" "$mb"
total_mb=$(awk "BEGIN{printf \"%.1f\", $total_mb + $kb/1024}")
else
printf "%-12s %8s\n" "$label" "N/A"
fi
}
echo -e "${BOLD}System:${NC}"
show "openbox" "$(pgrep -f 'openbox --config-file' | head -1)"
show "picom" "$(pgrep -f 'picom' | head -1)"
show "onboard" "$(pgrep -f onboard | head -1)"
echo
echo -e "${BOLD}Apps:${NC}"
for p in $(DISPLAY=:99 wmctrl -lp | tr -s " " | grep -v Onboard |cut -d " " -f3 ); do
show "$p" "$p"
done
echo
printf "%-12s %8s MB\n" "TOTAL" "$total_mb"