X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=abfde9acf38697417db27fbfb487fcb5e8a26196;hb=287c3482e4fc7e8e8880aba60d7e0998cfc75558;hp=9657c729efc36aa6463de27e4f665c412acda44d;hpb=3680c7193287263e2facbfdda06f02b5deef1603;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 9657c72..abfde9a 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -180,14 +180,22 @@ else isgrmlsmall() { return 1 } fi +GRML_OSTYPE=$(uname -s) + +islinux(){ + [[ $GRML_OSTYPE == "Linux" ]] +} + isdarwin(){ - [[ $OSTYPE == darwin* ]] && return 0 - return 1 + [[ $GRML_OSTYPE == "Darwin" ]] } isfreebsd(){ - [[ $OSTYPE == freebsd* ]] && return 0 - return 1 + [[ $GRML_OSTYPE == "FreeBSD" ]] +} + +isopenbsd(){ + [[ $GRML_OSTYPE == "OpenBSD" ]] } #f1# are we running within an utf environment? @@ -345,13 +353,12 @@ ZSH_NO_DEFAULT_LOCALE=${ZSH_NO_DEFAULT_LOCALE:-0} typeset -ga ls_options typeset -ga grep_options -if ls --help 2> /dev/null | grep -q GNU; then +if ls --color=auto / >/dev/null 2>&1; then ls_options=( --color=auto ) -elif [[ $OSTYPE == freebsd* ]]; then +elif ls -G / >/dev/null 2>&1; then ls_options=( -G ) fi -if grep --help 2> /dev/null | grep -q GNU || \ - [[ $OSTYPE == freebsd* ]]; then +if grep --color=auto -q "a" <<< "a"; then grep_options=( --color=auto ) fi @@ -1642,28 +1649,49 @@ PS4='+%N:%i:%_> ' # - debian_chroot # - vcs_info setup and version specific fixes -# display battery status on right side of prompt via running 'BATTERY=1 zsh' +# display battery status on right side of prompt using 'BATTERY=1' in .zshrc.pre if [[ $BATTERY -gt 0 ]] ; then - if ! check_com -c acpi ; then + if ! islinux ; then + # not yet supported BATTERY=0 fi fi battery() { if [[ $BATTERY -gt 0 ]] ; then - PERCENT="${${"$(acpi 2>/dev/null)"}/(#b)[[:space:]]#Battery <->: [^0-9]##, (<->)%*/${match[1]}}" - if [[ -z "$PERCENT" ]] ; then - PERCENT='acpi not present' - else - if [[ "$PERCENT" -lt 20 ]] ; then - PERCENT="warning: ${PERCENT}%%" - else - PERCENT="${PERCENT}%%" - fi + if islinux ; then + batterylinux fi fi } +batterylinux(){ +PERCENT='' +local batteries bat capacity +batteries=( /sys/class/power_supply/BAT*(N) ) +if (( $#batteries > 0 )) ; then + for bat in $batteries ; do + capacity=$(< $bat/capacity) + case $(< $bat/status) in + Charging) + PERCENT+=" ^" + ;; + Discharging) + if (( capacity < 20 )) ; then + PERCENT+=" !v" + else + PERCENT+=" v" + fi + ;; + *) # Full, Unknown + PERCENT+=" =" + ;; + esac + PERCENT+="${capacity}%%" + done +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=$(