Merge branch 'master' of git.epichack.com:barak/dotfiles

This commit is contained in:
Barak Michener 2013-05-09 18:20:36 -04:00
commit 750300d11d
24 changed files with 1140 additions and 39 deletions

View file

@ -10,30 +10,30 @@
#alias dir='ls --color=auto --format=vertical'
#alias vdir='ls --color=auto --format=long'
case `uname` in
Linux)
if [ "$TERM" != "dumb" ]; then
eval "`dircolors -b`"
fi
alias ls='ls -F --color=auto'
alias open='xdg-open'
;;
Darwin)
alias ls='ls -FG'
;;
FreeBSD)
alias ls='ls -FG'
;;
SunOS)
alias ls='ls -F'
;;
*)
if [ "$TERM" != "dumb" ]; then
eval "`dircolors -b`"
fi
alias ls='ls --color=auto'
;;
esac
#case `uname` in
#Linux)
#if [ "$TERM" != "dumb" ]; then
#eval "`dircolors -b`"
#fi
#alias ls='ls -F --color=auto'
#alias open='xdg-open'
#;;
#Darwin)
#alias ls='ls -FG'
#;;
#FreeBSD)
#alias ls='ls -FG'
#;;
#SunOS)
#alias ls='ls -F'
#;;
#*)
#if [ "$TERM" != "dumb" ]; then
#eval "`dircolors -b`"
#fi
#alias ls='ls --color=auto'
#;;
#esac
@ -45,6 +45,7 @@ alias la='ls -alF'
#alias l='ls -CF'
alias :e='vim'
alias t='task'
alias vi='vim'
alias em='emacs'
alias grep="grep --color=auto"
@ -52,7 +53,7 @@ alias grep="grep --color=auto"
alias dvtm="dvtm -m \"^w\""
alias tm="tmux -2 attach"
alias ppjson="python -mjson.tool"
alias tmux-pwn='tmux list-clients | sed "s|^\(/dev/ttys[0-9]\+\).*\[\([0-9]\+x[0-9]\+\).*$|\2 \1|" | sort -r -n | tail -n +2 | cut -d " " -f 2 | xargs -n 1 tmux detach-client -t'
#alias tmux-pwn='tmux list-clients | sed "s|^\(/dev/ttys[0-9]\+\).*\[\([0-9]\+x[0-9]\+\).*$|\2 \1|" | sort -r -n | tail -n +2 | cut -d " " -f 2 | xargs -n 1 tmux detach-client -t'
#Cosmetic/useful
#alias naim="naim --noscreen"

View file

@ -99,6 +99,13 @@ if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
fasd_cache="$HOME/.fasd-init-bash"
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache
# enable color support of ls and also add handy aliases
#if [ "$TERM" != "dumb" ]; then
# eval "`dircolors -b`"

View file

@ -156,7 +156,6 @@ function (widget, args)
return args[2]
end , 120, "BAT0")
-- Register CPU widget
vicious.register(cpuwidget, vicious.widgets.cpu,
function (widget, args)

View file

@ -1,4 +1,5 @@
set PATH ~/bin /bin /sbin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin ~/.cabal/bin /usr/lib/go/bin ~/.gem/ruby/1.9.1/bin $PATH
set fish_greeting ""
. ~/.bash_aliases

9
.gitmodules vendored
View file

@ -10,9 +10,6 @@
[submodule ".vim/bundle/NrrwRgn"]
path = .vim/bundle/NrrwRgn
url = git://github.com/chrisbra/NrrwRgn.git
[submodule ".vim/bundle/sparkup"]
path = .vim/bundle/sparkup
url = git://github.com/rstacruz/sparkup.git
[submodule ".vim/bundle/ack.vim"]
path = .vim/bundle/ack.vim
url = git://github.com/mileszs/ack.vim.git
@ -64,3 +61,9 @@
[submodule ".vim/bundle/vim-angry"]
path = .vim/bundle/vim-angry
url = https://github.com/b4winckler/vim-angry.git
[submodule ".vim/bundle/YouCompleteMe"]
path = .vim/bundle/YouCompleteMe
url = https://github.com/Valloric/YouCompleteMe.git
[submodule ".vim/bundle/vim-sparkup"]
path = .vim/bundle/vim-sparkup
url = git://github.com/tristen/vim-sparkup.git

29
.taskrc Normal file
View file

@ -0,0 +1,29 @@
# [Created by task 2.2.0 5/9/2013 17:01:23]
# Taskwarrior program configuration file.
# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-faq',
# 'man task-tutorial', 'man task-color', 'man task-sync' or 'man taskrc'
# Here is an example of entries that use the default, override and blank values
# variable=foo -- By specifying a value, this overrides the default
# variable= -- By specifying no value, this means no default
# #variable=foo -- By commenting out the line, or deleting it, this uses the default
# Use the command 'task show' to see all defaults and overrides
# Files
data.location=~/.task
pull.default.uri=barak@miranda.barakmich.com:/fs/home/barak/.task
push.default.uri=barak@miranda.barakmich.com:/fs/home/barak/.task
# Color theme (uncomment one to use)
#include /usr/share/doc/task/rc/light-16.theme
#include /usr/share/doc/task/rc/light-256.theme
#include /usr/share/doc/task/rc/dark-16.theme
#include /usr/share/doc/task/rc/dark-256.theme
#include /usr/share/doc/task/rc/dark-red-256.theme
#include /usr/share/doc/task/rc/dark-green-256.theme
#include /usr/share/doc/task/rc/dark-blue-256.theme
#include /usr/share/doc/task/rc/dark-violets-256.theme
#include /usr/share/doc/task/rc/dark-yellow-green.theme
#include /usr/share/doc/task/rc/dark-gray-256.theme

@ -0,0 +1 @@
Subproject commit 0c19ee4fa78f69b4591fe107c104b07174cd661c

@ -1 +1 @@
Subproject commit 34883e28bbc021eae07d85f259150c4d5797457e
Subproject commit 195fbd1d31d0bab944b0b92fb7ffa83fb50c4524

@ -1 +1 @@
Subproject commit eaf19734e73dbaa5b30f10591079043b0eba0aab
Subproject commit 448ad6f1bce0308329ccb020b51710227108b578

@ -1 +0,0 @@
Subproject commit 5041a10515c98f69dd510b0486983eee1fa1697e

@ -1 +1 @@
Subproject commit 6f214cbb6d42256031aaa9670cf9ea7358e18431
Subproject commit 7f0412e91dd6e2b48cbe8ae54bddcfeca0c127c1

@ -1 +1 @@
Subproject commit 4c7e649efba289df0e7e8bb9abfa37f95b28f8ed
Subproject commit 54ead5abcbfdd776e1160b5510a129884c39f29c

@ -1 +1 @@
Subproject commit 935184bd1806e37c1e3319c7f7f3ae94ef5a5313
Subproject commit ff031d022f2123353bc93a3aa97290287c10a287

@ -1 +1 @@
Subproject commit 00219a9f6f55394664abaeaad89de05fd5eaa7bc
Subproject commit 679469ed357e141b8b028e1a0c0a12752704fd7a

@ -0,0 +1 @@
Subproject commit b5e9269136ae8dc7d6fbd5ed8777cbcd8cc22fbf

10
.vimrc
View file

@ -162,7 +162,12 @@ let g:ConqueTerm_CWInsert = 1
let g:ConqueTerm_InsertOnEnter = 0
let g:ConqueTerm_SendVisKey = '<Leader>ss'
" * MiniBufExplorer
" * YouCompleteMe
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf = 0
"let g:ycm_add_preview_to_completeopt = 1
" * MinBufExplorer
"let g:miniBufExplMapWindowNavVim = 1
"let g:miniBufExplMapWindowNavArrows = 1
"let g:miniBufExplMapCTabSwitchBufs = 1
@ -180,7 +185,8 @@ let g:CommandTMaxDepth = 7
" let g:org_todo_setup='TODO | DONE'
" while g:org_tag_setup is itself a string
"let g:org_tag_setup='{@home(h) @work(w) @tennisclub(t)} \n {easy(e) hard(d)} \n {computer(c) phone(p)}'
au! BufRead,BufWrite,BufWritePost,BufNewFile *.org
au BufEnter *.org call org#SetOrgFileType()
" ** STATUSLINE **

120
.ycm_extra_conf.py Normal file
View file

@ -0,0 +1,120 @@
import os
import ycm_core
from clang_helpers import PrepareClangFlags
# These are the compilation flags that will be used in case there's no
# compilation database set (by default, one is not set).
# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
flags = [
'-Wall',
'-Wextra',
'-Werror',
'-Wc++98-compat',
'-Wno-long-long',
'-Wno-variadic-macros',
'-fexceptions',
'-DNDEBUG',
'-DUSE_CLANG_COMPLETER',
# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which
# language to use when compiling headers. So it will guess. Badly. So C++
# headers will be compiled as C headers. You don't want that so ALWAYS specify
# a "-std=<something>".
# For a C project, you would set this to something like 'c99' instead of
# 'c++11'.
'-std=c++11',
# ...and the same thing goes for the magic -x option which specifies the
# language that the files to be compiled are written in. This is mostly
# relevant for c++ headers.
# For a C project, you would set this to 'c' instead of 'c++'.
'-x',
'c++',
'-isystem',
'../BoostParts',
'-isystem',
# This path will only work on OS X, but extra paths that don't exist are not
# harmful
'/System/Library/Frameworks/Python.framework/Headers',
'-isystem',
'../llvm/include',
'-isystem',
'../llvm/tools/clang/include',
'-I',
'.',
'-I',
'./ClangCompleter',
'-isystem',
'./tests/gmock/gtest',
'-isystem',
'./tests/gmock/gtest/include',
'-isystem',
'./tests/gmock',
'-isystem',
'./tests/gmock/include'
]
# Set this to the absolute path to the folder (NOT the file!) containing the
# compile_commands.json file to use that instead of 'flags'. See here for
# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
#
# Most projects will NOT need to set this to anything; you can just change the
# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
compilation_database_folder = ''
if compilation_database_folder:
database = ycm_core.CompilationDatabase( compilation_database_folder )
else:
database = None
def DirectoryOfThisScript():
return os.path.dirname( os.path.abspath( __file__ ) )
def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
if not working_directory:
return flags
new_flags = []
make_next_absolute = False
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
for flag in flags:
new_flag = flag
if make_next_absolute:
make_next_absolute = False
if not flag.startswith( '/' ):
new_flag = os.path.join( working_directory, flag )
for path_flag in path_flags:
if flag == path_flag:
make_next_absolute = True
break
if flag.startswith( path_flag ):
path = flag[ len( path_flag ): ]
new_flag = path_flag + os.path.join( working_directory, path )
break
if new_flag:
new_flags.append( new_flag )
return new_flags
def FlagsForFile( filename ):
if database:
# Bear in mind that compilation_info.compiler_flags_ does NOT return a
# python list, but a "list-like" StringVec object
compilation_info = database.GetCompilationInfoForFile( filename )
final_flags = PrepareClangFlags(
MakeRelativePathsInFlagsAbsolute(
compilation_info.compiler_flags_,
compilation_info.compiler_working_dir_ ),
filename )
else:
relative_to = DirectoryOfThisScript()
final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
return {
'flags': final_flags,
'do_cache': True
}

View file

@ -10,8 +10,10 @@ bindkey '\e[6~' end-of-history # Page down key
bindkey '\e[2~' redisplay # Insert key
bindkey '\e[5~' insert-last-word # Page up key
export GOPATH="$HOME/.go/"
# remove /usr/games and /usr/X11R6/bin if you want
PATH=$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/$HOME/.gem/ruby/1.9.1/bin:$HOME/.cabal/bin:/usr/lib/go/bin:$PATH; export PATH
PATH=$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/$HOME/.gem/ruby/1.9.1/bin:$HOME/.cabal/bin:$HOME/.go/bin:/usr/lib/go/bin:$PATH; export PATH
#PATH=$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/$HOME/.gem/ruby/1.9/bin; export PATH
case `uname` in
SunOS)

9
.zshrc
View file

@ -82,6 +82,15 @@ source ~/.zprofile
if [ -f ~/.bash_aliases ]; then
source ~/.bash_aliases
fi
fasd_cache="$HOME/.fasd-init-zsh"
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcompinstall >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache
source ~/.zshenv
##############################################################

624
bin/fasd Executable file

File diff suppressed because it is too large Load diff

108
bin/long-running.bash Normal file
View file

@ -0,0 +1,108 @@
# Copyright (c) 2008-2012 undistract-me developers. See LICENSE for details.
#
# Source this, and then run notify_when_long_running_commands_finish_install
#
# Relies on http://www.twistedmatrix.com/users/glyph/preexec.bash.txt
# Generate a notification for any command that takes longer than this amount
# of seconds to return to the shell. e.g. if LONG_RUNNING_COMMAND_TIMEOUT=10,
# then 'sleep 11' will always generate a notification.
# Default timeout is 10 seconds.
if [ -z "$LONG_RUNNING_COMMAND_TIMEOUT" ]; then
LONG_RUNNING_COMMAND_TIMEOUT=10
fi
# The pre-exec hook functionality is in a separate branch.
if [ -z "$LONG_RUNNING_PREEXEC_LOCATION" ]; then
LONG_RUNNING_PREEXEC_LOCATION=$HOME/bin/preexec.bash
fi
if [ -f "$LONG_RUNNING_PREEXEC_LOCATION" ]; then
. $LONG_RUNNING_PREEXEC_LOCATION
else
echo "Could not find preexec.bash"
fi
function notify_when_long_running_commands_finish_install() {
function active_window_id () {
if [[ -n $DISPLAY ]] ; then
set - $(xprop -root _NET_ACTIVE_WINDOW)
echo $5
return
fi
echo nowindowid
}
function sec_to_human () {
local H=''
local M=''
local S=''
local h=$(($1 / 3600))
[ $h -gt 0 ] && H="${h} hour" && [ $h -gt 1 ] && H="${H}s"
local m=$((($1 / 60) % 60))
[ $m -gt 0 ] && M=" ${m} min" && [ $m -gt 1 ] && M="${M}s"
local s=$(($1 % 60))
[ $s -gt 0 ] && S=" ${s} sec" && [ $s -gt 1 ] && S="${S}s"
echo $H$M$S
}
function precmd () {
if [[ -n "$__udm_last_command_started" ]]; then
local now current_window
printf -v now "%(%s)T" -1
current_window=$(active_window_id)
if [[ $current_window != $__udm_last_window ]] ||
[[ $current_window == "nowindowid" ]] ; then
local time_taken=$(( $now - $__udm_last_command_started ))
local time_taken_human=$(sec_to_human $time_taken)
local appname=$(basename "${__udm_last_command%% *}")
if [[ $time_taken -gt $LONG_RUNNING_COMMAND_TIMEOUT ]] &&
[[ -n $DISPLAY ]] &&
[[ ! " $LONG_RUNNING_IGNORE_LIST " == *" $appname "* ]] ; then
local icon=dialog-information
local urgency=low
if [[ $__preexec_exit_status != 0 ]]; then
icon=dialog-error
urgency=normal
fi
notify=$(command -v notify-send)
if [ -x "$notify" ]; then
$notify \
-i $icon \
-u $urgency \
"Long command completed" \
"\"$__udm_last_command\" took $time_taken_human"
else
echo -ne "\a"
fi
fi
if [[ -n $LONG_RUNNING_COMMAND_CUSTOM_TIMEOUT ]] &&
[[ -n $LONG_RUNNING_COMMAND_CUSTOM ]] &&
[[ $time_taken -gt $LONG_RUNNING_COMMAND_CUSTOM_TIMEOUT ]] ; then
# put in brackets to make it quiet
export __preexec_exit_status
( $LONG_RUNNING_COMMAND_CUSTOM \
"\"$__udm_last_command\" took $time_taken_human" & )
fi
fi
fi
}
function preexec () {
# use __udm to avoid global name conflicts
__udm_last_command_started=$(printf "%(%s)T\n" -1)
__udm_last_command=$(echo "$1")
__udm_last_window=$(active_window_id)
}
preexec_install
}

180
bin/preexec.bash Normal file
View file

@ -0,0 +1,180 @@
# Copyright (c) 2008-2012 undistract-me developers. See LICENSE for details.
#
# preexec.bash -- Bash support for ZSH-like 'preexec' and 'precmd' functions.
# The 'preexec' function is executed before each interactive command is
# executed, with the interactive command as its argument. The 'precmd'
# function is executed before each prompt is displayed.
# To use, in order:
# 1. source this file
# 2. define 'preexec' and/or 'precmd' functions (AFTER sourcing this file),
# 3. as near as possible to the end of your shell setup, run 'preexec_install'
# to kick everything off.
# Note: this module requires 2 bash features which you must not otherwise be
# using: the "DEBUG" trap, and the "PROMPT_COMMAND" variable. preexec_install
# will override these and if you override one or the other this _will_ break.
# This is known to support bash3, as well as *mostly* support bash2.05b. It
# has been tested with the default shells on MacOS X 10.4 "Tiger", Ubuntu 5.10
# "Breezy Badger", Ubuntu 6.06 "Dapper Drake", and Ubuntu 6.10 "Edgy Eft".
# Copy screen-run variables from the remote host, if they're available.
if [[ "$SCREEN_RUN_HOST" == "" ]]
then
SCREEN_RUN_HOST="$LC_SCREEN_RUN_HOST"
SCREEN_RUN_USER="$LC_SCREEN_RUN_USER"
fi
# Default do-nothing implementation of preexec.
function preexec () {
true
}
# Default do-nothing implementation of precmd.
function precmd () {
true
}
# This function is installed as the PROMPT_COMMAND; it is invoked before each
# interactive prompt display. It sets a variable to indicate that the prompt
# was just displayed, to allow the DEBUG trap, below, to know that the next
# command is likely interactive.
function preexec_invoke_cmd () {
precmd
trap 'preexec_invoke_exec' DEBUG
}
# This function is installed as the DEBUG trap. It is invoked before each
# interactive prompt display. Its purpose is to inspect the current
# environment to attempt to detect if the current command is being invoked
# interactively, and invoke 'preexec' if so.
function preexec_invoke_exec () {
if [[ -n "$COMP_LINE" ]]
then
# We're in the middle of a completer. This obviously can't be
# an interactively issued command.
return
fi
trap '' DEBUG
if [[ "preexec_invoke_cmd" == "$BASH_COMMAND" ]]
then
# Sadly, there's no cleaner way to detect two prompts being displayed
# one after another. This makes it important that PROMPT_COMMAND
# remain set _exactly_ as below in preexec_install. Let's switch back
# out of interactive mode and not trace any of the commands run in
# precmd.
# Given their buggy interaction between BASH_COMMAND and debug traps,
# versions of bash prior to 3.1 can't detect this at all.
return
fi
# In more recent versions of bash, this could be set via the "BASH_COMMAND"
# variable, but using history here is better in some ways: for example, "ps
# auxf | less" will show up with both sides of the pipe if we use history,
# but only as "ps auxf" if not.
local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`;
# If none of the previous checks have earlied out of this function, then
# the command is in fact interactive and we should invoke the user's
# preexec hook with the running command as an argument.
preexec "$this_command"
}
function preexec_set_exit () {
__preexec_exit_status=$?
}
# Execute this to set up preexec and precmd execution.
function preexec_install () {
# *BOTH* of these options need to be set for the DEBUG trap to be invoked
# in ( ) subshells. This smells like a bug in bash to me. The null stderr
# redirections are to quiet errors on bash2.05 (i.e. OSX's default shell)
# where the options can't be set, and it's impossible to inherit the trap
# into subshells.
set -o functrace > /dev/null 2>&1
shopt -s extdebug > /dev/null 2>&1
# Finally, install the actual traps.
if [ -n "$PROMPT_COMMAND" ]; then
PROMPT_COMMAND="preexec_set_exit;${PROMPT_COMMAND};preexec_invoke_cmd";
else
PROMPT_COMMAND="preexec_set_exit;preexec_invoke_cmd";
fi
}
# Since this is the reason that 99% of everybody is going to bother with a
# pre-exec hook anyway, we'll include it in this module.
# Change the title of the xterm.
function preexec_xterm_title () {
local title="$1"
echo -ne "\033]0;$title\007" > /dev/stderr
}
function preexec_screen_title () {
local title="$1"
echo -ne "\033k$1\033\\" > /dev/stderr
}
# Abbreviate the "user@host" string as much as possible to preserve space in
# screen titles. Elide the host if the host is the same, elide the user if the
# user is the same.
function preexec_screen_user_at_host () {
local RESULT=""
if [[ "$SCREEN_RUN_HOST" == "$SCREEN_HOST" ]]
then
return
else
if [[ "$SCREEN_RUN_USER" == "$USER" ]]
then
echo -n "@${SCREEN_HOST}"
else
echo -n "${USER}@${SCREEN_HOST}"
fi
fi
}
function preexec_xterm_title_install () {
# These functions are defined here because they only make sense with the
# preexec_install below.
function precmd () {
preexec_xterm_title "${TERM} - ${USER}@${SCREEN_HOST} `dirs -0` $PROMPTCHAR"
if [[ "${TERM}" == screen ]]
then
preexec_screen_title "`preexec_screen_user_at_host`${PROMPTCHAR}"
fi
}
function preexec () {
preexec_xterm_title "${TERM} - $1 {`dirs -0`} (${USER}@${SCREEN_HOST})"
if [[ "${TERM}" == screen ]]
then
local cutit="$1"
local cmdtitle=`echo "$cutit" | cut -d " " -f 1`
if [[ "$cmdtitle" == "exec" ]]
then
local cmdtitle=`echo "$cutit" | cut -d " " -f 2`
fi
if [[ "$cmdtitle" == "screen" ]]
then
# Since stacked screens are quite common, it would be nice to
# just display them as '$$'.
local cmdtitle="${PROMPTCHAR}"
else
local cmdtitle=":$cmdtitle"
fi
preexec_screen_title "`preexec_screen_user_at_host`${PROMPTCHAR}$cmdtitle"
fi
}
preexec_install
}

4
bin/tmux-pwn Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
tmux list-clients | sed "s|^\(/dev/ttys[0-9]\+\).*\[\([0-9]\+x[0-9]\+\).*$|\2 \1|" | sort -r -n | tail -n +2 | cut -d " " -f 2 | xargs -n 1 tmux detach-client -t

7
bin/undistract-me.sh Executable file
View file

@ -0,0 +1,7 @@
# Copyright (c) 2008-2012 undistract-me developers. See LICENSE for details.
#
# Check for interactive bash and that we haven't already been sourced.
[ -z "$BASH_VERSION" -o -z "$PS1" -o -n "$last_command_started_cache" ] && return
. $HOME/bin/long-running.bash
notify_when_long_running_commands_finish_install