Merge pull request #79 from ethancedwards8/freebsd_support

FreeBSD support - Battery and Ram
This commit is contained in:
Ethan Edwards 2020-10-16 19:08:34 -04:00 committed by GitHub
commit 461ef98582
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 6 deletions

View file

@ -45,6 +45,10 @@ battery_percent()
echo $(pmset -g batt | grep -Eo '[0-9]?[0-9]?[0-9]%') echo $(pmset -g batt | grep -Eo '[0-9]?[0-9]?[0-9]%')
;; ;;
FreeBSD)
echo $(apm | sed '8,11d' | grep life | awk '{print $4}')
;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN*|MINGW32*|MSYS*|MINGW*)
# leaving empty - TODO - windows compatability # leaving empty - TODO - windows compatability
;; ;;
@ -59,13 +63,17 @@ battery_status()
# Check OS # Check OS
case $(uname -s) in case $(uname -s) in
Linux) Linux)
status=$(linux_acpi status) status=$(linux_acpi status)
;; ;;
Darwin) Darwin)
status=$(pmset -g batt | sed -n 2p | cut -d ';' -f 2) status=$(pmset -g batt | sed -n 2p | cut -d ';' -f 2)
;; ;;
FreeBSD)
status=$(apm | sed '8,11d' | grep Status | awk '{printf $3}')
;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN*|MINGW32*|MSYS*|MINGW*)
# leaving empty - TODO - windows compatability # leaving empty - TODO - windows compatability
;; ;;
@ -74,11 +82,28 @@ battery_status()
;; ;;
esac esac
if [ $status = 'discharging' ] || [ $status = 'Discharging' ]; then case $status in
echo '' discharging|Discharging)
else echo ''
echo 'AC' ;;
fi high)
echo ''
;;
charging)
echo 'AC'
;;
*)
echo 'AC'
;;
esac
### Old if statements didn't work on BSD, they're probably not POSIX compliant, not sure
# if [ $status = 'discharging' ] || [ $status = 'Discharging' ]; then
# echo ''
# # elif [ $status = 'charging' ]; then # This is needed for FreeBSD AC checking support
# # echo 'AC'
# else
# echo 'AC'
# fi
} }
main() main()

View file

@ -47,6 +47,25 @@ get_percent()
echo $memory\G\B/$total_mem echo $memory\G\B/$total_mem
fi fi
;; ;;
FreeBSD)
# Looked at the code from neofetch
hw_pagesize="$(sysctl -n hw.pagesize)"
mem_inactive="$(($(sysctl -n vm.stats.vm.v_inactive_count) * hw_pagesize))"
mem_unused="$(($(sysctl -n vm.stats.vm.v_free_count) * hw_pagesize))"
mem_cache="$(($(sysctl -n vm.stats.vm.v_cache_count) * hw_pagesize))"
free_mem=$(((mem_inactive + mem_unused + mem_cache) / 1024 / 1024))
total_mem=$(($(sysctl -n hw.physmem) / 1024 / 1024))
used_mem=$((total_mem - free_mem))
echo $used_mem
if (( $used_mem < 1024 )); then
echo $used_mem\M\B/$total_mem
else
memory=$(($used_mem/1024))
echo $memory\G\B/$total_mem
fi
;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN*|MINGW32*|MSYS*|MINGW*)
# TODO - windows compatability # TODO - windows compatability