summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/completion.zsh1
-rw-r--r--lib/termsupport.zsh2
-rw-r--r--plugins/debian/debian.plugin.zsh60
-rw-r--r--plugins/macports/_port89
-rw-r--r--plugins/macports/macports.plugin.zsh5
-rw-r--r--plugins/perl/perl.plugin.zsh62
-rw-r--r--themes/tjkirch.zsh-theme15
7 files changed, 233 insertions, 1 deletions
diff --git a/lib/completion.zsh b/lib/completion.zsh
index 9c2dfecca..e8e9776a5 100644
--- a/lib/completion.zsh
+++ b/lib/completion.zsh
@@ -4,6 +4,7 @@ unsetopt menu_complete # do not autoselect the first completion entry
unsetopt flowcontrol
setopt auto_menu # show completion menu on succesive tab press
setopt complete_in_word
+setopt complete_aliases
setopt always_to_end
WORDCHARS=''
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index e1e536690..2843eb075 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -6,8 +6,8 @@ function title {
if [[ "$TERM" == "screen" ]]; then
print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars
elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
- print -Pn "\e]2;$2\a" #set window name
print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal)
+ print -Pn "\e]2;$2\a" #set window name
fi
}
diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh
new file mode 100644
index 000000000..f8865a412
--- /dev/null
+++ b/plugins/debian/debian.plugin.zsh
@@ -0,0 +1,60 @@
+# https://github.com/dbbolton/
+#
+# Debian-related zsh aliases and functions for zsh
+
+
+# Aliases ###################################################################
+
+# Some self-explanatory aliases
+alias afs='apt-file search --regexp'
+alias aps='aptitude search'
+alias apsrc='apt-get source'
+alias apv='apt-cache policy'
+
+alias apdg='su -c "aptitude update && aptitude safe-upgrade"'
+alias apud='su -c "aptitude update"'
+alias apug='su -c "aptitude safe-upgrade"'
+
+# print all installed packages
+alias allpkgs='aptitude search -F "%p" --disable-columns ~i'
+
+# Install all .deb files in the current directory.
+# Warning: you will need to put the glob in single quotes if you use:
+# glob_subst
+alias di='su -c "dpkg -i ./*.deb"'
+
+# Create a basic .deb package
+alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
+
+# Remove ALL kernel images and headers EXCEPT the one in use
+alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root'
+
+
+
+# Functions #################################################################
+
+# create a simple script that can be used to 'duplicate' a system
+apt-copy() {
+ print '#!/bin/sh'"\n" > apt-copy.sh
+
+ list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;')
+
+ print 'aptitude install '"$list\n" >> apt-copy.sh
+
+ chmod +x apt-copy.sh
+}
+
+
+# Kernel-package building shortcut
+dbb-build () {
+ MAKEFLAGS='' # temporarily unset MAKEFLAGS ( '-j3' will fail )
+ appendage='-custom' # this shows up in $ (uname -r )
+ revision=$(date +"%Y%m%d") # this shows up in the .deb file name
+
+ make-kpkg clean
+
+ time fakeroot make-kpkg --append-to-version "$appendage" --revision \
+ "$revision" kernel_image kernel_headers
+}
+
+
diff --git a/plugins/macports/_port b/plugins/macports/_port
new file mode 100644
index 000000000..06d7fb426
--- /dev/null
+++ b/plugins/macports/_port
@@ -0,0 +1,89 @@
+#compdef port
+
+local subcmds
+
+# we cache the list of ports
+# we shall use some cache policy to avoid problems with new ports
+if (( ! $+portlist )); then
+ portlist=($(port echo all; echo "all current active inactive installed uninstalled outdated"))
+fi
+
+subcmds=(
+'activate'
+'archive'
+'build'
+'cat'
+'clean'
+'configure'
+'contents'
+'deactivate'
+'dependents'
+'deps'
+'destroot'
+'dir'
+'distcheck'
+'distclean'
+'dmg'
+'echo'
+'edit'
+'extract'
+'fetch'
+'file'
+'help'
+'info'
+'install'
+'installed'
+'list'
+'livecheck'
+'location'
+'mpkg'
+'outdated'
+'patch'
+'pkg'
+'provides'
+'rpmpackage'
+'search'
+'selfupdate'
+'sync'
+'test'
+'unarchive'
+'uninstall'
+'upgrade'
+'variants'
+'version'
+)
+
+_arguments -C \
+'-v[verbose mode (generate verbose messages)]' \
+'-d[debug mode (generate debugging messages)]' \
+'-q[quiet mode (suppress messages)]' \
+'-D[specify portdir]' \
+'-k[keep mode (do not autoclean after install)]' \
+'-n[dont follow dependencies in upgrade (only for upgrading)]' \
+'-a[upgrade all installed ports (only for upgrading)]' \
+'-u[uninstall non-active ports when upgrading and uninstalling]' \
+'-f[force mode (ignore state file)]' \
+'-s[source-only mode]' \
+'-b[binary-only mode]' \
+'-o[honor state files older than Portfile]' \
+'*::command:->command' \
+&& return 0
+
+case $state in
+ command)
+ if ((CURRENT == 1)); then
+ state=subcommands
+ else
+ state=portname
+ fi
+ ;;
+esac
+
+case $state in
+ subcommands)
+ _describe -t commands 'port commands' subcmds
+ ;;
+ portname)
+ _describe -t commands 'available ports' portlist
+ ;;
+esac
diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh
index 9564829b0..cbbc49265 100644
--- a/plugins/macports/macports.plugin.zsh
+++ b/plugins/macports/macports.plugin.zsh
@@ -5,3 +5,8 @@ alias psu="sudo port selfupdate"
alias puni="sudo port uninstall inactive"
alias puo="sudo port upgrade outdated"
alias pup="psu && puo"
+
+# add macports completion function to path
+fpath=($ZSH/plugins/macports $fpath)
+autoload -U compinit
+compinit -i
diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh
new file mode 100644
index 000000000..f94c4195d
--- /dev/null
+++ b/plugins/perl/perl.plugin.zsh
@@ -0,0 +1,62 @@
+# https://github.com/dbbolton
+#
+# Below are some useful Perl-related aliases/functions that I use with zsh.
+
+
+# Aliases ###################################################################
+
+# perlbrew ########
+alias pbi='perlbrew install'
+alias pbl='perlbrew list'
+alias pbo='perlbrew off'
+alias pbs='perlbrew switch'
+alias pbu='perlbrew use'
+
+# Perl ############
+
+# perldoc`
+alias pd='perldoc'
+
+# use perl like awk/sed
+alias ple='perl -wlne'
+
+# show the latest stable release of Perl
+alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\'
+
+
+
+# Functions #################################################################
+
+# newpl - creates a basic Perl script file and opens it with $EDITOR
+newpl () {
+ # set $EDITOR to 'vim' if it is undefined
+ [[ -z $EDITOR ]] && EDITOR=vim
+
+ # if the file exists, just open it
+ [[ -e $1 ]] && print "$1 exists; not modifying.\n" && $EDITOR $1
+
+ # if it doesn't, make it, and open it
+ [[ ! -e $1 ]] && print '#!/usr/bin/perl'"\n"'use strict;'"\n"'use warnings;'\
+ "\n\n" > $1 && $EDITOR $1
+}
+
+
+# pgs - Perl Global Substitution
+# find pattern = 1st arg
+# replace pattern = 2nd arg
+# filename = 3rd arg
+pgs() { # [find] [replace] [filename]
+ perl -i.orig -pe 's/'"$1"'/'"$2"'/g' "$3"
+}
+
+
+# Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files.
+prep() { # [pattern] [filename unless STDOUT]
+ perl -nle 'print if /'"$1"'/;' $2
+}
+
+# say - append a newline to 'print'
+say() {
+ print "$1\n"
+}
+
diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme
new file mode 100644
index 000000000..446cde724
--- /dev/null
+++ b/themes/tjkirch.zsh-theme
@@ -0,0 +1,15 @@
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+function prompt_char {
+ if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi
+}
+
+PROMPT='%(?, ,%{$fg[red]%}FAIL: $?%{$reset_color%}
+)
+%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info)
+%_$(prompt_char) '
+
+RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}'