/ de-omarchy / bin / omarchy-drive-info
swadhinbiswas Initial de-omarchy: Omarchy UI layer for Arch-based distros · 8/22/2026
9f393b2
51 lines · 1.3 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
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash

# omarchy:summary=Print drive information such as size, model, and mount details
# omarchy:args=<drive>

if (($# == 0)); then
  echo "Usage: omarchy-drive-info [/dev/drive]"
  exit 1
else
  drive="$1"
fi

# Find the root drive in case we are looking at partitions
root_drive=$(lsblk -no PKNAME "$drive" 2>/dev/null | tail -n1)
if [[ -n $root_drive ]]; then
  root_drive="/dev/$root_drive"
else
  root_drive="$drive"
fi

# Get basic disk information
size=$(lsblk -dno SIZE "$drive" 2>/dev/null)
vendor=$(lsblk -dno VENDOR "$root_drive" 2>/dev/null | sed 's/ *$//')
model=$(lsblk -dno MODEL "$root_drive" 2>/dev/null | sed 's/ *$//')

# Combine vendor and model, avoiding duplication
label=""
if [[ -n $vendor && -n $model ]]; then
  if [[ $model == *$vendor* ]]; then
    label="$model"
  else
    label="$vendor $model"
  fi
elif [[ -n $model ]]; then
  label="$model"
elif [[ -n $vendor ]]; then
  label="$vendor"
fi

# Format display string
display="$drive"
[[ -n $size ]] && display="$display ($size)"
[[ -n $label ]] && display="$display - $label"

# Append compact partition summary
part_summary=$(lsblk -nro TYPE,NAME,FSTYPE,MOUNTPOINT "$root_drive" 2>/dev/null | \
  awk '$1=="part" { printf "%s%s%s", s, ($3==""?"unknown":$3), ($4==""?"":"("$4")"); s=", " }')
[[ -n $part_summary ]] && display+=" [$part_summary]"

echo "$display"