diff --git a/usr/lib/byobu/battery b/usr/lib/byobu/battery
index e0340a5e..4e77c546 100755
--- a/usr/lib/byobu/battery
+++ b/usr/lib/byobu/battery
@@ -99,6 +99,19 @@ __battery() {
;;
esac
done
+ elif [ $(uname -s) = 'FreeBSD' ]; then
+ bat_state=$(sysctl -n hw.acpi.battery.state)
+ if [ "$?" -eq 0 ]; then
+ full=100
+ rem=$(sysctl -n hw.acpi.battery.life)
+ if [ "$bat_state" -eq 1 ]; then
+ state="discharging"
+ elif [ "$bat_state" -eq 2 ]; then
+ state="charging"
+ else
+ state="unknown"
+ fi
+ fi
fi
if [ $rem -ge 0 ] && [ $full -gt 0 ]; then
percent=$(((100*$rem)/$full))
diff --git a/usr/lib/byobu/cpu_count b/usr/lib/byobu/cpu_count
index 5c06f4a4..f2580f5a 100755
--- a/usr/lib/byobu/cpu_count
+++ b/usr/lib/byobu/cpu_count
@@ -20,12 +20,20 @@
# along with this program. If not, see .
__cpu_count_detail() {
- grep -i "^model name" /proc/cpuinfo
+ if [ $(uname -s) = 'Linux' ]; then
+ grep -i "^model name" /proc/cpuinfo
+ elif [ $(uname -s) = 'FreeBSD' ]; then
+ sysctl -n hw.model | gsed 's/\s\+/ /g'
+ fi
}
__cpu_count() {
local c
- c=$(getconf _NPROCESSORS_ONLN 2>/dev/null || grep -ci "^processor" /proc/cpuinfo)
+ if [ $(uname -s) = 'Linux' ]; then
+ c=$(getconf _NPROCESSORS_ONLN 2>/dev/null || grep -ci "^processor" /proc/cpuinfo)
+ elif [ $(uname -s) = 'FreeBSD' ]; then
+ c=$(sysctl -n hw.ncpu)
+ fi
[ "$c" = "1" ] || printf "%sx" "$c"
}
diff --git a/usr/lib/byobu/cpu_freq b/usr/lib/byobu/cpu_freq
index ba618184..4e809f7b 100755
--- a/usr/lib/byobu/cpu_freq
+++ b/usr/lib/byobu/cpu_freq
@@ -30,14 +30,28 @@ __cpu_freq() {
fpdiv $hz "1000000" 1 # 1Ghz
freq="$_RET"
elif [ -r "/proc/cpuinfo" ]; then
- if egrep -q -s -i -m 1 "^cpu MHz|^clock" /proc/cpuinfo; then
- freq=$(egrep -i -m 1 "^cpu MHz|^clock" /proc/cpuinfo | awk -F"[:.]" '{ printf "%01.1f", $2 / 1000 }')
+ if egrep -q -s -i -m 1 "^cpu MHz|^clock" /compat/linux/proc/cpuinfo; then
+ freq=$(egrep -i -m 1 "^cpu MHz|^clock" /compat/linux/proc/cpuinfo | awk -F"[:.]" '{ printf "%01.1f", $2 / 1000 }')
else
# Must scale frequency by number of processors, if counting bogomips
- count=$(getconf _NPROCESSORS_ONLN 2>/dev/null || grep -ci "^processor" /proc/cpuinfo)
- freq=$(egrep -i -m 1 "^bogomips" /proc/cpuinfo | awk -F"[:.]" '{ print $2 }')
+ count=$(getconf _NPROCESSORS_ONLN 2>/dev/null || grep -ci "^processor" /compat/linux/proc/cpuinfo)
+ freq=$(egrep -i -m 1 "^bogomips" /compat/linux/proc/cpuinfo | awk -F"[:.]" '{ print $2 }')
freq=$(printf "%s %s" "$freq" "$count" | awk '{printf "%01.1f\n", $1/$2/1000}')
fi
+ elif [ $(uname -s) = 'FreeBSD' ]; then
+ # Unless powerd running, this sysctl variable is unavailable.
+ # powerd may also not function in VMs, making this unusable.
+ hz=$(sysctl -in dev.cpu.0.freq)
+ if [ ! -z $hz ]; then
+ fpdiv $hz "1000" 1 # 1GHz
+ freq="$_RET"
+ if [ $(sysctl -n hw.model) =~ 'GHz' ]; then
+ freq=$(sysctl -n hw.model | gsed -e 's/.* //' -e 's/\([0-9]\)0[A-Za-z]\+/\1/')
+ elif [ $(sysctl -n hw.model) =~ 'MHz' ]; then
+ hz=$(sysctl -n hw.model | gsed -e 's/.* //' -e 's/[A-Za-z]\+$//')
+ fpdiv $hz "1000" 1
+ freq="$_RET"
+ fi
elif hz=$(sysctl -n hw.cpufrequency 2>/dev/null); then
fpdiv $hz "1000000000" 1 # 1Ghz
freq="$_RET"
diff --git a/usr/lib/byobu/logo b/usr/lib/byobu/logo
index 0d546c1f..5394e1f9 100755
--- a/usr/lib/byobu/logo
+++ b/usr/lib/byobu/logo
@@ -83,6 +83,10 @@ __logo() {
logo="<@>"
$MARKUP && printf "$(color b W g)%s$(color -)" "$logo" || printf "$logo"
;;
+ *freebsd*)
+ logo="^O^"
+ $MARKUP && printf "$(color R k b)%s$(color -)" "$logo" || printf "$logo"
+ ;;
*gentoo*)
logo=" > "
$MARKUP && printf "$(color b c w)%s$(color -)" "$logo" || printf "$logo"
diff --git a/usr/lib/byobu/memory b/usr/lib/byobu/memory
index f471ba86..fc8f3fd1 100755
--- a/usr/lib/byobu/memory
+++ b/usr/lib/byobu/memory
@@ -36,7 +36,7 @@ __memory() {
esac
[ -n "${free}" -a -n "${total}" -a -n "${buffers}" -a -n "${cached}" ] && break;
done < /proc/meminfo
- elif [ $(uname) = 'FreeBSD' ]; then
+ elif [ $(uname -s) = 'FreeBSD' ]; then
# FreeBSD support
# Adapted from https://www.cyberciti.biz/files/scripts/freebsd-memory.pl.txt
# Copyright (c) 2003-2004 Ralf S. Engelschall