summaryrefslogtreecommitdiff
path: root/ufetch
diff options
context:
space:
mode:
authorlittleblack111 <jerrylam110209@gmail.com>2023-03-08 18:09:07 +0800
committerlittleblack111 <jerrylam110209@gmail.com>2023-03-08 18:09:07 +0800
commit46ba941d0e3df93c243429551bd5101b0c1c172e (patch)
treee7c185a0f749248983340246ad71f6a30edeb2c7 /ufetch
update
Diffstat (limited to 'ufetch')
-rwxr-xr-xufetch83
1 files changed, 83 insertions, 0 deletions
diff --git a/ufetch b/ufetch
new file mode 100755
index 0000000..b31bc09
--- /dev/null
+++ b/ufetch
@@ -0,0 +1,83 @@
+#!/bin/zsh
+#
+# ufetch-arch - tiny system info for arch
+
+## 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="$(basename "${SHELL}")"
+
+## 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}OS: ${ic}${os}${reset}
+${c0} / \ ${lc}KERNEL: ${ic}${kernel}${reset}
+${c0} / \ ${lc}UPTIME: ${ic}${uptime}${reset}
+${c0} / \ ${lc}PACKAGES: ${ic}${packages}${reset}
+${c0} / \ ${lc}SHELL: ${ic}${shell}${reset}
+${c0} / \ ${lc}${uitype}: ${ic}${ui}${reset}
+
+