Rewrite cpu function to fix issues with speeds lowe than 1ghz
This commit is contained in:
parent
8d4057b1b8
commit
d1c3f30ba7
1 changed files with 33 additions and 45 deletions
78
neofetch
78
neofetch
|
@ -941,42 +941,12 @@ getwmtheme () {
|
||||||
|
|
||||||
getcpu () {
|
getcpu () {
|
||||||
case "$os" in
|
case "$os" in
|
||||||
"Linux")
|
|
||||||
# Get cpu name
|
|
||||||
cpu="$(awk -F ': | @' '/model name/ {printf $2; exit}' /proc/cpuinfo)"
|
|
||||||
|
|
||||||
# Get cpu speed
|
|
||||||
if [ -d "/sys/devices/system/cpu/cpu0/cpufreq" ]; then
|
|
||||||
case "$speed_type" in
|
|
||||||
current) speed_type="scaling_cur_freq" ;;
|
|
||||||
min) speed_type="scaling_min_freq" ;;
|
|
||||||
max) speed_type="scaling_max_freq" ;;
|
|
||||||
bios) speed_type="bios_limit" ;;
|
|
||||||
scaling_current) speed_type="scaling_cur_freq" ;;
|
|
||||||
scaling_min) speed_type="scaling_min_freq" ;;
|
|
||||||
scaling_max) speed_type="scaling_max_freq" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
read -r speed < \
|
|
||||||
/sys/devices/system/cpu/cpu0/cpufreq/${speed_type}
|
|
||||||
|
|
||||||
speed=$((speed / 100000))
|
|
||||||
else
|
|
||||||
speed=$(awk -F ': |\\.' '/cpu MHz/ {printf $2; exit}' /proc/cpuinfo)
|
|
||||||
speed=$((speed / 100))
|
|
||||||
fi
|
|
||||||
speed=${speed:0:1}.${speed:1}
|
|
||||||
|
|
||||||
cpu="$cpu @ ${speed}GHz"
|
|
||||||
cores=$(awk -F ': ' '/siblings/ {printf $2; exit}' /proc/cpuinfo)
|
|
||||||
;;
|
|
||||||
|
|
||||||
"Mac OS X")
|
"Mac OS X")
|
||||||
cpu="$(sysctl -n machdep.cpu.brand_string)"
|
cpu="$(sysctl -n machdep.cpu.brand_string)"
|
||||||
cores=$(sysctl -n hw.ncpu)
|
cores=$(sysctl -n hw.ncpu)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*"BSD" | "Windows")
|
"Linux" | *"BSD" | "Windows")
|
||||||
case "$distro" in
|
case "$distro" in
|
||||||
"OpenBSD"* | "FreeBSD"*)
|
"OpenBSD"* | "FreeBSD"*)
|
||||||
# Get cpu name
|
# Get cpu name
|
||||||
|
@ -993,28 +963,46 @@ getcpu () {
|
||||||
cores=$(sysctl -n hw.ncpu)
|
cores=$(sysctl -n hw.ncpu)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"NetBSD"* | "Windows"*)
|
*)
|
||||||
# Get cpu name
|
# Get cpu name
|
||||||
cpu="$(grep -F 'model name' /proc/cpuinfo)"
|
cpu="$(awk -F ': | @' '/model name/ {printf $2; exit}' /proc/cpuinfo)"
|
||||||
cpu=${cpu/model name*: }
|
|
||||||
cpu=${cpu/ @*}
|
|
||||||
cpu=${cpu// }
|
|
||||||
cpu=${cpu% }
|
|
||||||
|
|
||||||
# Get cpu speed
|
# Get cpu speed
|
||||||
speed="$(grep -F 'cpu MHz' /proc/cpuinfo)"
|
if [ -d "/sys/devices/system/cpu/cpu0/cpufreq" ]; then
|
||||||
speed=${speed/cpu MHz*: }
|
case "$speed_type" in
|
||||||
speed=${speed/\.}
|
current) speed_type="scaling_cur_freq" ;;
|
||||||
|
min) speed_type="scaling_min_freq" ;;
|
||||||
|
max) speed_type="scaling_max_freq" ;;
|
||||||
|
bios) speed_type="bios_limit" ;;
|
||||||
|
scaling_current) speed_type="scaling_cur_freq" ;;
|
||||||
|
scaling_min) speed_type="scaling_min_freq" ;;
|
||||||
|
scaling_max) speed_type="scaling_max_freq" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
read -r speed < \
|
||||||
|
/sys/devices/system/cpu/cpu0/cpufreq/${speed_type}
|
||||||
|
|
||||||
|
speed=$((speed / 100000))
|
||||||
|
else
|
||||||
|
speed=$(awk -F ': |\\.' '/cpu MHz/ {printf $2; exit}' /proc/cpuinfo)
|
||||||
|
|
||||||
|
case "$distro" in
|
||||||
|
"NetBSD"*) speed=$((speed / 10000)) ;;
|
||||||
|
*) speed=$((speed / 100)) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix for speeds under 1ghz
|
||||||
|
if [ -z "${speed:1}" ]; then
|
||||||
|
speed="0.${speed}"
|
||||||
|
else
|
||||||
|
speed=${speed:0:1}.${speed:1}
|
||||||
|
fi
|
||||||
|
|
||||||
case "$distro" in
|
|
||||||
"NetBSD"*) speed=$((speed / 10000)) ;;
|
|
||||||
"Windows"*) speed=$((speed / 100000)) ;;
|
|
||||||
esac
|
|
||||||
cores=$(awk -F ': ' '/siblings/ {printf $2; exit}' /proc/cpuinfo)
|
cores=$(awk -F ': ' '/siblings/ {printf $2; exit}' /proc/cpuinfo)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
speed=${speed:0:1}.${speed:1}
|
|
||||||
cpu="$cpu @ ${speed}GHz"
|
cpu="$cpu @ ${speed}GHz"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Reference in a new issue