diff --git a/ofetch.sh b/ofetch.sh index 797b5ad..4f062d9 100755 --- a/ofetch.sh +++ b/ofetch.sh @@ -40,9 +40,16 @@ RAM_TOTAL=$(awk '/MemTotal:/ { printf "%.1f\n", $2 / 1000000 }' /proc/meminfo) RAM_FREE=$(awk '/MemAvailable:/ { printf "%.1f\n", $2 / 1000000 }' /proc/meminfo) RAM="$(awk -v total="${RAM_TOTAL}" -v free="${RAM_FREE}" 'BEGIN { print (total - free) }') G / ${RAM_TOTAL} G" -UPTIME=$(awk '{ s=int($1); printf "%dd %dh %dm\n", s/86400, (s%86400)/3600, (s%3600)/60 }' /proc/uptime) +installed="Tue Aug 18 17:45:01 2026" +installed_ts=$(date -d "$installed" +%s) +now_ts=$(date +%s) +diff=$((now_ts - installed_ts)) +TIME_SINCE_LAST_REINSTALL=$(d=$(( $(date +%s) - $(date -d 'Tue Aug 18 17:45:01 2026' +%s) )); printf '%d days, %02d hours, %02d minutes, %02d seconds\n' $((d/86400)) $((d%86400/3600)) $((d%3600/60)) $((d%60)) +) + +UPTIME=$(awk '{ s=int($1); printf "%d days, %d hours, %d minutes, %d seconds\n", s/86400, (s%86400)/3600, (s%3600)/60, (s%60) }' /proc/uptime) KERNEL=$(uname -r) -WM="sway" +WM="xfwm" TERM=$TERM SHELL=$(echo -n $SHELL | awk -F "/" '{print $NF}') @@ -61,14 +68,14 @@ mapfile -t LOGO_LINES <<< "$LOGO" INFO_LINES=( "${C_BYELLOW_BOLD}$USER${C_BWHITE_BOLD} @ ${C_BYELLOW_BOLD}$HOSTNAME${C_RESET}" ${C_GRAY}$HORIZONTAL_SEPARATOR${C_RESET} -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $CPU_MODELNAME ($CPU_THREADS_NUM threads)${C_RESET}" -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $RAM${C_RESET}" -#"GPU: $GPU" -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $UPTIME${C_RESET}" -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $KERNEL${C_RESET}" -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $WM${C_RESET}" -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $TERM${C_RESET}" -"${C_CYAN}${C_DIMYELLOW_ITALIC} : $SHELL${C_RESET}" +"${C_CYAN}cpu ${C_DIMYELLOW_ITALIC} : $CPU_MODELNAME ($CPU_THREADS_NUM threads)${C_RESET}" +"${C_CYAN}ram ${C_DIMYELLOW_ITALIC} : $RAM${C_RESET}" +"${C_CYAN}age ${C_DIMYELLOW_ITALIC} : $TIME_SINCE_LAST_REINSTALL${C_RESET}" +"${C_CYAN}uptime${C_DIMYELLOW_ITALIC} : $UPTIME${C_RESET}" +"${C_CYAN}kernel${C_DIMYELLOW_ITALIC} : $KERNEL${C_RESET}" +"${C_CYAN}wm ${C_DIMYELLOW_ITALIC} : $WM${C_RESET}" +"${C_CYAN}term ${C_DIMYELLOW_ITALIC} : $TERM${C_RESET}" +"${C_CYAN}shell ${C_DIMYELLOW_ITALIC} : $SHELL${C_RESET}" ) for i in "${!LOGO_LINES[@]}"; do diff --git a/ofetch_icons.sh b/ofetch_icons.sh new file mode 100755 index 0000000..5a84b6a --- /dev/null +++ b/ofetch_icons.sh @@ -0,0 +1,88 @@ +#!/bin/bash + +# color definitions +C_RESET=$'\e[0m' +C_GRAY=$'\e[90m' +C_CYAN=$'\e[36m' +C_WHITE=$'\e[97m' +C_BYELLOW_BOLD=$'\e[1;93m' +C_BWHITE_BOLD=$'\e[1;97m' +C_DIMYELLOW_ITALIC=$'\e[3;93m' + +# logo definition +LOGO=" $C_GRAY/$C_RESET +$C_CYAN /\\ $C_GRAY/$C_RESET +$C_CYAN / \\ $C_GRAY/$C_RESET +$C_CYAN / \\ $C_GRAY/$C_RESET +$C_CYAN / \\ $C_GRAY/$C_RESET +$C_CYAN / ,, \\ $C_GRAY/$C_RESET +$C_CYAN / | | \\ $C_GRAY/$C_RESET +$C_CYAN /_-'' ''-_\\ $C_GRAY/$C_RESET + $C_GRAY/$C_RESET" + +LOGO_GENTOO=" $C_GRAY/$C_RESET +$C_WHITE _-----_ $C_GRAY/$C_RESET +$C_WHITE ( \ $C_GRAY/$C_RESET +$C_WHITE \ 0 \ $C_GRAY/$C_RESET +$C_WHITE \ ) $C_GRAY/$C_RESET +$C_WHITE / _/ $C_GRAY/$C_RESET +$C_WHITE ( _- $C_GRAY/$C_RESET +$C_WHITE \____- $C_GRAY/$C_RESET + $C_GRAY/$C_RESET" + +# all the info fields +USER=$USER +HOSTNAME=$(cat /etc/hostname) +CPU_MODELNAME=$(cat /proc/cpuinfo | awk -F ":" '/model name/ {print $2}' | awk -F " " '{print $3}' | head -1) +CPU_THREADS_NUM=$(nproc) + +RAM_TOTAL=$(awk '/MemTotal:/ { printf "%.1f\n", $2 / 1000000 }' /proc/meminfo) +RAM_FREE=$(awk '/MemAvailable:/ { printf "%.1f\n", $2 / 1000000 }' /proc/meminfo) +RAM="$(awk -v total="${RAM_TOTAL}" -v free="${RAM_FREE}" 'BEGIN { print (total - free) }') G / ${RAM_TOTAL} G" + +installed="Tue Aug 18 17:45:01 2026" +installed_ts=$(date -d "$installed" +%s) +now_ts=$(date +%s) +diff=$((now_ts - installed_ts)) +TIME_SINCE_LAST_REINSTALL=$(d=$(( $(date +%s) - $(date -d 'Tue Aug 18 17:45:01 2026' +%s) )); printf '%d days, %02d hours, %02d minutes, %02d seconds\n' $((d/86400)) $((d%86400/3600)) $((d%3600/60)) $((d%60)) +) + +UPTIME=$(awk '{ s=int($1); printf "%dd %dh %dm\n", s/86400, (s%86400)/3600, (s%3600)/60 }' /proc/uptime) +KERNEL=$(uname -r) +WM="xfwm" +TERM=$TERM +SHELL=$(echo -n $SHELL | awk -F "/" '{print $NF}') + + +horizontal_n=$((${#USER} + ${#HOSTNAME} + 3)) +horizontal_separator_char="-" +HORIZONTAL_SEPARATOR=$(printf '%*s' "$horizontal_n" ' ' | tr ' ' "$horizontal_separator_char") + +# ----- +# output login + +# convert the logo into an array of "lines" (strings) +mapfile -t LOGO_LINES <<< "$LOGO" + +# array of strings as well for the info fields +INFO_LINES=( +"${C_BYELLOW_BOLD}$USER${C_BWHITE_BOLD} @ ${C_BYELLOW_BOLD}$HOSTNAME${C_RESET}" +${C_GRAY}$HORIZONTAL_SEPARATOR${C_RESET} +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $CPU_MODELNAME ($CPU_THREADS_NUM threads)${C_RESET}" +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $RAM${C_RESET}" +#"GPU: $GPU" +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $UPTIME${C_RESET}" +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $KERNEL${C_RESET}" +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $WM${C_RESET}" +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $TERM${C_RESET}" +"${C_CYAN}${C_DIMYELLOW_ITALIC} : $SHELL${C_RESET}" +) + +for i in "${!LOGO_LINES[@]}"; do + # 15 chars is the length of the logo + printf "%-15s" "${LOGO_LINES[$i]}" + # only print info if it exists for this line + [ $i -lt ${#INFO_LINES[@]} ] && printf " %s" "${INFO_LINES[$i]}" + printf "\n" +done +printf "${C_RESET}"