From 9a1960b5edade792e0d4d9a8c8e0630e774affc5 Mon Sep 17 00:00:00 2001
From: "martin f. krafft" <madduck@madduck.net>
Date: Mon, 5 May 2008 00:08:54 +0100
Subject: [PATCH] initial checkin

---
 .zsh/.zlogin             |  1 +
 .zsh/.zlogout            |  1 +
 .zsh/.zprofile           |  1 +
 .zsh/.zshenv             |  1 +
 .zsh/.zshrc              |  1 +
 .zsh/header              | 11 +++++++
 .zsh/logging             | 39 +++++++++++++++++++++++
 .zsh/rcsstub             | 24 ++++++++++++++
 .zsh/sourcedir           | 28 ++++++++++++++++
 .zsh/util                | 15 +++++++++
 .zsh/xterm-title         | 69 ++++++++++++++++++++++++++++++++++++++++
 .zsh/zlogout/90_sudo     | 13 ++++++++
 .zsh/zprofile/00_nocores | 13 ++++++++
 .zsh/zshenv/00_fpath     | 13 ++++++++
 .zsh/zshenv/00_rdirs     | 17 ++++++++++
 .zsh/zshrc/00_TODO       | 51 +++++++++++++++++++++++++++++
 .zsh/zshrc/00_autoload   | 15 +++++++++
 .zsh/zshrc/25_tempfiles  | 23 ++++++++++++++
 .zsh/zshrc/30_aliases    | 25 +++++++++++++++
 .zsh/zshrc/90_bindkeys   | 15 +++++++++
 .zsh/zshrc/90_compctl    | 14 ++++++++
 .zsh/zshrc/90_history    | 40 +++++++++++++++++++++++
 .zsh/zshrc/90_prompt     | 16 ++++++++++
 .zsh/zshrc/99_fortune    | 13 ++++++++
 .zshenv                  | 12 +++++++
 25 files changed, 471 insertions(+)
 create mode 120000 .zsh/.zlogin
 create mode 120000 .zsh/.zlogout
 create mode 120000 .zsh/.zprofile
 create mode 120000 .zsh/.zshenv
 create mode 120000 .zsh/.zshrc
 create mode 100644 .zsh/header
 create mode 100644 .zsh/logging
 create mode 100644 .zsh/rcsstub
 create mode 100644 .zsh/sourcedir
 create mode 100644 .zsh/util
 create mode 100644 .zsh/xterm-title
 create mode 100644 .zsh/zlogout/90_sudo
 create mode 100644 .zsh/zprofile/00_nocores
 create mode 100644 .zsh/zshenv/00_fpath
 create mode 100644 .zsh/zshenv/00_rdirs
 create mode 100644 .zsh/zshrc/00_TODO
 create mode 100644 .zsh/zshrc/00_autoload
 create mode 100644 .zsh/zshrc/25_tempfiles
 create mode 100644 .zsh/zshrc/30_aliases
 create mode 100644 .zsh/zshrc/90_bindkeys
 create mode 100644 .zsh/zshrc/90_compctl
 create mode 100644 .zsh/zshrc/90_history
 create mode 100644 .zsh/zshrc/90_prompt
 create mode 100644 .zsh/zshrc/99_fortune
 create mode 100644 .zshenv

diff --git a/.zsh/.zlogin b/.zsh/.zlogin
new file mode 120000
index 0000000..8eae6ef
--- /dev/null
+++ b/.zsh/.zlogin
@@ -0,0 +1 @@
+rcsstub
\ No newline at end of file
diff --git a/.zsh/.zlogout b/.zsh/.zlogout
new file mode 120000
index 0000000..8eae6ef
--- /dev/null
+++ b/.zsh/.zlogout
@@ -0,0 +1 @@
+rcsstub
\ No newline at end of file
diff --git a/.zsh/.zprofile b/.zsh/.zprofile
new file mode 120000
index 0000000..8eae6ef
--- /dev/null
+++ b/.zsh/.zprofile
@@ -0,0 +1 @@
+rcsstub
\ No newline at end of file
diff --git a/.zsh/.zshenv b/.zsh/.zshenv
new file mode 120000
index 0000000..8eae6ef
--- /dev/null
+++ b/.zsh/.zshenv
@@ -0,0 +1 @@
+rcsstub
\ No newline at end of file
diff --git a/.zsh/.zshrc b/.zsh/.zshrc
new file mode 120000
index 0000000..8eae6ef
--- /dev/null
+++ b/.zsh/.zshrc
@@ -0,0 +1 @@
+rcsstub
\ No newline at end of file
diff --git a/.zsh/header b/.zsh/header
new file mode 100644
index 0000000..74219d0
--- /dev/null
+++ b/.zsh/header
@@ -0,0 +1,11 @@
+# 
+#
+#
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+
diff --git a/.zsh/logging b/.zsh/logging
new file mode 100644
index 0000000..2cdf7d8
--- /dev/null
+++ b/.zsh/logging
@@ -0,0 +1,39 @@
+# logging
+#
+# Logging abilities for the shell initialisation scripts
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+__log() {
+  local level; level="$1"; shift
+  echo "${level}: $@" >&2
+}
+__do_debug() {
+  [ -n "${ZDEBUG:-}" ]
+}
+error() {
+  [[ -o xtrace ]] && set +x && local __XTRACE=1
+  __log E "$@" 
+  [ "${__XTRACE:-}" ] && set -x
+}
+warn() {
+  [[ -o xtrace ]] && set +x && local __XTRACE=1
+  __log W "$@" 
+  [ "${__XTRACE:-}" ] && set -x
+}
+info() {
+  [[ -o xtrace ]] && set +x && local __XTRACE=1
+  __log I "$@" 
+  [ "${__XTRACE:-}" ] && set -x
+}
+debug() {
+  [[ -o xtrace ]] && set +x && local __XTRACE=1
+  __do_debug && __log D "$@" 
+  [ "${__XTRACE:-}" ] && set -x
+}
+
+# vim:ft=zsh
diff --git a/.zsh/rcsstub b/.zsh/rcsstub
new file mode 100644
index 0000000..b7c3f83
--- /dev/null
+++ b/.zsh/rcsstub
@@ -0,0 +1,24 @@
+# .zshenv
+#
+# Actual .zshenv file
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+. $ZDOTDIR/logging
+. $ZDOTDIR/util
+
+if [[ -o rcs ]]; then
+  __do_debug && set -x
+
+  file="$(print -P %1N)"
+  . $ZDOTDIR/sourcedir
+  sourcedir $ZDOTDIR/${file#.}
+
+  __do_debug && set +x
+fi
+
+# vim:ft=zsh
diff --git a/.zsh/sourcedir b/.zsh/sourcedir
new file mode 100644
index 0000000..582f255
--- /dev/null
+++ b/.zsh/sourcedir
@@ -0,0 +1,28 @@
+# sourcedir
+#
+# Defines helper function to source files in a directory
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+. $ZDOTDIR/logging
+
+sourcedir() {
+  if [ ! -d "$1" ]; then
+    error "no such directory: ${1#$ZDOTDIR/}"
+    return 1
+  fi
+  debug "sourcing directory ${1#$ZDOTDIR/}"
+  for f in "$1"/*(.); do
+    case "$f" in
+      *~|*.bak|*.sw?|*.zwc|*.disabled) continue;;
+    esac
+    debug "  sourcing file $f"
+    . "$f"
+  done
+}
+
+# vim:ft=zsh
diff --git a/.zsh/util b/.zsh/util
new file mode 100644
index 0000000..6c8970a
--- /dev/null
+++ b/.zsh/util
@@ -0,0 +1,15 @@
+# util
+#
+# Miscellaneous utility functions
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+is_root() {
+  test ${EUID:?} -eq 0
+}
+
+# vim:ft=zsh
diff --git a/.zsh/xterm-title b/.zsh/xterm-title
new file mode 100644
index 0000000..07755a6
--- /dev/null
+++ b/.zsh/xterm-title
@@ -0,0 +1,69 @@
+# zterm-title
+#
+# Fancy setting of the xterm title
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+# Based on http://www.zshwiki.org/cgi-bin/wiki.pl?ZshHardStatus
+#
+
+__set_xterm_title() {
+  case $TERM in
+    screen)
+      print -nR $'\033k'$1$'\033'\\ 
+      print -nR $'\033]0;'$2$'\a'
+      ;;
+    xterm|rxvt*)
+      print -nR $'\033]0;'$*$'\a'
+      ;;
+  esac
+}
+
+__get_session_flags() {
+    local flags; flags=
+    [ -n "$DISPLAY" ] && flags="${flags}x"
+    [ -n "$SSH_AUTH_SOCK" ] && flags="${flags}a"
+    [ -n "$flags" ] && echo "[${flags}]"
+}
+
+__get_standard_prompt() {
+  print -P "%m%# %25\<..\<%~ $(__get_session_flags)"
+}
+
+set_plain_xterm_title() {
+  __set_xterm_title "$(__get_standard_prompt)"
+}
+
+set_cmd_xterm_title () {
+    local -a cmd; cmd=(${(z)1})             # Re-parse the command line
+
+    # Construct a command that will output the desired job number.
+    case $cmd[1] in
+        fg) if (( $#cmd == 1 )); then
+                # No arguments, must find the current job
+                cmd=(builtin jobs -l %+)
+            else
+                # Replace the command name, ignore extra args.
+                cmd=(builtin jobs -l ${(Q)cmd[2]})
+            fi;;
+        %*) cmd=(builtin jobs -l ${(Q)cmd[1]});; # Same as "else" above
+        *) # Not resuming a job,
+            __set_xterm_title $cmd[1]:t${cmd[2]:+ }$cmd[2,-1] "| $(__get_standard_prompt)"
+            return;;                        # so we're all done
+    esac
+
+    local -A jt; jt=(${(kv)jobtexts})       # Copy jobtexts for subshell
+
+    # Run the command, read its output, and look up the jobtext.
+    # Could parse $rest here, but $jobtexts (via $jt) is easier.
+    $cmd >>(
+              read num rest
+              cmd=(${(z)${(e):-\$jt$num}})
+              __set_xterm_title $leader$cmd[1]:t${cmd[2]:+ }$cmd[2,-1] "| $(__get_standard_prompt)"
+           )
+}
+
+# vim:ft=zsh
diff --git a/.zsh/zlogout/90_sudo b/.zsh/zlogout/90_sudo
new file mode 100644
index 0000000..175677d
--- /dev/null
+++ b/.zsh/zlogout/90_sudo
@@ -0,0 +1,13 @@
+# zlogout/90_sudo
+#
+# Invalidates any existing sudo sessions
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+sudo -K 2>/dev/null || :
+
+# vim:ft=zsh
diff --git a/.zsh/zprofile/00_nocores b/.zsh/zprofile/00_nocores
new file mode 100644
index 0000000..d295464
--- /dev/null
+++ b/.zsh/zprofile/00_nocores
@@ -0,0 +1,13 @@
+# zprofile/00_nocores
+#
+# Turns of core file generation
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+ulimit -c 0
+
+# vim:ft=zsh
diff --git a/.zsh/zshenv/00_fpath b/.zsh/zshenv/00_fpath
new file mode 100644
index 0000000..d977983
--- /dev/null
+++ b/.zsh/zshenv/00_fpath
@@ -0,0 +1,13 @@
+# zshenv/00_fpath
+#
+# Adds local functions directory to $fpath
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+FPATH="$ZDOTDIR/func:$FPATH"
+
+# vim:ft=zsh
diff --git a/.zsh/zshenv/00_rdirs b/.zsh/zshenv/00_rdirs
new file mode 100644
index 0000000..062c011
--- /dev/null
+++ b/.zsh/zshenv/00_rdirs
@@ -0,0 +1,17 @@
+# zshenv/00_rdirs
+#
+# Assigns paths to related directories to a number of variables 
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+export VAR_RELATIVE=.var
+export VAR=$HOME/$VAR_RELATIVE
+export ZVAR=$VAR/zsh
+export BIN_RELATIVE=.bin
+export BIN=$HOME/$BIN_RELATIVE
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/00_TODO b/.zsh/zshrc/00_TODO
new file mode 100644
index 0000000..577cd67
--- /dev/null
+++ b/.zsh/zshrc/00_TODO
@@ -0,0 +1,51 @@
+# zshrc/00_TODO
+#
+# All kinds of stuff not yet split to other files
+# TEMPORARY
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+ldir() { eval $1="$PWD" ; : ~$1 }
+
+alias Q='exec zsh'
+alias ozsh='ZDOTDIR=$HOME/.etc/zsh exec zsh'
+
+# correct all arguments
+setopt correctall
+
+# do not clobber files with >
+setopt noclobber
+
+# automatically maintain a directory stack
+setopt autopushd pushdminus pushdsilent pushdtohome
+
+# brace expansion
+setopt braceccl
+
+# commands that take commands as arguments
+compctl -c man nohup strace gdb
+
+# automatically remove duplicates from these arrays
+typeset -gU path cdpath fpath manpath
+
+# http://xanana.ucsc.edu/~wgscott/wordpress_new/wordpress/?p=12
+typeset -ga preexec_functions
+typeset -ga precmd_functions
+typeset -ga chpwd_functions
+
+. $ZDOTDIR/xterm-title
+
+precmd_functions+=set_plain_xterm_title
+preexec_functions+=set_cmd_xterm_title
+
+[ "$(umask)" = 022 ] && umask 0077
+
+eval `lesspipe 2>/dev/null`
+
+:
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/00_autoload b/.zsh/zshrc/00_autoload
new file mode 100644
index 0000000..6098311
--- /dev/null
+++ b/.zsh/zshrc/00_autoload
@@ -0,0 +1,15 @@
+# zshrc/00_autoload
+#
+# Autoload available functions
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+# for p ($fpath) for fn ($p/**) autoload ${fn##*/}
+autoload $^fpath/*(.xN:t)
+autoload zargs
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/25_tempfiles b/.zsh/zshrc/25_tempfiles
new file mode 100644
index 0000000..1c1d551
--- /dev/null
+++ b/.zsh/zshrc/25_tempfiles
@@ -0,0 +1,23 @@
+# zshrc/25_tempfiles
+#
+# Helper functions to create temporary files and directories
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+cdt () {
+  cd $(mktemp -td cdt.XXXXXXXX)
+  pwd
+}
+
+vit () {
+  local tmpfile=$(mktemp -t vit.XXXXXXXX)
+  [ "$1" = '-' ] && cat >| $tmpfile
+  sensible-editor $tmpfile </dev/tty >/dev/tty
+  echo $tmpfile
+}
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/30_aliases b/.zsh/zshrc/30_aliases
new file mode 100644
index 0000000..7d78a1a
--- /dev/null
+++ b/.zsh/zshrc/30_aliases
@@ -0,0 +1,25 @@
+# zshrc/30_aliases
+#
+# Defines command shortcuts
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+alias mv='nocorrect mv'       # no spelling correction on mv
+alias cp='nocorrect cp'       # no spelling correction on cp
+alias mkdir='nocorrect mkdir' # no spelling correction on mkdir
+alias find='noglob find'      # no globbing for find
+
+alias grep=egrep
+
+alias ls='ls --color=auto'
+alias ll='ls -l'
+alias la='ls -a'
+alias lla='ls -la'
+# List only directories and symbolic links that point to directories
+alias lsd='ls -ld *(-/DN)'
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/90_bindkeys b/.zsh/zshrc/90_bindkeys
new file mode 100644
index 0000000..4c5ed7a
--- /dev/null
+++ b/.zsh/zshrc/90_bindkeys
@@ -0,0 +1,15 @@
+# zshrc/90_bindkeys
+#
+# Defines key bindings
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+bindkey -e
+# history expansion on pressing space
+bindkey ' ' magic-space
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/90_compctl b/.zsh/zshrc/90_compctl
new file mode 100644
index 0000000..cfdbed8
--- /dev/null
+++ b/.zsh/zshrc/90_compctl
@@ -0,0 +1,14 @@
+# zshrc/90_compctl
+#
+# Configures the completions system
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+# make tab completion work the way i like it
+setopt autolist automenu recexact alwaystoend
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/90_history b/.zsh/zshrc/90_history
new file mode 100644
index 0000000..b4e49c6
--- /dev/null
+++ b/.zsh/zshrc/90_history
@@ -0,0 +1,40 @@
+# zshrc/90_history
+#
+# Set up command line history functions
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+DEFAULT_HISTFILE=$ZVAR/history
+HISTFILE=$DEFAULT_HISTFILE
+HISTSIZE=10000
+SAVEHIST=$HISTSIZE
+
+# do not treat ! specially like csh did
+setopt no_bang_hist
+
+# ignore duplicates in the history
+setopt hist_ignore_dups
+
+# save timestamp and duration with each event
+setopt extended_history
+
+# properly lock the file on write
+setopt hist_fcntl_lock
+
+# skip over non-contiguous duplicates when searching history
+setopt hist_find_no_dups
+
+# don't store commands starting with a space in the history file
+setopt hist_ignore_space
+
+# don't store history/fc -l invocations
+setopt hist_no_store
+
+# remove superfluous blanks from each command line
+setopt hist_reduce_blanks
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/90_prompt b/.zsh/zshrc/90_prompt
new file mode 100644
index 0000000..0abe132
--- /dev/null
+++ b/.zsh/zshrc/90_prompt
@@ -0,0 +1,16 @@
+# zshrc/90_prompt
+#
+# Formats the shell prompt
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+is_root && PS1_HL=U
+PS1="%${PS1_HL:=B}%m%${(L)PS1_HL}:%25<..<%~%# "
+unset PS1_HL
+RPS1="#[%(0?..%?,)%!]%v"
+
+# vim:ft=zsh
diff --git a/.zsh/zshrc/99_fortune b/.zsh/zshrc/99_fortune
new file mode 100644
index 0000000..3e1fc2b
--- /dev/null
+++ b/.zsh/zshrc/99_fortune
@@ -0,0 +1,13 @@
+# zshrc/99_fortune
+#
+# Prints a fortune cookie to each interactive shell
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+fortune 2>/dev/null || :
+
+# vim:ft=zsh
diff --git a/.zshenv b/.zshenv
new file mode 100644
index 0000000..3a9c4b9
--- /dev/null
+++ b/.zshenv
@@ -0,0 +1,12 @@
+# .zshenv
+#
+# Base zshenv file which simply delegates to files in $ZDOTDIR
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+ZDOTDIR=$HOME/.zsh
+[ -f $ZDOTDIR/.zshenv ] && . $ZDOTDIR/.zshenv
-- 
2.39.5