NOPRECMD=${NOPRECMD:-0}
COMMAND_NOT_FOUND=${COMMAND_NOT_FOUND:-0}
GRML_ZSH_CNF_HANDLER=${GRML_ZSH_CNF_HANDLER:-/usr/share/command-not-found/command-not-found}
-GRML_DISPLAY_BATTERY=${GRML_DISPLAY_BATTERY:-0}
+GRML_DISPLAY_BATTERY=${GRML_DISPLAY_BATTERY:-${BATTERY:-0}}
GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1}
ZSH_NO_DEFAULT_LOCALE=${ZSH_NO_DEFAULT_LOCALE:-0}
elif ls -G / >/dev/null 2>&1; then
ls_options=( -G )
fi
-if grep --color=auto -q "a" <<< "a"; then
+if grep --color=auto -q "a" <<< "a" >/dev/null 2>&1; then
grep_options=( --color=auto )
fi
# - 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 ; then
- # not yet supported
- GRML_DISPLAY_BATTERY=0
- fi
-fi
battery() {
if [[ $GRML_DISPLAY_BATTERY -gt 0 ]] ; then
if islinux ; then
batterylinux
+ elif isopenbsd ; then
+ batteryopenbsd
+ elif isfreebsd ; then
+ batteryfreebsd
+ elif isdarwin ; then
+ batterydarwin
+ else
+ #not yet supported
+ GRML_DISPLAY_BATTERY=0
fi
fi
}
fi
}
+batteryopenbsd(){
+GRML_BATTERY_LEVEL=''
+local batfull batwarn batnow num
+for num in 0 1 ; do
+ bat=$(sysctl -n hw.sensors.acpibat${num})
+ if [[ ! -z $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)"%% *}
+ case "$(sysctl -n hw.sensors.acpibat${num}.raw0)" in
+ *" discharging"*)
+ if (( batnow < batwarn )) ; then
+ GRML_BATTERY_LEVEL+=" !v"
+ else
+ GRML_BATTERY_LEVEL+=" v"
+ fi
+ ;;
+ *" charging"*)
+ GRML_BATTERY_LEVEL+=" ^"
+ ;;
+ *)
+ GRML_BATTERY_LEVEL+=" ="
+ ;;
+ esac
+ GRML_BATTERY_LEVEL+="${$(( 100 * batnow / batfull ))%%.*}%%"
+ fi
+done
+}
+
+batteryfreebsd(){
+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
+ case $table[State] in
+ *discharging*)
+ if (( $table[Remaining-capacity] < 20 )) ; then
+ GRML_BATTERY_LEVEL+=" !v"
+ else
+ GRML_BATTERY_LEVEL+=" v"
+ fi
+ ;;
+ *charging*)
+ GRML_BATTERY_LEVEL+=" ^"
+ ;;
+ *)
+ GRML_BATTERY_LEVEL+=" ="
+ ;;
+ esac
+ GRML_BATTERY_LEVEL+="$table[Remaining-capacity]%%"
+ fi
+done
+}
+
+batterydarwin(){
+GRML_BATTERY_LEVEL=''
+local -a table
+table=( ${$(pmset -g ps)[(w)7,8]%%(\%|);} )
+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]%%"
+}
+
# set variable debian_chroot if running in a chroot with /etc/debian_chroot
if [[ -z "$debian_chroot" ]] && [[ -r /etc/debian_chroot ]] ; then
debian_chroot=$(</etc/debian_chroot)
# do we have GNU ls with color-support?
if [[ "$TERM" != dumb ]]; then
#a1# List files with colors (\kbd{ls -F \ldots})
- alias ls='ls -F '${ls_options:+"${ls_options[*]}"}
+ alias ls='command ls -F '${ls_options:+"${ls_options[*]}"}
#a1# List all files, with colors (\kbd{ls -la \ldots})
- alias la='ls -la '${ls_options:+"${ls_options[*]}"}
+ alias la='command ls -la '${ls_options:+"${ls_options[*]}"}
#a1# List files with long colored list, without dotfiles (\kbd{ls -l \ldots})
- alias ll='ls -l '${ls_options:+"${ls_options[*]}"}
+ alias ll='command ls -l '${ls_options:+"${ls_options[*]}"}
#a1# List files with long colored list, human readable sizes (\kbd{ls -hAl \ldots})
- alias lh='ls -hAl '${ls_options:+"${ls_options[*]}"}
+ alias lh='command ls -hAl '${ls_options:+"${ls_options[*]}"}
#a1# List files with long colored list, append qualifier to filenames (\kbd{ls -lF \ldots})\\&\quad(\kbd{/} for directories, \kbd{@} for symlinks ...)
- alias l='ls -lF '${ls_options:+"${ls_options[*]}"}
+ alias l='command ls -lF '${ls_options:+"${ls_options[*]}"}
else
- alias ls='ls -F'
- alias la='ls -la'
- alias ll='ls -l'
- alias lh='ls -hAl'
- alias l='ls -lF'
+ alias ls='command ls -F'
+ alias la='command ls -la'
+ alias ll='command ls -l'
+ alias lh='command ls -hAl'
+ alias l='command ls -lF'
fi
alias mdstat='cat /proc/mdstat'
# listing stuff
#a2# Execute \kbd{ls -lSrah}
-alias dir="ls -lSrah"
+alias dir="command ls -lSrah"
#a2# Only show dot-directories
-alias lad='ls -d .*(/)'
+alias lad='command ls -d .*(/)'
#a2# Only show dot-files
-alias lsa='ls -a .*(.)'
+alias lsa='command ls -a .*(.)'
#a2# Only files with setgid/setuid/sticky flag
-alias lss='ls -l *(s,S,t)'
+alias lss='command ls -l *(s,S,t)'
#a2# Only show symlinks
-alias lsl='ls -l *(@)'
+alias lsl='command ls -l *(@)'
#a2# Display only executables
-alias lsx='ls -l *(*)'
+alias lsx='command ls -l *(*)'
#a2# Display world-{readable,writable,executable} files
-alias lsw='ls -ld *(R,W,X.^ND/)'
+alias lsw='command ls -ld *(R,W,X.^ND/)'
#a2# Display the ten biggest files
-alias lsbig="ls -flh *(.OL[1,10])"
+alias lsbig="command ls -flh *(.OL[1,10])"
#a2# Only show directories
-alias lsd='ls -d *(/)'
+alias lsd='command ls -d *(/)'
#a2# Only show empty directories
-alias lse='ls -d *(/^F)'
+alias lse='command ls -d *(/^F)'
#a2# Display the ten newest files
-alias lsnew="ls -rtlh *(D.om[1,10])"
+alias lsnew="command ls -rtlh *(D.om[1,10])"
#a2# Display the ten oldest files
-alias lsold="ls -rtlh *(D.Om[1,10])"
+alias lsold="command ls -rtlh *(D.Om[1,10])"
#a2# Display the ten smallest files
-alias lssmall="ls -Srl *(.oL[1,10])"
+alias lssmall="command ls -Srl *(.oL[1,10])"
#a2# Display the ten newest directories and ten newest .directories
-alias lsnewdir="ls -rthdl *(/om[1,10]) .*(D/om[1,10])"
+alias lsnewdir="command ls -rthdl *(/om[1,10]) .*(D/om[1,10])"
#a2# Display the ten oldest directories and ten oldest .directories
-alias lsolddir="ls -rthdl *(/Om[1,10]) .*(D/Om[1,10])"
+alias lsolddir="command ls -rthdl *(/Om[1,10]) .*(D/Om[1,10])"
# some useful aliases
#a2# Remove current empty directory. Execute \kbd{cd ..; rmdir \$OLDCWD}