134 lines
2.8 KiB
Bash
Executable File
134 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
# Copyright (c) 2020, XGQT
|
|
# Licensed under the ISC License
|
|
|
|
# .vir.
|
|
# ,d$$$$$$b.
|
|
# &&&&( )&&&b
|
|
# Q$$$$$$$$$$B
|
|
# "$$$$$$$P
|
|
# ,d$$$$$$P"
|
|
# $$$$$$P
|
|
# `Q$$P"
|
|
|
|
# gfetch - tiny system info for gentoo
|
|
|
|
# based on:
|
|
# https://github.com/jschx/ufetch/
|
|
|
|
|
|
# INFO
|
|
|
|
host="$(hostname 2>/dev/null)"
|
|
cpu="$(uname -p 2>/dev/null)"
|
|
kernel="$(uname -sr 2>/dev/null)"
|
|
uptime="$(uptime -p 2>/dev/null | sed 's/up //')"
|
|
shell="$(basename "${SHELL}" 2>/dev/null)"
|
|
|
|
if [ -f /etc/lsb-release ]
|
|
then
|
|
os="$(cut -d \" -f 2 < /etc/lsb-release) $(uname -m)"
|
|
elif [ -f /etc/os-release ]
|
|
then
|
|
os="$(cut -d = -f 2 < /etc/os-release | sed 1q) $(uname -m)"
|
|
else
|
|
os="Gentoo $(uname -m)"
|
|
fi
|
|
|
|
if [ -d "${EPREFIX}"/var/db/pkg ]
|
|
then
|
|
packages="All: $(find "${EPREFIX}"/var/db/pkg/*/* -type d | wc -l)"
|
|
real="Real: $(find "${EPREFIX}"/var/db/pkg/*/* -type d | grep -c -v -E 'acct-group|acct-user|app-eselect|java-virtuals|media-fonts|virtual')"
|
|
else
|
|
packages="n/a"
|
|
real=""
|
|
fi
|
|
|
|
if [ -f "${EPREFIX}"/var/lib/portage/world ]
|
|
then
|
|
world="World: $(wc -l < "${EPREFIX}"/var/lib/portage/world)"
|
|
else
|
|
world=""
|
|
fi
|
|
|
|
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 [ -f "${HOME}/.xinitrc" ]
|
|
then
|
|
ui="$(tail -n 1 "${HOME}/.xinitrc" | cut -d ' ' -f 2)"
|
|
uitype='WM'
|
|
elif [ -f "${HOME}/.xsession" ]
|
|
then
|
|
ui="$(tail -n 1 "${HOME}/.xsession" | cut -d ' ' -f 2)"
|
|
uitype='WM'
|
|
else
|
|
ui='unknown'
|
|
uitype='UI'
|
|
fi
|
|
|
|
|
|
# Color Definitions
|
|
|
|
if [ -x "$(command -v tput)" ]; then
|
|
bold="$(tput bold)"
|
|
# black="$(tput setaf 0)"
|
|
# red="$(tput setaf 1)"
|
|
# green="$(tput setaf 2)"
|
|
# yellow="$(tput setaf 3)"
|
|
# blue="$(tput setaf 4)"
|
|
magenta="$(tput setaf 5)"
|
|
# cyan="$(tput setaf 6)"
|
|
white="$(tput setaf 7)"
|
|
reset="$(tput sgr0)"
|
|
fi
|
|
|
|
|
|
# Output color
|
|
|
|
# labels
|
|
lc="${reset}${bold}${magenta}"
|
|
|
|
# user and hostname
|
|
nc="${reset}${bold}${magenta}"
|
|
|
|
# info
|
|
ic="${reset}${bold}${white}"
|
|
|
|
# first color
|
|
c0="${reset}${bold}${magenta}"
|
|
|
|
# second color
|
|
c1="${reset}${magenta}"
|
|
|
|
|
|
# OUTPUT
|
|
|
|
cat <<EOF
|
|
|
|
${c0} .vir. ${nc}${USER}${ic}@${nc}${host}${reset}
|
|
${c0} ,d\$\$\$\$${c1}\$\$b. ${lc}CPU: ${ic}${cpu}${reset}
|
|
${c0} &&&&${c1}( )&&&b ${lc}OS: ${ic}${os}${reset}
|
|
${c0} Q\$\$\$\$\$\$\$\$${c1}\$\$B ${lc}KERNEL: ${ic}${kernel}${reset}
|
|
${c0} "\$\$\$\$\$${c1}\$\$P ${lc}UP: ${ic}${uptime}${reset}
|
|
${c0} ,d\$\$\$\$${c1}\$\$P" ${lc}PKGS: ${ic}${packages} ${world} ${real}${reset}
|
|
${c0} \$\$\$\$${c1}\$\$P ${lc}SHELL: ${ic}${shell}${reset}
|
|
${c0} \`Q\$\$${c1}P" ${lc}${uitype}: ${ic}${ui}${reset}
|
|
|
|
EOF
|