X-Git-Url: http://git.grml.org/?a=blobdiff_plain;ds=inline;f=etc%2Fzsh%2Fzshrc;h=a8b7399a602ea79922fff9eb53afb253aa6f6ca3;hb=1130de31f8a0c4a32dad3e6d1795455ef25d076e;hp=b87dab9fa8493034dfd642f3c0384f499940eb10;hpb=433f1c4bbbfb6c9b9aff0f26d42be4f2e6e07886;p=grml-etc-core.git
diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc
index b87dab9..a8b7399 100644
--- a/etc/zsh/zshrc
+++ b/etc/zsh/zshrc
@@ -3285,108 +3285,6 @@ dirspace() {
fi
}
-# % slow_print `cat /etc/passwd`
-#f5# Slowly print out parameters
-slow_print() {
- for argument in "$@" ; do
- for ((i = 1; i <= ${#1} ;i++)) ; do
- print -n "${argument[i]}"
- sleep 0.08
- done
- print -n " "
- done
- print ""
-}
-
-#f5# Show some status info
-status() {
- print
- print "Date..: "$(date "+%Y-%m-%d %H:%M:%S")
- print "Shell.: Zsh $ZSH_VERSION (PID = $$, $SHLVL nests)"
- print "Term..: $TTY ($TERM), ${BAUD:+$BAUD bauds, }$COLUMNS x $LINES chars"
- print "Login.: $LOGNAME (UID = $EUID) on $HOST"
- print "System: $(cat /etc/[A-Za-z]*[_-][rv]e[lr]*)"
- print "Uptime:$(uptime)"
- print
-}
-
-# Rip an audio CD
-#f5# Rip an audio CD
-audiorip() {
- mkdir -p ~/ripps
- cd ~/ripps
- cdrdao read-cd --device $DEVICE --driver generic-mmc audiocd.toc
- cdrdao read-cddb --device $DEVICE --driver generic-mmc audiocd.toc
- echo " * Would you like to burn the cd now? (yes/no)"
- read input
- if [[ "$input" = "yes" ]] ; then
- echo " ! Burning Audio CD"
- audioburn
- echo " * done."
- else
- echo " ! Invalid response."
- fi
-}
-
-# and burn it
-#f5# Burn an audio CD (in combination with audiorip)
-audioburn() {
- cd ~/ripps
- cdrdao write --device $DEVICE --driver generic-mmc audiocd.toc
- echo " * Should I remove the temporary files? (yes/no)"
- read input
- if [[ "$input" = "yes" ]] ; then
- echo " ! Removing Temporary Files."
- cd ~
- rm -rf ~/ripps
- echo " * done."
- else
- echo " ! Invalid response."
- fi
-}
-
-#f5# Make an audio CD from all mp3 files
-mkaudiocd() {
- # TODO: do the renaming more zshish, possibly with zmv()
- emulate -L zsh
- cd ~/ripps
- for i in *.[Mm][Pp]3; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
- for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done
- for i in *.mp3; do mpg123 -w `basename $i .mp3`.wav $i; done
- normalize -m *.wav
- for i in *.wav; do sox $i.wav -r 44100 $i.wav resample; done
-}
-
-#f5# Create an ISO image. You are prompted for\\&\quad volume name, filename and directory
-mkiso() {
- emulate -L zsh
- echo " * Volume name "
- read volume
- echo " * ISO Name (ie. tmp.iso)"
- read iso
- echo " * Directory or File"
- read files
- mkisofs -o ~/$iso -A $volume -allow-multidot -J -R -iso-level 3 -V $volume -R $files
-}
-
-#f5# Simple thumbnails generator
-genthumbs() {
- rm -rf thumb-* index.html
- echo "
-
-
- Images
-
- " > index.html
- for f in *.(gif|jpeg|jpg|png) ; do
- convert -size 100x200 "$f" -resize 100x200 thumb-"$f"
- echo " " >> index.html
- done
- echo "
-
-" >> index.html
-}
-
#f5# Set all ulimit parameters to \kbd{unlimited}
allulimit() {
ulimit -c unlimited
@@ -3398,74 +3296,11 @@ allulimit() {
ulimit -t unlimited
}
-#f5# RFC 2396 URL encoding in Z-Shell
-urlencode() {
- emulate -L zsh
- setopt extendedglob
- input=( ${(s::)1} )
- print ${(j::)input/(#b)([^A-Za-z0-9_.!~*\'\(\)-])/%${(l:2::0:)$(([##16]#match))}}
-}
-
-# http://strcat.de/blog/index.php?/archives/335-Software-sauber-deinstallieren...html
-#f5# Log 'make install' output
-mmake() {
- emulate -L zsh
- [[ ! -d ~/.errorlogs ]] && mkdir ~/.errorlogs
- make -n install > ~/.errorlogs/${PWD##*/}-makelog
-}
-
-#f5# Indent source code
-smart-indent() {
- indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs "$@"
-}
-
# highlight important stuff in diff output, usage example: hg diff | hidiff
#m# a2 hidiff \kbd{histring} oneliner for diffs
check_com -c histring && \
alias hidiff="histring -fE '^Comparing files .*|^diff .*' | histring -c yellow -fE '^\-.*' | histring -c green -fE '^\+.*'"
-# rename pictures based on information found in exif headers
-#f5# Rename pictures based on information found in exif headers
-exirename() {
- emulate -L zsh
- if [[ $# -lt 1 ]] ; then
- echo 'Usage: jpgrename $FILES' >& 2
- return 1
- else
- echo -n 'Checking for jhead with version newer than 1.9: '
- jhead_version=`jhead -h | grep 'used by most Digital Cameras. v.*' | awk '{print $6}' | tr -d v`
- if [[ $jhead_version > '1.9' ]]; then
- echo 'success - now running jhead.'
- jhead -n%Y-%m-%d_%Hh%M_%f $*
- else
- echo 'failed - exiting.'
- fi
- fi
-}
-
-# get_ic() - queries imap servers for capabilities; real simple. no imaps
-ic_get() {
- emulate -L zsh
- local port
- if [[ ! -z $1 ]] ; then
- port=${2:-143}
- print "querying imap server on $1:${port}...\n";
- print "a1 capability\na2 logout\n" | nc $1 ${port}
- else
- print "usage:\n $0 [port]"
- fi
-}
-
-# creates a Maildir/ with its {new,cur,tmp} subdirs
-mkmaildir() {
- emulate -L zsh
- local root subdir
- root=${MAILDIR_ROOT:-${HOME}/Mail}
- if [[ -z ${1} ]] ; then print "Usage:\n $0 " ; return 1 ; fi
- subdir=${1}
- mkdir -p ${root}/${subdir}/{cur,new,tmp}
-}
-
#f5# Change the xterm title from within GNU-screen
xtrename() {
emulate -L zsh
@@ -3488,66 +3323,6 @@ xtrename() {
return 0
}
-# hl() highlighted less
-# http://ft.bewatermyfriend.org/comp/data/zsh/zfunct.html
-if check_com -c highlight ; then
- function hl() {
- emulate -L zsh
- local theme lang
- theme=${HL_THEME:-""}
- case ${1} in
- (-l|--list)
- ( printf 'available languages (syntax parameter):\n\n' ;
- highlight --list-langs ; ) | less -SMr
- ;;
- (-t|--themes)
- ( printf 'available themes (style parameter):\n\n' ;
- highlight --list-themes ; ) | less -SMr
- ;;
- (-h|--help)
- printf 'usage: hl \n'
- printf ' available options: --list (-l), --themes (-t), --help (-h)\n\n'
- printf ' Example: hl c main.c\n'
- ;;
- (*)
- if [[ -z ${2} ]] || (( ${#argv} > 2 )) ; then
- printf 'usage: hl \n'
- printf ' available options: --list (-l), --themes (-t), --help (-h)\n'
- (( ${#argv} > 2 )) && printf ' Too many arguments.\n'
- return 1
- fi
- lang=${1%:*}
- [[ ${1} == *:* ]] && [[ -n ${1#*:} ]] && theme=${1#*:}
- if [[ -n ${theme} ]] ; then
- highlight -O xterm256 --syntax ${lang} --style ${theme} ${2} | less -SMr
- else
- highlight -O ansi --syntax ${lang} ${2} | less -SMr
- fi
- ;;
- esac
- return 0
- }
- # ... and a proper completion for hl()
- # needs 'highlight' as well, so it fits fine in here.
- function _hl_genarg() {
- local expl
- if [[ -prefix 1 *: ]] ; then
- local themes
- themes=(${${${(f)"$(LC_ALL=C highlight --list-themes)"}/ #/}:#*(Installed|Use name)*})
- compset -P 1 '*:'
- _wanted -C list themes expl theme compadd ${themes}
- else
- local langs
- langs=(${${${(f)"$(LC_ALL=C highlight --list-langs)"}/ #/}:#*(Installed|Use name)*})
- _wanted -C list languages expl languages compadd -S ':' -q ${langs}
- fi
- }
- function _hl_complete() {
- _arguments -s '1: :_hl_genarg' '2:files:_path_files'
- }
- compdef _hl_complete hl
-fi
-
# TODO:
# Rewrite this by either using tinyurl.com's API
# or using another shortening service to comply with
@@ -3589,29 +3364,6 @@ fi
# fi
#}
-#f2# Print a specific line of file(s).
-linenr () {
- emulate -L zsh
- if [ $# -lt 2 ] ; then
- print "Usage: linenr [,] " ; return 1
- elif [ $# -eq 2 ] ; then
- local number=$1
- local file=$2
- command ed -s $file <<< "${number}n"
- else
- local number=$1
- shift
- for file in "$@" ; do
- if [ ! -d $file ] ; then
- echo "${file}:"
- command ed -s $file <<< "${number}n" 2> /dev/null
- else
- continue
- fi
- done | less
- fi
-}
-
#f2# Find history events by search pattern and list them by date.
whatwhen() {
emulate -L zsh
@@ -3660,72 +3412,6 @@ whatwhen() {
esac
}
-# change fluxbox keys from 'Alt-#' to 'Alt-F#' and vice versa
-fluxkey-change() {
- emulate -L zsh
- [[ -n "$FLUXKEYS" ]] || local FLUXKEYS="$HOME/.fluxbox/keys"
- if ! [[ -r "$FLUXKEYS" ]] ; then
- echo "Sorry, \$FLUXKEYS file $FLUXKEYS could not be read - nothing to be done."
- return 1
- else
- if grep -q 'Mod1 F[0-9] :Workspace [0-9]' $FLUXKEYS ; then
- echo -n 'Switching to Alt-# mode in ~/.fluxbox/keys: '
- sed -i -e 's|^\(Mod[0-9]\+[: space :]\+\)F\([0-9]\+[: space :]\+:Workspace.*\)|\1\2|' $FLUXKEYS && echo done || echo failed
- elif grep -q 'Mod1 [0-9] :Workspace [0-9]' $FLUXKEYS ; then
- echo -n 'Switching to Alt-F# mode in ~/.fluxbox/keys: '
- sed -i -e 's|^\(Mod[0-9]\+[: space :]\+\)\([0-9]\+[: space :]\+:Workspace.*\)|\1F\2|' $FLUXKEYS && echo done || echo failed
- else
- echo 'Sorry, do not know what to do.'
- return 1
- fi
- fi
-}
-
-# retrieve weather information on the console
-# Usage example: 'weather LOWG'
-weather() {
- emulate -L zsh
- [[ -n "$1" ]] || {
- print 'Usage: weather ' >&2
- print 'List of stations: http://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code'>&2
- return 1
- }
-
- local VERBOSE="yes" # TODO: Make this a command line switch
-
- local ODIR=`pwd`
- local PLACE="${1:u}"
- local DIR="${HOME}/.weather"
- local LOG="${DIR}/log"
-
- [[ -d ${DIR} ]] || {
- print -n "Creating ${DIR}: "
- mkdir ${DIR}
- print 'done'
- }
-
- print "Retrieving information for ${PLACE}:"
- print
- cd ${DIR} && wget -T 10 --no-verbose --output-file=$LOG --timestamping http://weather.noaa.gov/pub/data/observations/metar/decoded/$PLACE.TXT
-
- if [[ $? -eq 0 ]] ; then
- if [[ -n "$VERBOSE" ]] ; then
- cat ${PLACE}.TXT
- else
- DATE=$(grep 'UTC' ${PLACE}.TXT | sed 's#.* /##')
- TEMPERATURE=$(awk '/Temperature/ { print $4" degree Celcius / " $2" degree Fahrenheit" }' ${PLACE}.TXT | tr -d '(')
- echo "date: $DATE"
- echo "temp: $TEMPERATURE"
- fi
- else
- print "There was an error retrieving the weather information for $PLACE" >&2
- cat $LOG
- cd $ODIR
- return 1
- fi
- cd $ODIR
-}
-
# mercurial related stuff
if check_com -c hg ; then
# gnu like diff for mercurial