# 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: Don Nov 30 16:15:10 CET 2006 [mika]
+# Latest change: Fre Apr 13 18:00:42 CEST 2007 [mika]
################################################################################
# source ~/.zshrc.global {{{
# set default browser
if [ -z "$BROWSER" ] ; then
if [ -n "$DISPLAY" ] ; then
- [ -x =firefox ] && export BROWSER=firefox
+ [ -x $(which firefox) ] && export BROWSER=firefox
else
- [ -x =w3m ] && export BROWSER=w3m
+ [ -x $(which w3m) ] && export BROWSER=w3m
fi
fi
(( ${+PAGER} )) || export PAGER="less"
alias conkeror='firefox -chrome chrome://conkeror/content'
# arch/tla stuff
- if type -p tla >/dev/null 2>&1 ; then
+ if type -p tla &>/dev/null ; then
alias tdi='tla what-changed --diffs | less'
alias tbp='tla-buildpackage'
alias tmi='tla archive-mirror'
# check whether Debian's package management (dpkg) is running
alias check_dpkg_running="$SUDO dpkg_running"
+
+# work around non utf8 capable software in utf environment
+ if [ -x /usr/bin/mrxvt ] ; then
+ isutfenv && [ -n "$LANG" ] && alias mrxvt="LANG=${LANG/(#b)(*)[.@]*/$match[1].iso885915} mrxvt"
+ fi
+
+ if [ -x /usr/bin/aterm ] ; then
+ isutfenv && [ -n "$LANG" ] && alias aterm="LANG=${LANG/(#b)(*)[.@]*/$match[1].iso885915} aterm"
+ fi
+
+ if [ -x /usr/bin/centericq ] ; then
+ isutfenv && [ -n "$LANG" ] && alias centericq="LANG=${LANG/(#b)(*)[.@]*/$match[1].iso885915} centericq"
+ fi
# }}}
## useful functions {{{
fir() { firefox -a firefox -remote "openURL($1)" }
ggogle() { ${=BROWSER} "http://groups.google.com/groups?q=$*" }
google() { ${=BROWSER} "http://www.google.com/search?&num=100&q=$*" }
+ mcd() { mkdir -p "$@"; cd "$@" } # mkdir && cd
mdiff() { diff -udrP "$1" "$2" > diff.`date "+%Y-%m-%d"`."$1" }
memusage(){ ps aux | awk '{if (NR > 1) print $5; if (NR > 2) print "+"} END { print "p" }' | dc }
mggogle() { ${=BROWSER} "http://groups.google.com/groups?selm=$*" }
wikien() { ${=BROWSER} http://en.wikipedia.org/wiki/"$*" }
wodeb () { ${=BROWSER} "http://packages.debian.org/cgi-bin/search_contents.pl?word=$1&version=${2:-unstable}" }
- which google >/dev/null 2>&1 && gex () { google "\"[ $1]\" $*" } # exact search at google
+ which google &>/dev/null && gex () { google "\"[ $1]\" $*" } # exact search at google
+
+ # download video from youtube
+ ytdl() {
+ if ! [ -n "$2" ] ; then
+ print "Usage: ydtl http://youtube.com/watch?v=.... outputfile.flv">&2
+ return 1
+ else
+ wget -O${2} "http://youtube.com/get_video?"${${${"$(wget -o/dev/null -O- "${1}" | grep -e watch_fullscreen)"}##*watch_fullscreen\?}%%\&fs=*}
+ fi
+ }
+
# Function Usage: doc packagename
doc() { cd /usr/share/doc/$1 && ls }
cd ~$dir
}
-# provide useful information on globbing
- H-Glob() {
- echo -e "
- / directories
- . plain files
- @ symbolic links
- = sockets
- p named pipes (FIFOs)
- * executable plain files (0100)
- % device files (character or block special)
- %b block special files
- %c character special files
- r owner-readable files (0400)
- w owner-writable files (0200)
- x owner-executable files (0100)
- A group-readable files (0040)
- I group-writable files (0020)
- E group-executable files (0010)
- R world-readable files (0004)
- W world-writable files (0002)
- X world-executable files (0001)
- s setuid files (04000)
- S setgid files (02000)
- t files with the sticky bit (01000)
- print *(m-1) # Dateien, die vor bis zu einem Tag modifiziert wurden.
- print *(a1) # Dateien, auf die vor einem Tag zugegriffen wurde.
- print *(@) # Nur Links
- print *(Lk+50) # Dateien die ueber 50 Kilobytes grosz sind
- print *(Lk-50) # Dateien die kleiner als 50 Kilobytes sind
- print **/*.c # Alle *.c - Dateien unterhalb von \$PWD
- print **/*.c~file.c # Alle *.c - Dateien, aber nicht 'file.c'
- print (foo|bar).* # Alle Dateien mit 'foo' und / oder 'bar' am Anfang
- print *~*.* # Nur Dateien ohne '.' in Namen
- chmod 644 *(.^x) # make all non-executable files publically readable
- print -l *(.c|.h) # Nur Dateien mit dem Suffix '.c' und / oder '.h'
- print **/*(g:users:) # Alle Dateien/Verzeichnisse der Gruppe >users<
- echo /proc/*/cwd(:h:t:s/self//) # Analog zu >ps ax | awk '{print $1}'<"
- }
-
# find out which libs define a symbol
# usage example: 'lcheck strcpy'
lcheck() {
print -z "${cmd[$answer]#*$TAB}"
}
-# mkdir && cd
- mcd() { mkdir -p "$@"; cd "$@" } # mkdir && cd
-
-# cd && ls
- cl() { cd $1 && ls -a }
-
# Use vim to convert plaintext to HTML
- 2html() { vim -u NONE -n -c ':syntax on' -c ':so $VIMRUNTIME/syntax/2html.vim' -c ':wqa' $1 > /dev/null 2> /dev/null }
+ 2html() { vim -u NONE -n -c ':syntax on' -c ':so $VIMRUNTIME/syntax/2html.vim' -c ':wqa' $1 &>/dev/null }
# Usage: simple-extract <file>
# Description: extracts archived files (maybe)
}
# highlight important stuff in diff output, usage example: hg diff | hidiff
- [ -x =histring ] && \
+ [ -x $(which 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
# }}}
# mercurial related stuff {{{
- if type -p hg >/dev/null 2>&1 ; then
+ if type -p hg &>/dev/null ; then
# gnu like diff for mercurial
# http://www.selenic.com/mercurial/wiki/index.cgi/TipsAndTricks
hgdi() {
# build debian package
alias hbp='hg-buildpackage'
+ # execute commands on the versioned patch-queue from the current repos
+ alias mq='hg -R $(readlink -f $(hg root)/.hg/patches)'
+
# diffstat for specific version of a mercurial repository
# hgstat => display diffstat between last revision and tip
# hgstat 1234 => display diffstat between revision 1234 and tip
# export PYTHONPATH=${HOME}/lib/python
fi
}
-
+
fi # end of check whether we have the 'hg'-executable
# get current mercurial snapshot