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
 |