- Enable programs.uwsm for session management. - Improve SDDM theme session detection logic to be case-insensitive and more robust. - Perform a global cleanup of 'Nnomarchy' and 'org.nnomarchy' typos across all scripts and configurations.
50 lines
1.3 KiB
Bash
Executable File
50 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Returns drive information about a given volumne, like /dev/nvme0, which is used by nomarchy-drive-select.
|
|
|
|
if (($# == 0)); then
|
|
echo "Usage: nomarchy-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"
|