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
2021-12-02 15:43:16 +01:00

81 lines
2.3 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)"
os='Arch Linux'
kernel="$(uname -sr)"
uptime="$(uptime -p | sed 's/up //')"
packages="$(pacman -Q | 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 15)"
reset="$(tput sgr0)"
fi
# you can change these
lc="${bold}${green}" # labels
nc="${bold}${red}" # user and hostname
ic="${white}" # info
a0="${blue}" # first arch color
a1="${cyan}" # second arch color
cat <<EOF
${a0} ${nc}${USER}${ic}@${nc}${host}
${a0} /\\ ${lc}OS: ${ic}${os}
${a0} / \\ ${lc}KERNEL: ${ic}${kernel}
${a0} /\\ \\ ${lc}SHELL: ${ic}${shell}
${a1} / \\ ${lc}WM: ${ic}${wm}
${a1} / ,, \\ ${lc}UPTIME: ${ic}${uptime}
${a1} / | | -\\ ${lc}PACKAGES: ${ic}${packages}
${a1} /_-'' ''-_\\ ${lc}MEMORY: ${ic}${mem_used}MiB/${mem_total}MiB
EOF