# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Sam Mär 17 20:12:26 CET 2007 [mika]
+# Latest change: Mit Mai 23 10:22:10 CEST 2007 [mika]
################################################################################
# This file is sourced only for interactive shells. It
# should contain commands to set up aliases, functions,
# check for user, if not running as root set $SUDO to sudo
(( EUID != 0 )) && SUDO='sudo' || SUDO=''
+ function salias() {
+ # creates an alias and precedes the command with
+ # sudo if $EUID is not zero.
+ local only=0 ; local multi=0
+ while [[ ${1} == -* ]] ; do
+ case ${1} in
+ (-o) only=1 ;;
+ (-a) multi=1 ;;
+ (--) shift ; break ;;
+ (-h)
+ printf 'usage: salias [-h|-o|-a] <alias-expression>\n'
+ printf ' -h shows this help text.\n'
+ printf ' -a replace '\'' ; '\'' sequences with '\'' ; sudo '\''.\n'
+ printf ' be careful using this option.\n'
+ printf ' -o only sets an alias if a preceding sudo would be needed.\n'
+ return 0
+ ;;
+ (*) printf "unkown option: '%s'\n" "${1}" ; return 1 ;;
+ esac
+ shift
+ done
+ if (( ${#argv} > 1 )) ; then
+ printf 'Too many arguments %s\n' "${#argv}"
+ return 1
+ fi
+ key="${1%%\=*}" ; val="${1#*\=}"
+ if (( EUID == 0 )) && (( only == 0 )); then
+ alias -- "${key}=${val}"
+ elif (( EUID > 0 )) ; then
+ (( multi > 0 )) && val="${val// ; / ; sudo }"
+ alias -- "${key}=sudo ${val}"
+ fi
+ return 0
+ }
+
# change directory to home on first invocation of zsh
# important for rungetty -> autologin
# Thanks go to Bart Schaefer!
# Search path for the cd comman
# cdpath=(.. ~)
-# Support our own site-functions
- [ -d /etc/zsh/site-functions ] && FPATH=/etc/zsh/site-functions:$FPATH
+# completion functions go to /etc/zsh/completion.d
+# function files may be put into /etc/zsh/functions.d, from where they
+# will be automatically autoloaded.
+ [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d )
+ if [[ -d /etc/zsh/functions.d ]] ; then
+ fpath+=( /etc/zsh/functions.d )
+ for func in /etc/zsh/functions.d/[^_]*[^~] ; do
+ autoload -U ${func:t}
+ done
+ fi
# automatically remove duplicates from these arrays
typeset -U path cdpath fpath manpath
'fbmplayer' 'mplayer -vo -fs -zoom fbdev'
'fblinks' 'links2 -driver fb'
'insecssh' 'ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"'
+ 'insecscp' 'scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"'
'fori' 'for i ({..}) { }'
'cx' 'chmod +x'
'e' 'print -l'
autoload history-search-end
# we don't want to quote/espace URLs on our own...
- if autoload -U url-quote-magic ; then
- zle -N self-insert url-quote-magic
- else
- print 'Notice: no url-quote-magic available :('
- fi
+ # if autoload -U url-quote-magic ; then
+ # zle -N self-insert url-quote-magic
+ # zstyle ':url-quote-magic:*' url-metas '*?[]^()~#{}='
+ # else
+ # print 'Notice: no url-quote-magic available :('
+ # fi
+ alias url-quote='autoload -U url-quote-magic ; zle -N self-insert url-quote-magic'
alias run-help >&/dev/null && unalias run-help
autoload run-help # use via 'esc-h'
if [[ -f ~/.zdirs ]] && [[ ${#dirstack[*]} -eq 0 ]]; then
dirstack=( ${(uf)"$(< ~/.zdirs)"} )
# "cd -" won't work after login by just setting $OLDPWD, so
- cd $dirstack[0] && cd $OLDPWD
+ [[ -d $dirstack[0] ]] && cd $dirstack[0] && cd $OLDPWD
fi
chpwd() {
builtin dirs -pl >! ~/.zdirs
# precmd () { setopt promptsubst; [[ -o interactive ]] && jobs -l;
+ # make sure to use right prompt only when not running a command
+ is4 && setopt transient_rprompt
+
is4 && [[ -z $NOPRECMD ]] && precmd () {
[[ -n $NOPRECMD ]] && return 0
+ # allow manual overwriting of RPROMPT
+ if [[ -n $RPROMPT ]] ; then
+ [[ $TERM == screen* ]] && echo -n $'\ekzsh\e\\'
+ return 0
+ fi
# just use DONTSETRPROMPT=1 to be able to overwrite RPROMPT
- if [[ -z ${DONTSETRPROMPT} ]] ; then
- if [ -n "$BATTERY" ] ; then
- # RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}"
- RPROMPT="${PERCENT}${SCREENTITLE}"
- else
- # RPROMPT="%(?..:()% ${SCREENTITLE}"
- RPROMPT="${SCREENTITLE}"
- fi
+ if [[ -z $DONTSETRPROMPT ]] ; then
+ if [[ -n $BATTERY ]] ; then
+ RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}"
+ # RPROMPT="${PERCENT}${SCREENTITLE}"
+ else
+ RPROMPT="%(?..:()% ${SCREENTITLE}"
+ # RPROMPT="${SCREENTITLE}"
+ fi
fi
# adjust title of xterm
# see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
# get the name of the program currently running and hostname of local machine
# set screen window title if running in a screen
if [[ "$TERM" == screen* ]]; then
- # local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} # dont't use hostname
- local CMD="${1[(wr)^(*=*|sudo|ssh|-*)]}$NAME" # use hostname
- echo -ne "\ek$CMD\e\\"
+ # local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} # dont't use hostname
+ local CMD="${1[(wr)^(*=*|sudo|ssh|-*)]}$NAME" # use hostname
+ echo -ne "\ek$CMD\e\\"
fi
# set the screen title to "zsh" when sitting at the command prompt:
if [[ "$TERM" == screen* ]]; then
- SCREENTITLE=$'%{\ekzsh\e\\%}'
+ SCREENTITLE=$'%{\ekzsh\e\\%}'
else
- SCREENTITLE=''
+ SCREENTITLE=''
fi
# adjust title of xterm
case $TERM in (xterm*|rxvt)
# don't use colors on dumb terminals (like emacs):
if [[ "$TERM" == dumb ]] ; then
- PROMPT="${EXITCODE}${debian_chroot:+($debian_chroot)}%n@%m %40<...<%B%~%b%<< %# "
+ PROMPT="${EXITCODE}${debian_chroot:+($debian_chroot)}%n@%m %40<...<%B%~%b%<< %# "
else
# only if $GRMLPROMPT is set (e.g. via 'GRMLPROMPT=1 zsh') use the extended prompt
# set variable identifying the chroot you work in (used in the prompt below)
- if [[ -n "$GRMLPROMPT" ]]; then
+ if [[ -n $GRMLPROMPT ]]; then
PROMPT="${RED}${EXITCODE}${CYAN}[%j running job(s)] ${GREEN}{history#%!} ${RED}%(3L.+.) ${BLUE}%* %D
${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# "
else
unsetopt prompt_cr
export PS1="%m%# "
nice -n -20 speechd-up
+ sleep 2
flite -o play -t "Finished setting up software synthesizer"
fi
'
alias acs='apt-cache search'
alias acsh='apt-cache show'
alias acp='apt-cache policy'
- alias adg="$SUDO apt-get dist-upgrade"
- alias agi="$SUDO apt-get install"
- alias ati="$SUDO aptitude install"
- alias ag="$SUDO apt-get upgrade"
- alias au="$SUDO apt-get update"
- alias up="$SUDO aptitude update ; $SUDO aptitude upgrade"
+ salias adg="apt-get dist-upgrade"
+ salias agi="apt-get install"
+ salias ati="aptitude install"
+ salias ag="apt-get upgrade"
+ salias au="apt-get update"
+ salias -a up="aptitude update ; aptitude upgrade"
alias dbp='dpkg-buildpackage'
alias ge='grep-excuses'
fi
fi
+# get_tw_cli has been renamed into get_3ware
+ if [ -x /usr/bin/get_3ware ] ; then
+ get_tw_cli() {
+ echo 'Warning: get_tw_cli has been renamed into get_3ware. Invoking get_3ware for you.'>&2
+ get_3ware
+ }
+ fi
+
# I hate lacking backward compability, so provide an alternative therefore
if ! [ -x /usr/sbin/apache2-ssl-certificate ] ; then
function apache2-ssl-certificate(){
# {{{ completion stuff
-# Where to look for autoloaded function definitions
- if [ -d /etc/zsh/completion.d ] ; then
- local comp=/etc/zsh/completion.d
- for func in $comp/*(N-.:t); . ${comp}/${func}
- fi
-
# called later (via is4 && grmlcomp)
# notice: use 'zstyle' for getting current settings
# press ^Xh (control-x h) for getting tags in context; ^X? (control-x ?) to run complete_debug with trace output
if [ -x /usr/sbin/rebuildfstab ] ; then
alias grml-rebuildfstab='rebuildfstab -v -r -config'
fi
+
+ if [ -x /usr/sbin/grml-debootstrap ] ; then
+ alias debian2hd='print "Installing debian to harddisk is possible via using grml-debootstrap." ; return 1'
+ fi
}
# }}}
# list symlinks in detail (more detailed version of 'readlink -f' and 'whence -s')
sll() {
- [ -z "$1" ] && printf 'Usage: %s <file>\n' "$0" && return 1
+ [ -z "$1" ] && printf 'Usage: %s <file(s)>\n' "$0" && return 1
for i in "$@" ; do
file=$i
while [ -h "$file" ] ; do
}
_dchange() { _files -W /usr/share/doc -/ }
compdef _dchange dchange
-
+
# use "uchange <package-name>" to view upstream's changelog of the package:
uchange() {
if [ -r /usr/share/doc/${1}/changelog.gz ] ; then
}
functions peval &>/dev/null && alias calc=peval
+ # brltty seems to have problems with utf8 environment and/or font Uni3-Terminus16 under
+ # certain circumstances, so work around it, no matter which environment we have
+ brltty() {
+ if [ -z "$DISPLAY" ] ; then
+ consolechars -f /usr/share/consolefonts/default8x16.psf.gz
+ command brltty "$@"
+ else
+ command brltty "$@"
+ fi
+ }
+
# Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html
# bash() {
# NO_SWITCH="yes" command bash "$@"