summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.abcde.conf62
-rw-r--r--.bash_logout5
-rw-r--r--.bash_profile4
-rw-r--r--.bashrc76
-rw-r--r--.extract_urlview6
-rw-r--r--.globgitignore18
-rw-r--r--.hgrc8
-rw-r--r--.mailcap11
-rw-r--r--.mairixrc7
-rw-r--r--.mrtrust1
-rw-r--r--.muttrc162
-rw-r--r--.procmailrc25
-rw-r--r--.profile11
-rw-r--r--.rtorrent.rc46
-rw-r--r--.screenrc48
-rw-r--r--.tmux.conf77
-rw-r--r--.zile14
17 files changed, 581 insertions, 0 deletions
diff --git a/.abcde.conf b/.abcde.conf
new file mode 100644
index 00000000..7c9f7a08
--- /dev/null
+++ b/.abcde.conf
@@ -0,0 +1,62 @@
+# sample config from: http://andrews-corner.org/abcde.html
+
+# Specify the encoder to use for MP3. In this case
+# the alternatives are gogo, bladeenc, l3enc, xingmp3enc, mp3enc.
+MP3ENCODERSYNTAX=lame
+
+# Specify the path to the selected encoder. In most cases the encoder
+# should be in your $PATH as I illustrate below, otherwise you will
+# need to specify the full path. For example: /usr/bin/lame
+LAME=lame
+
+# Specify your required encoding options here. Multiple options can
+# be selected as '--preset standard --another-option' etc.
+LAMEOPTS='--preset extreme'
+
+# Output type for MP3.
+OUTPUTTYPE="mp3"
+
+# The cd ripping program to use. There are a few choices here: cdda2wav,
+# dagrab, cddafs (Mac OS X only) and flac.
+CDROMREADERSYNTAX=cdparanoia
+
+# Give the location of the ripping program and pass any extra options:
+CDPARANOIA=cdparanoia
+CDPARANOIAOPTS="--never-skip=40"
+
+# Give the location of the CD identification program:
+CDDISCID=cd-discid
+
+# Give the base location here for the encoded music files.
+OUTPUTDIR="$HOME/var/music/Incoming/"
+
+# The default actions that abcde will take.
+ACTIONS=cddb,playlist,read,encode,tag,move,clean
+
+# Decide here how you want the tracks labelled for a standard 'single-artist',
+# multi-track encode and also for a multi-track, 'various-artist' encode:
+OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} - ${TRACKFILE}'
+VAOUTPUTFORMAT='${OUTPUT}/Various Artists/${ALBUMFILE}/${TRACKNUM} - ${ARTISTFILE} - ${TRACKFILE}'
+
+# Decide here how you want the tracks labelled for a standard 'single-artist',
+# single-track encode and also for a single-track 'various-artist' encode.
+# (Create a single-track encode with 'abcde -1' from the commandline.)
+ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
+VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'
+
+# Create playlists for single and various-artist encodes. I would suggest
+# commenting these out for single-track encoding.
+PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}/${ALBUMFILE}/${ALBUMFILE}.m3u'
+VAPLAYLISTFORMAT='${OUTPUT}/Various Artists/${ALBUMFILE}/${ALBUMFILE}.m3u'
+
+# Put spaces in the filenames instead of the more correct underscores:
+mungefilename ()
+{
+ echo "$@" | sed s,:,-,g | tr / _ | tr -d \'\"\?\[:cntrl:\]
+}
+
+# What extra options?
+MAXPROCS=2 # Run a few encoders simultaneously
+PADTRACKS=y # Makes tracks 01 02 not 1 2
+EXTRAVERBOSE=y # Useful for debugging
+EJECTCD=y # Please eject cd when finished :-)
diff --git a/.bash_logout b/.bash_logout
new file mode 100644
index 00000000..e58b0f86
--- /dev/null
+++ b/.bash_logout
@@ -0,0 +1,5 @@
+# when leaving the console clear the screen to increase privacy
+
+if [ "$SHLVL" = 1 ]; then
+ [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
+fi
diff --git a/.bash_profile b/.bash_profile
new file mode 100644
index 00000000..67287d17
--- /dev/null
+++ b/.bash_profile
@@ -0,0 +1,4 @@
+# include .bashrc if it exists
+if [ -f ~/.bashrc ]; then
+ . ~/.bashrc
+fi
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 00000000..94dec78e
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,76 @@
+# --- preferences
+
+export EDITOR=zile
+export VISUAL=zile
+
+# don't put duplicate lines in the history. See bash(1) for more options
+export HISTCONTROL=ignoredups
+# ... and ignore same sucessive entries.
+export HISTCONTROL=ignoreboth
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
+
+# if this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+ PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
+ ;;
+*)
+ ;;
+esac
+
+# enable power-completion (shouldn't be necessary)
+if [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
+fi
+
+# --- colours from gentoo's default bashrc
+
+use_color=false
+safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
+match_lhs=""
+[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
+[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
+[[ -z ${match_lhs} ]] \
+ && type -P dircolors >/dev/null \
+ && match_lhs=$(dircolors --print-database)
+[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
+
+if ${use_color} ; then
+ # Enable colors for ls, etc. Prefer ~/.dir_colors #64489
+ if type -P dircolors >/dev/null ; then
+ if [[ -f ~/.dir_colors ]] ; then
+ eval $(dircolors -b ~/.dir_colors)
+ elif [[ -f /etc/DIR_COLORS ]] ; then
+ eval $(dircolors -b /etc/DIR_COLORS)
+ fi
+ fi
+
+ if [[ ${EUID} == 0 ]] ; then
+ PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
+ else
+ PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
+ fi
+
+ alias ls='ls --color=auto'
+ alias grep='grep --colour=auto'
+else
+ if [[ ${EUID} == 0 ]] ; then
+ # show root@ when we don't have colors
+ PS1='\u@\h \W \$ '
+ else
+ PS1='\u@\h \w \$ '
+ fi
+fi
+unset use_color safe_term match_lhs
+
+# --- $PATH
+
+if [ -d ~/local/bin ] ; then
+ PATH=~/local/bin:"${PATH}"
+fi
+
+if [ -d ~/bin ] ; then
+ PATH=~/bin:"${PATH}"
+fi
diff --git a/.extract_urlview b/.extract_urlview
new file mode 100644
index 00000000..c5405ff7
--- /dev/null
+++ b/.extract_urlview
@@ -0,0 +1,6 @@
+COMMAND iceweasel
+DEFAULT_VIEW context
+HTML_TAGS a
+IGNORE_EMPTY_TAGS
+SHORTCUT
+NOREVIEW
diff --git a/.globgitignore b/.globgitignore
new file mode 100644
index 00000000..9bc4e18d
--- /dev/null
+++ b/.globgitignore
@@ -0,0 +1,18 @@
+\#*#
+.\#*
+*~
+_region_*
+*auto
+*ltxpng
+
+# now ignoring LaTeX junk because I'm not going to check it in anymore
+*.aux
+*.nav
+*.log
+*.dvi
+*.toc
+*.fmt
+*.bib
+*.bbl
+*.blg
+*.url \ No newline at end of file
diff --git a/.hgrc b/.hgrc
new file mode 100644
index 00000000..b3e0559a
--- /dev/null
+++ b/.hgrc
@@ -0,0 +1,8 @@
+[ui]
+username = Sean Whitton <sean@silentflame.com>
+verbose = True
+
+[extensions]
+hgext.win32text =
+hgext.fetch =
+hgext.mq =
diff --git a/.mailcap b/.mailcap
new file mode 100644
index 00000000..668011b0
--- /dev/null
+++ b/.mailcap
@@ -0,0 +1,11 @@
+application/pdf; evince '%s'; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf
+
+application/msword; soffice %s
+application/vnd.openxmlformats-officedocument.wordprocessingml.document; soffice %s
+application/vnd.oasis.opendocument.text; soffice %s
+application/msword; soffice %s
+
+image/*; feh %s
+image/png; feh %s
+image/jpg; feh %s
+image/gif; feh %s
diff --git a/.mairixrc b/.mairixrc
new file mode 100644
index 00000000..d5fa76b8
--- /dev/null
+++ b/.mairixrc
@@ -0,0 +1,7 @@
+base=$HOME
+maildir=.offlinemail/*
+mbox=lib/annex/doc/mail/*
+mfolder=lib/annex/doc/mail/mairixresults
+database=~/.mairixdb
+omit=lib/annex/doc/mail/mairixresults
+omit=spam*
diff --git a/.mrtrust b/.mrtrust
new file mode 100644
index 00000000..e40024b3
--- /dev/null
+++ b/.mrtrust
@@ -0,0 +1 @@
+~/src/.mrconfig
diff --git a/.muttrc b/.muttrc
new file mode 100644
index 00000000..4173e58e
--- /dev/null
+++ b/.muttrc
@@ -0,0 +1,162 @@
+# -*- mode: conf; -*-
+
+# --- preferences
+
+set from=spw@sdf.org
+set realname="Sean Whitton"
+#set reverse_name = yes
+#set reverse_realname = no
+set sendmail = $HOME/bin/msmtpq
+set envelope_from = yes
+set use_from = yes
+set folder=~/.offlinemail/
+set spoolfile = +INBOX
+set record = +sent
+set postponed = +drafts
+set certificate_file = ~/.mutt/certificates
+set move = no
+set delete = ask-yes
+#unset edit_hdrs
+set edit_hdrs
+set include
+set reply_to
+set abort_nosubject = no
+#alternates '(sean@silentflame.com)|(sean.whitton@balliol.ox.ac.uk)'
+set hdr_format="%4C %Z %{%m/%d} %-15.15F (%4c) %s"
+unset help
+set mail_check=20
+set timeout=15
+set pager_index_lines=8
+unset arrow_cursor
+set fast_reply
+set pager_context = 1
+set reply_to = ask-yes
+set recall = ask-yes
+#set pager_stop
+set tmpdir="~/.mutt-tmp"
+set resolve = yes
+set noconfirmappend
+set abort_unmodified = yes
+unset signature
+unset mark_old # to make F9 binding more useful
+set editor = "emacsclient -t -a \"zile -f auto-fill-mode +8\""
+#set editor="switch-to-emacsclient"
+set tilde
+set smart_wrap
+set wrapmargin=10
+unset markers
+set wait_key=no
+set sendmail_wait = -1
+
+# --- sorting
+
+set sort = threads
+set sort_browser = date
+set sort_aux = last-date-received
+
+# --- GPG settings
+
+set pgp_autosign = yes
+set pgp_sign_as = 0x3B6D411B
+set pgp_replysign = yes
+set pgp_replysignencrypted = yes
+set pgp_replyencrypt = yes
+set pgp_timeout = 120
+#set fcc_clear = yes
+set fcc_clear = no
+set pgp_use_gpg_agent = yes
+#set pgp_strict_enc # maybe needed?
+
+set pgp_decode_command="gpg --use-agent --no-verbose --quiet --batch --output - %f"
+set pgp_verify_command="gpg --use-agent --no-verbose --quiet --batch --output - --verify %s %f"
+set pgp_decrypt_command="gpg --use-agent --no-verbose --quiet --batch --output - %f"
+set pgp_sign_command="gpg --use-agent --no-verbose --batch --quiet --output - --armor --detach-sign --textmode %?a?-u %a? %f"
+set pgp_clearsign_command="gpg --use-agent --no-verbose --batch --quiet --output - --armor --textmode --clearsign %?a?-u %a? %f"
+set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg --use-agent --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x3B6D411B -- -r %r -- %f"
+set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg --use-agent --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x3B6D411B -- -r %r -- %f"
+set pgp_import_command="gpg --use-agent --no-verbose --import %f"
+set pgp_export_command="gpg --use-agent --no-verbose --export --armor %r"
+set pgp_verify_key_command="gpg --use-agent --verbose --batch --fingerprint --check-sigs %r"
+set pgp_list_pubring_command="gpg --use-agent --no-verbose --batch --quiet --with-colons --list-keys %r"
+set pgp_list_secring_command="gpg --use-agent --no-verbose --batch --quiet --with-colons --list-secret-keys %r"
+set pgp_good_sign="^\\[GNUPG:\\] GOODSIG"
+
+# --- message headers
+
+hdr_order From: Date: User-Agent: X-Mailer: x-oxford-username: Message-Id: To: Cc: Reply-To: Subject:
+ignore *
+unignore From: Date: User-Agent: X-Mailer: x-oxford-username: Message-Id: To: Cc: Reply-To: Subject:
+
+# --- mailboxes
+
+source ~/.mutt/mailboxes
+
+# --- message part viewing
+
+auto_view text/html
+alternative_order text/html text/plain text/enriched text
+set mailcap_path = ~/.mutt/mailcap
+
+# --- addresses
+
+set alias_file=~/.mutt/aliases # this is the main alias file
+source ~/.mutt/aliases
+source ~/.mutt/groups # keep shortcut groups in a separate
+ # file for simplicity
+
+# --- key bindings
+
+# filtering function keys, some from Jonathan
+macro index <F5> "<limit>((~N|~O)!~D)<enter><home>"
+macro pager <F5> "<limit>~(((~N|~O)!~D))<enter><home>"
+
+macro index <F6> "lall\n<end>"
+macro pager <F6> "lall\n<end>"
+
+macro index <F7> "c=INBOX<return>" "switch to inbox"
+macro pager <F7> "c=INBOX<return>" "switch to inbox"
+
+macro index <F8> "c=sent<return>" "switch to sent"
+macro pager <F8> "c=sent<return>" "switch to sent"
+
+macro index <F9> "c=archive<return>" "switch to archive"
+macro pager <F9> "c=archive<return>" "switch to archive"
+
+# limit to the messages I haven't dealt with yet when opening inbox
+folder-hook INBOX$ push <F5>
+
+# extract URLS--config from http://www.memoryhole.net/~kyle/extract_url/
+macro index,pager ,b "<enter-command> set my_pdsave=\$pipe_decode<enter>\
+<enter-command> unset pipe_decode<enter>\
+<pipe-message>extract_url.pl<enter>\
+<enter-command> set pipe_decode=\$my_pdsave<enter>" "get URLs"
+
+macro index,pager ,B "<enter-command> set my_pdsave=\$pipe_decode<enter>\
+<enter-command> set pipe_decode<enter>\
+<pipe-message>extract_url.pl<enter>\
+<enter-command> set pipe_decode=\$my_pdsave<enter>" "decrypt message, then get URLs"
+
+message-hook . 'macro index,pager \cb ,b "URL viewer"'
+message-hook ~G 'macro index,pager \cb ,B "URL viewer"'
+
+# open RSS links in browser
+macro index,pager <F3> "<pipe-message>grep '\^http' | sed 's/\^/-new-tab /' | xargs iceweasel<enter>" "open all URLs at beginning of lines in message in browser tabs"
+
+# easier scrolling
+bind pager ] previous-page
+bind pager [ next-page
+
+# Emacs-style bindings
+bind index n next-undeleted
+bind pager n next-undeleted
+bind index p previous-undeleted
+bind pager p previous-undeleted
+bind index ! flag-message
+bind pager ! flag-message
+bind pager t display-toggle-weed
+
+# --- colours
+
+# make flagged & new messages more obvious
+color index brightred black "~F"
+color index brightwhite black "~N|~O"
diff --git a/.procmailrc b/.procmailrc
new file mode 100644
index 00000000..5518eed9
--- /dev/null
+++ b/.procmailrc
@@ -0,0 +1,25 @@
+MAILDIR=/meta/s/spw/mail
+DEFAULT=/meta/mail/spw
+#LOGFILE=/meta/s/spw/tmp/.procmail.log
+LOGFILE=/dev/null
+SHELL=/bin/sh
+PATH=/usr/pkg/bin:/usr/local/bin:/usr/bin:/bin
+
+# spam
+:0:
+* ^X-Spam-Flag: YES
+$MAILDIR/spam
+
+# more spam
+:0:
+* ^From.*<newletters@slacker.com>
+$MAILDIR/spam
+
+:0:
+* ^Subject.*BitFolk VPS 'seaotter' data transfer report
+$MAILDIR/archive
+
+# mailing lists I archive but don't read
+:0:
+* ^List-Id.*<wikimedia-l.lists.wikimedia.org>|^List-Id.*<wikimania-l.lists.wikimedia.org>|^List-Id.*<wikitech-l.lists.wikimedia.org>|^List-Id.*<mediawiki-announce.lists.wikimedia.org>|^List-Id.*<toolserver-l.lists.wikimedia.org>|^List-Id.*<daily-article-l.lists.wikimedia.org>|^List-Id.*<unblock-en-l.lists.wikimedia.org>|^List-Id.*<meta-l_lists.wikipedia.be.lists.wikipedia.be>|^List-Id.*amidaniel.com>|^List-Id.*<wikimediameta-l.lists.wikimedia.org>|^List-Id.*<wikiquality-l.lists.wikimedia.org>|^List-Id.*<wmfcc-l.lists.wikimedia.org>|^List-Id.*<internal-l.lists.wikimedia.org>|^List-Id.*<mediation-en-l.lists.wikimedia.org>|^List-Id.*<otrs-en-l.lists.wikimedia.org>|^List-Id.*<toolserver-announce.lists.wikimedia.org>|^List-Id.*<comproj.lists.wikimedia.org>|^List-Id.*<wikimediauk-l.lists.wikimedia.org>|^List-Id.*<irc-contacts.lists.wikimedia.org>|^List-Id.*<wikipedia-l.lists.wikimedia.org>|^List-Id.*<wikien-l.lists.wikimedia.org>|^List-Id.*<editors_wikizine.org.wikizine.org>|^List-Id.*<announce-l.lists.wikimedia.org>
+$MAILDIR/oldlists
diff --git a/.profile b/.profile
new file mode 100644
index 00000000..c716395c
--- /dev/null
+++ b/.profile
@@ -0,0 +1,11 @@
+#umask 022
+
+# --- $PATH
+
+if [ -d ~/local/bin ] ; then
+ PATH=~/local/bin:"${PATH}"
+fi
+
+if [ -d ~/bin ] ; then
+ PATH=~/bin:"${PATH}"
+fi
diff --git a/.rtorrent.rc b/.rtorrent.rc
new file mode 100644
index 00000000..94d86f19
--- /dev/null
+++ b/.rtorrent.rc
@@ -0,0 +1,46 @@
+# --- connections and throttling
+
+max_peers = 20
+max_peers_seed = 20
+max_uploads = 4
+download_rate = 25
+upload_rate = 50
+
+schedule = throttle_1a,22:00:00,24:00:00,download_rate=1024
+schedule = throttle_1b,22:00:00,24:00:00,upload_rate=0
+schedule = throttle_2a,16:00:00,24:00:00,download_rate=25
+schedule = throttle_2b,16:00:00,24:00:00,upload_rate=10
+
+# --- directories
+
+directory = ~/local/rt/incomplete
+
+schedule = watch_directory,10,10,load=~/local/rt/watch/*.torrent
+schedule = untied_directory,10,10,close_untied=
+
+#system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/local/rt/complete/;d.set_directory=~/local/rt/complete/"
+system.method.set_key = event.download.finished,move_complete,"d.set_directory=~/local/rt/complete/;execute=mv,-u,$d.get_base_path=,~/local/rt/complete/"
+
+# close torrents when diskspace is low
+schedule = low_diskspace,5,60,close_low_diskspace=100M
+
+# --- sessions & hashing
+
+session = ~/local/rt/session
+#session_lock = yes
+session_save = yes
+#session_on_completion = yes
+# don't hash finished torrents
+# (in general, minimise hashing)
+check_hash = no
+
+# --- network and trackers
+
+port_range = 49167-49167
+use_udp_trackers = yes
+encryption = allow_incoming,try_outgoing,enable_retry
+dht = disable
+# dht_port = 6881
+peer_exchange = no
+# fix any cert problems
+network.http.ssl_verify_peer.set = 0
diff --git a/.screenrc b/.screenrc
new file mode 100644
index 00000000..5022f635
--- /dev/null
+++ b/.screenrc
@@ -0,0 +1,48 @@
+# start in homedir
+chdir
+
+# --- preferences
+
+vbell off
+autodetach on
+startup_message off
+defscrollback 5000
+escape ^z^z
+defnonblock 5
+nonblock 5
+altscreen on
+
+# --- status bar
+
+# from the gentoo wiki, hacked for urxvt with zenburn colours
+hardstatus alwayslastline
+hardstatus string '%{= dg}[ %{G}%H %{g}][%= %{= dw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'
+
+# --- terminal settings
+
+# http://frexx.de/xterm-256-notes/
+# Get 256 colours
+# terminfo and termcap for nice 256 color terminal
+
+# allow bold colors - necessary for some reason
+attrcolor b ".I"
+# tell screen how to set colors. AB = background, AF=foreground
+termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
+# erase background with current bg color
+defbce "on"
+
+term screen-256color
+
+# --- bindings
+
+# bounce back and forth between windows
+bind ^z other
+
+# toggle the status bar
+bind f eval "hardstatus alwaysignore"
+bind F eval "hardstatus alwayslastline"
+
+# bind an rtorrent helper macro
+# bindkey rather than bind makes C-z not required but then can't type capital R
+register s ^I^Xd.set_directory=~/local/rt/complete^M^S^N
+bind R process s
diff --git a/.tmux.conf b/.tmux.conf
new file mode 100644
index 00000000..c8335aff
--- /dev/null
+++ b/.tmux.conf
@@ -0,0 +1,77 @@
+# start a new session: means "tmux attach" will always do something
+# sensible
+
+new-session
+
+# --- preferencs
+
+
+set -g base-index 1
+set -g pane-base-index 1
+set -g utf8
+set-window-option -g utf8 on
+set -g history-limit 10000
+set -sg escape-time 1
+set -g set-titles on
+set -g set-titles-string "tmux #I:#W"
+setw -g mode-keys emacs
+set-window-option -g xterm-keys on
+set -g default-terminal "screen-256color"
+
+# --- status bar
+
+set -g status-utf8 on
+set -g status-justify centre
+setw -g monitor-activity on
+set -g visual-activity on
+set -g status-left-length 70
+set -g status-left "#[fg=green]: #h"
+set -g status-right-length 60
+set -g status-right "#[fg=blue]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p :: #(date -u | awk '{print $4}')::"
+
+# --- key bindings
+
+unbind C-b
+set -g prefix C-z
+
+# C-z z to send C-z to e.g. nested tmux, and C-z C-z to bounce between windows
+bind z send-prefix
+unbind C-z
+bind-key C-z last-window
+
+# splitting should maintain current working directory
+bind '"' split-window -c "#{pane_current_path}"
+bind % split-window -h -c "#{pane_current_path}"
+bind c new-window -c "#{pane_current_path}"
+
+# my launcher shortcuts
+bind-key C-m command-prompt -p "man" "split-window 'exec man %%'"
+bind-key e new-window -n "emacs" "emacsclient -nw"
+bind-key C-e split-window "emacsclient -nw"
+bind-key C-s command-prompt -p "host" "split-window 'ssh %1'"
+bind-key S command-prompt -p "host" "new-window -n %1 'ssh %1'"
+
+# --- zenburn from https://github.com/plathrop/dotfiles/blob/master/tmux/zenburn.conf
+
+setw -g clock-mode-colour colour117
+setw -g mode-attr bold
+setw -g mode-fg colour117
+setw -g mode-bg colour238
+set -g status-bg colour235
+set -g status-fg colour248
+set -g status-attr dim
+set -g status-left ' #[fg=colour174][ #[fg=colour187,bold]#(whoami)@#h #[fg=colour174]]'
+set -g status-right '#[fg=colour174][ #[fg=colour187,bold]%d %h %H:%M #[fg=colour174]] '
+set -g status-right-length 80
+setw -g window-status-current-fg colour223
+setw -g window-status-current-bg colour237
+setw -g window-status-current-attr bold
+set -g message-attr bold
+set -g message-fg colour117
+set -g message-bg colour235
+set-option -g status-position top
+
+# --- terminal keycode fixes
+
+set -g terminal-overrides "xterm*:kf1=\e[11~:kf2=\e[12~:kf3=\e[13~:kf4=\e[14~:kf5=\e[15~:kf6=\e[17~:kf7=\e[18~:kf8=\e[19~"
+# set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
diff --git a/.zile b/.zile
new file mode 100644
index 00000000..6986fcb7
--- /dev/null
+++ b/.zile
@@ -0,0 +1,14 @@
+;;;; ---- preferences ----
+
+(setq indent-tabs-mode nil)
+;; (setq transient-mark-mode nil)
+(setq make-backup-files nil)
+(setq tab-width 4)
+
+;;;; ---- bindings ----
+
+(global-set-key "\C-h" 'backward-delete-char)
+(global-set-key "\C-w" 'backward-kill-word)
+(global-set-key "\C-x\RET" 'execute-extended-command)
+(global-set-key "\C-x\C-m" 'execute-extended-command)
+(global-set-key "\C-x\C-k" 'kill-region)