This repository has been archived on 2023-03-02. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/.local/bin/fetch
2022-11-18 10:38:18 +01:00

82 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env sh
######################################################################
# @author : swytch (adapated from github.com/jschx/ufetch)
# @file : fetch
# @license : GPLv3
# @created : Wednesday May 20, 2020 18:16:09 CEST
#
# @description : display system infos
######################################################################
## INFO
# $USER is already defined
host="$(cat /etc/hostname)"
cpu="$(grep "name" /proc/cpuinfo | uniq | sed -e 's/.*: //' -e 's/ .-Core.*//')"
os="Gentoo"
kernel="$(uname -sr)"
uptime="$(uptime -p | sed 's/up //')"
packages="$(dpkg-query -f '.\n' -W | wc -l)"
shell="$($SHELL --version | sed -e 's/(.*)//')"
wm="$(tail -n 1 "$XDG_CONFIG_HOME/X11/xinitrc" | rev | cut -d ' ' -f 1 | rev)"
# parse the '/proc/meminfo' file splitting on ':' and 'k'.
# the format of the file is 'key: 000kB' and an additional
# split is used on 'k' to filter out 'kB'.
while IFS=':k ' read -r key val _; do
case $key in
# MemUsed = MemTotal + Shmem - MemFree - Buffers - Cached - SReclaimable
MemTotal)
mem_used=$((mem_used + val))
mem_total=$val
;;
Shmem)
mem_used=$((mem_used + val))
;;
MemFree|Buffers|Cached|SReclaimable)
mem_used=$((mem_used - val))
;;
esac
done < /proc/meminfo
mem_used=$((mem_used / 1024))
mem_total=$((mem_total / 1024))
# set colors
if [ -x "$(command -v tput)" ]; then
bold="$(tput bold)"
black="$(tput setaf 0)"
red="$(tput setaf 1)"
green="$(tput setaf 2)"
orange="$(tput setaf 3)"
yellow="$(tput setaf 11)"
blue="$(tput setaf 4)"
magenta="$(tput setaf 5)"
cyan="$(tput setaf 6)"
white="$(tput setaf 7)"
reset="$(tput sgr0)"
fi
# you can change these
lc="${bold}${red}" # labels
nc="${bold}${red}" # user and hostname
ic="${reset}${white}" # info
a0="${reset}${red}" # first logo color
a1="${reset}${white}" # second logo color
cat <<EOF
${a0} ${nc}${USER}${ic}@${nc}${host}
${a0} _____ ${lc}cpu: ${ic}${cpu}
${a0} / __ \\ ${lc}os: ${ic}${os}
${a0} | / | ${lc}kernel: ${ic}${kernel}
${a1} | \\___- ${lc}shell: ${ic}${shell}
${a1} -_ ${lc}wm: ${ic}${wm}
${a1} --_ ${lc}uptime: ${ic}${uptime}
${a1} ${lc}packages: ${ic}${packages}
${lc}memory: ${ic}${mem_used}MiB/${mem_total}MiB
EOF