X-Git-Url: http://git.grml.org/?p=grml-etc-core.git;a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=835768387ddbf4ed82aa324c5b7e9bc270f0c6e5;hp=a810b26719af6b72067201d7906fd92699c23f75;hb=d53b0881571848e2755e2aedcd2d00a3d9e0653a;hpb=05479b21611031cabf8051ce90ec61aa3d00c74c diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index a810b26..8357683 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -1650,12 +1650,6 @@ PS4='+%N:%i:%_> ' # - vcs_info setup and version specific fixes # display battery status on right side of prompt using 'GRML_DISPLAY_BATTERY=1' in .zshrc.pre -if [[ $GRML_DISPLAY_BATTERY -gt 0 ]] ; then - if ! islinux && ! isopenbsd && ! isfreebsd ; then - # not yet supported - GRML_DISPLAY_BATTERY=0 - fi -fi battery() { if [[ $GRML_DISPLAY_BATTERY -gt 0 ]] ; then @@ -1665,6 +1659,11 @@ if [[ $GRML_DISPLAY_BATTERY -gt 0 ]] ; then batteryopenbsd elif isfreebsd ; then batteryfreebsd + elif isdarwin ; then + batterydarwin + else + #not yet supported + GRML_DISPLAY_BATTERY=0 fi fi } @@ -1698,10 +1697,10 @@ fi batteryopenbsd(){ GRML_BATTERY_LEVEL='' -local batfull batwarn batnow num +local bat batfull batwarn batnow num for num in 0 1 ; do bat=$(sysctl -n hw.sensors.acpibat${num}) - if [[ ! -z $bat ]]; then + if [[ -n $bat ]]; then batfull=${"$(sysctl -n hw.sensors.acpibat${num}.amphour0)"%% *} batwarn=${"$(sysctl -n hw.sensors.acpibat${num}.amphour1)"%% *} batnow=${"$(sysctl -n hw.sensors.acpibat${num}.amphour3)"%% *} @@ -1730,8 +1729,8 @@ GRML_BATTERY_LEVEL='' local num local -A table for num in 0 1 ; do - table=( ${=${${${${${(M)${(f)"$(acpiconf -i $num)"}:#(State|Remaining capacity):*}%%( ##|%)}//:[ $'\t']##/@}// /-}//@/ }} ) - if [[ $table[State] != "not-present" ]] ; then + table=( ${=${${${${${(M)${(f)"$(acpiconf -i $num 2>&1)"}:#(State|Remaining capacity):*}%%( ##|%)}//:[ $'\t']##/@}// /-}//@/ }} ) + if [[ -n $table ]] && [[ $table[State] != "not-present" ]] ; then case $table[State] in *discharging*) if (( $table[Remaining-capacity] < 20 )) ; then @@ -1752,6 +1751,30 @@ for num in 0 1 ; do done } +batterydarwin(){ +GRML_BATTERY_LEVEL='' +local -a table +table=( ${$(pmset -g ps)[(w)7,8]%%(\%|);} ) +if [[ -n $table[2] ]] ; then + case $table[2] in + charging) + GRML_BATTERY_LEVEL+=" ^" + ;; + discharging) + if (( $table[1] < 20 )) ; then + GRML_BATTERY_LEVEL+=" !v" + else + GRML_BATTERY_LEVEL+=" v" + fi + ;; + *) + GRML_BATTERY_LEVEL+=" =" + ;; + esac + GRML_BATTERY_LEVEL+="$table[1]%%" +fi +} + # set variable debian_chroot if running in a chroot with /etc/debian_chroot if [[ -z "$debian_chroot" ]] && [[ -r /etc/debian_chroot ]] ; then debian_chroot=$(&2 + fi } #f5# cd to directoy and list files