summarylogtreecommitdiffstats
path: root/sysfetch
blob: 09a519e1eb3f1a1f14394d35faa504efe182ae1d (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/bin/sh

### ===== COLORS =====
C="\033[36m"
B="\033[34m"
G="\033[32m"
Y="\033[33m"
W="\033[0m"
D="\033[90m"

### ===== ARCH LOGO =====
LOGO='
        /\        
       /  \       
      /\   \      
     /      \     
    /\   /\   \    
   /  \ /  \   \   
  /\   /    \   \  
 /  \ /      \   \ 
/____\/________\___\
'

### ===== SAFE COMMAND =====
has() { command -v "$1" >/dev/null 2>&1; }

### ===== SYSTEM =====
OS=$(grep "^PRETTY_NAME" /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"')
KERNEL=$(uname -r)
HOST=$(uname -n)
UPTIME=$(uptime -p 2>/dev/null | sed 's/up //')
INIT=$(ps -p 1 -o comm=)

### ===== USER =====
USER=$(whoami)

### ===== SHELL =====
SHELL_PATH="$SHELL"
SHELL_NAME=$(basename "$SHELL_PATH")
SHELL_VER=$("$SHELL_PATH" --version 2>/dev/null | head -n1)

### ===== HARDWARE =====
CPU=$(grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | sed 's/^ //')
CORES=$(nproc 2>/dev/null)
MEM=$(free -h | awk '/Mem:/ {print $3 " / " $2}')
DISK=$(df -h / | awk 'NR==2 {print $3 " / " $2}')
GPU=$(lspci 2>/dev/null | grep -Ei "vga|3d|display" | sed 's/.*: //' | head -n1)

### ===== GRAPHICS =====
SESSION="${XDG_SESSION_TYPE:-N/A}"
DE="${XDG_CURRENT_DESKTOP:-N/A}"
WM="${WAYLAND_DISPLAY:+Wayland}${DISPLAY:+X11}"

### ===== PACKAGES =====
PACMAN="N/A"
FLATPAK="0"
SNAP="0"

has pacman  && PACMAN=$(pacman -Qq | wc -l)
has flatpak && FLATPAK=$(flatpak list | wc -l)
has snap    && SNAP=$(snap list | wc -l)

### ===== KERNEL / LIBS =====
GLIBC=$(ldd --version 2>/dev/null | head -n1)
SYSTEMD=$(systemctl --version 2>/dev/null | head -n1)

### ===== OUTPUT =====
print_row() {
  printf "${B}%-14s${W} %s\n" "$1" "$2"
}

printf "${C}%s${W}\n" "$LOGO"

print_row "OS:" "$OS"
print_row "Host:" "$HOST"
print_row "Kernel:" "$KERNEL"
print_row "Init:" "$INIT"
print_row "Uptime:" "$UPTIME"

printf "\n"
print_row "User:" "$USER"
print_row "Shell:" "$SHELL_NAME"
print_row "Shell ver:" "$SHELL_VER"

printf "\n"
print_row "CPU:" "$CPU"
print_row "Cores:" "$CORES"
print_row "Memory:" "$MEM"
print_row "Disk (/):" "$DISK"
print_row "GPU:" "${GPU:-N/A}"

printf "\n"
print_row "Session:" "$SESSION"
print_row "DE:" "$DE"
print_row "WM:" "${WM:-N/A}"

printf "\n"
print_row "Packages:" "pacman: $PACMAN"
print_row "" "flatpak: $FLATPAK"
print_row "" "snap: $SNAP"

printf "\n"
print_row "glibc:" "$GLIBC"
print_row "systemd:" "$SYSTEMD"

printf "\n${G}✔ Arch Linux — clean & detailed${W}\n"