From 21f1faec6222c62fc44d025e5a3e3c8b9dba66d9 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Sun, 31 Dec 2017 14:50:28 -0500 Subject: [PATCH] Support added for FreeMiNT on Atari computers and clones/VMs --- ascii/distro/gem | 19 ++++++++++ neofetch | 97 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 ascii/distro/gem diff --git a/ascii/distro/gem b/ascii/distro/gem new file mode 100644 index 00000000..d69ae938 --- /dev/null +++ b/ascii/distro/gem @@ -0,0 +1,19 @@ + + + ${c1} ## + ## ######### + #### ## + #### #### ## + #### #### ## ## + #### #### ## ## + #### #### ## ## ## + #### ###### + ###### ## ## #### + #### ################ + #### ## #### + ## #### ###### + ## ## #### #### + ## ## ## ## ## #### + #### ## ## ## + + diff --git a/neofetch b/neofetch index 977ead29..4d629770 100755 --- a/neofetch +++ b/neofetch @@ -44,6 +44,7 @@ get_os() { "MINIX") os="MINIX" ;; "AIX") os="AIX" ;; "IRIX64") os="IRIX" ;; + "FreeMiNT") os="FreeMiNT" ;; *) printf "%s\n" "Unknown OS detected: '$kernel_name', aborting..." >&2 printf "%s\n" "Open an issue on GitHub to add support for your OS." >&2 @@ -230,6 +231,10 @@ get_distro() { "IRIX") distro="IRIX ${kernel_version}" ;; + + "FreeMiNT") + distro="FreeMiNT" + ;; esac distro="${distro//Enterprise Server}" @@ -238,7 +243,7 @@ get_distro() { # Get OS architecture. case "$os" in - "Solaris" | "AIX" | "Haiku" | "IRIX") machine_arch="$(uname -p)" ;; + "Solaris" | "AIX" | "Haiku" | "IRIX" | "FreeMiNT") machine_arch="$(uname -p)" ;; *) machine_arch="$(uname -m)" ;; esac @@ -340,6 +345,10 @@ get_model() { "AIX") model="$(/usr/bin/uname -M)" ;; + + "FreeMiNT") + model="$(sysctl -n hw.model)" + ;; esac # Remove dummy OEM info. @@ -426,6 +435,13 @@ get_uptime() { h="${h#0}" t="${t#0}" seconds="$((d*86400 + h*3600 + ${t%%:*}*60 + ${t#*:}))" ;; + + "FreeMiNT") + boot="$(sysctl -n kern.boottime)" + now="$(date +%s)" + seconds="$((now - boot))" + ;; + esac days="$((seconds / 60 / 60 / 24)) days" @@ -604,6 +620,12 @@ get_packages() { "IRIX") packages="$(($(versions -b | wc -l)-3))" ;; + + "FreeMiNT") + type -p rpm >/dev/null && \ + packages="$((packages+=$(rpm -qa | wc -l)))" + ;; + esac ((packages == 0)) && unset packages @@ -653,6 +675,26 @@ get_de() { esac ;; + "FreeMiNT") + get_wm + + if [ -e /proc/thing* ]; then + de="Thing" + elif [ -e /proc/jinnee* ]; then + de="Jinnee" + elif [ -e /proc/tera* ]; then + de="Teradesk" + elif [ -e /proc/mdesk ]; then + de="mDesk" + elif [ -e /proc/neod* ]; then + de="NeoDesk" + elif [ -e /proc/zdesk* ]; then + de="zDesk" + else + de="Atari" + fi + ;; + *) ((wm_run != 1)) && get_wm @@ -727,7 +769,7 @@ get_wm() { -e "westford" \ -e "weston")" - elif [[ "$DISPLAY" && "$os" != "Mac OS X" ]]; then + elif [[ "$DISPLAY" && "$os" != "Mac OS X" && "$os" != "FreeMiNT" ]]; then id="$(xprop -root -notype _NET_SUPPORTING_WM_CHECK)" id="${id##* }" wm="$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t)" @@ -763,6 +805,21 @@ get_wm() { [[ "$wm" == "blackbox" ]] && wm="bbLean (Blackbox)" wm="${wm:+$wm, }Explorer" ;; + + "FreeMiNT") + if [ -e /proc/xaaes* ]; then + wm="XaAES" + elif [ -e /proc/myaes* ]; then + wm="MyAES" + elif [ -e /proc/naes* ]; then + wm="N.AES" + elif [ -e /proc/geneva* ]; then + wm="Geneva" + else + wm="Atari AES" + fi + ;; + esac fi @@ -1104,6 +1161,12 @@ get_cpu() { # Get CPU cores. cores="$(sysconf NPROC_ONLN)" ;; + + "FreeMiNT") + cpu="$(cat /kern/cpuinfo | awk -F':' '/CPU:/ {printf $2}')" + speed="$(cat /kern/cpuinfo | awk -F':' '/Clocking:/ {printf $2}' | awk -F'.' '{ printf $1 }')" + ;; + esac # Remove un-needed patterns from cpu output. @@ -1188,7 +1251,8 @@ get_cpu_usage() { "Haiku") cores="$(sysinfo -cpu | grep -c -F 'CPU #')" ;; "iPhone OS") cores="${cpu/*\(}"; cores="${cores/\)*}" ;; "AIX") cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')" ;; - "IRIX") cores="$(sysconf NPROC_ONLN)" + "IRIX") cores="$(sysconf NPROC_ONLN)" ;; + "FreeMiNT") cores="$(sysctl -n hw.ncpu)" esac fi @@ -1445,6 +1509,15 @@ get_memory() { mem_free="$((mem_stat[5] / 1024))" mem_used="$((mem_total - mem_free))" ;; + + "FreeMiNT") + mem_total="$(cat /kern/meminfo | awk -F ':|kB' '/MemTotal:/ {printf $2}')" + mem_free="$(cat /kern/meminfo | awk -F ':|kB' '/MemFree:/ {printf $2}')" + mem_used="$(( mem_total - mem_free ))" + mem_total="$(( mem_total / 1024 ))" + mem_used="$(( mem_used / 1024 ))" + ;; + esac memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB}" @@ -1833,6 +1906,11 @@ get_term() { *) term="${TERM_PROGRAM/\.app}" ;; esac + # Most likely TosWin2 on FreeMiNT - quick check + if [[ "$TERM" == "tw52" || "$TERM" == "tw100" ]]; then + term="TosWin2" + fi + # Check $PPID for terminal emulator. while [[ -z "$term" ]]; do if [[ "$SSH_CONNECTION" ]]; then @@ -2384,6 +2462,12 @@ get_cols() { unset -v blocks blocks2 cols + # TosWin2 on FreeMiNT is terrible at this, + # so we'll reset colors arbitrarily + if [ "${term}" == "TosWin2" ]; then + printf "%b\n" "\\e[30;47m" + fi + # Tell info() that we printed manually. prin=1 } @@ -3368,6 +3452,13 @@ get_distro_colors() { ascii_file="freebsd" ;; + "FreeMiNT"*) + # Don't explicitly set colors since + # TosWin2 doesn't reset well + # set_colors 0 + ascii_file="gem" + ;; + "Frugalware"*) set_colors 4 7 1 ascii_file="frugalware"