2024-01-08 20:50:29 +01:00

109 lines
3.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
#
# ufetch-arch - tiny system info for arch
# based on https://gitlab.com/jschx/ufetch
# @modified by @nevaforget
## INFO
# user is already defined
host="$(cat /etc/hostname)"
os='MonarchOS / Arch Linux'
kernel="$(uname -sr)"
uptime="$(uptime -p | sed 's/up //')"
packages="$(pacman -Q | wc -l)"
shell="$(basename "${SHELL}")"
userspace="$(df -h $HOME | awk 'NR==2{print $3}') / $(df -h $HOME | awk 'NR==2{print $2}') ($(df -h $HOME | awk 'NR==2{print $5}'))"
cpu="$(grep -m 1 'model name' /proc/cpuinfo | awk -F':' '{ print $2 }' | sed -e 's/^[[:space:]]*//')"
cpu_arch="$(uname --machine)"
cpu_max="$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)"
cpu_max=$((cpu_max/1000))
cpu_min="$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq)"
cpu_min=$((cpu_min/1000))
gpu=$(lspci | grep VGA | cut -d ":" -f3)
gov=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
## UI DETECTION
parse_rcs() {
for f in "${@}"; do
wm="$(tail -n 1 "${f}" 2> /dev/null | cut -d ' ' -f 2)"
[ -n "${wm}" ] && echo "${wm}" && return
done
}
rcwm="$(parse_rcs "${HOME}/.xinitrc" "${HOME}/.xsession")"
ui='unknown'
uitype='UI'
if [ -n "${DE}" ]; then
ui="${DE}"
uitype='DE'
elif [ -n "${WM}" ]; then
ui="${WM}"
uitype='WM'
elif [ -n "${XDG_CURRENT_DESKTOP}" ]; then
ui="${XDG_CURRENT_DESKTOP}"
uitype='DE'
elif [ -n "${DESKTOP_SESSION}" ]; then
ui="${DESKTOP_SESSION}"
uitype='DE'
elif [ -n "${rcwm}" ]; then
ui="${rcwm}"
uitype='WM'
elif [ -n "${XDG_SESSION_TYPE}" ]; then
ui="${XDG_SESSION_TYPE}"
fi
ui="$(basename "${ui}")"
## DEFINE COLORS
# probably don't change these
if [ -x "$(command -v tput)" ]; then
bold="$(tput bold 2> /dev/null)"
black="$(tput setaf 0 2> /dev/null)"
red="$(tput setaf 1 2> /dev/null)"
green="$(tput setaf 2 2> /dev/null)"
yellow="$(tput setaf 3 2> /dev/null)"
blue="$(tput setaf 4 2> /dev/null)"
magenta="$(tput setaf 5 2> /dev/null)"
cyan="$(tput setaf 6 2> /dev/null)"
white="$(tput setaf 7 2> /dev/null)"
reset="$(tput sgr0 2> /dev/null)"
fi
# you can change these
lc="${reset}${bold}${blue}" # labels
nc="${reset}${bold}${blue}" # user and hostname
ic="${reset}" # info
c0="${reset}${blue}" # first color
## OUTPUT
cat <<EOF
${c0}${nc}${USER}${ic}@${nc}${host}${reset}
${c0}${lc}╭───────────── Software${reset}
${c0}${lc}│ OS ${ic}${os}${reset}
${c0}${lc}│ KERNEL ${ic}${kernel}${reset}
${c0}${lc}│ PACKAGES ${ic}${packages}${reset}
${c0}${lc}│ SHELL ${ic}${shell}${reset}
${c0}${lc}│ ${uitype} ${ic}${ui}${reset}
${c0}${lc}├───────────── Hardware${reset}
${c0}${lc}│ DISK ${ic}${userspace}${reset}
${c0}${lc}│ GPU ${ic}${gpu}${reset}
${c0}${lc}├───────────── CPU${reset}
${c0}${lc}│ DESC ${ic}${cpu}${reset}
${c0}${lc}│ ARCH ${ic}${cpu_arch}${reset}
${c0}${lc}│ MIN / MAX ${ic}${cpu_min} / ${cpu_max} MHz${reset}
${c0}${lc}│ MODE ${ic}${gov}${reset}
${c0}${lc}├───────────── Uptime${reset}
${c0}${lc}│ ${ic}${uptime}${reset}
${c0}${lc}╰─────────────${reset}
${c0}
EOF