Dotfiles, utilities, and other apparatus.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

111 lines
3.1 KiB

# Path stuff. This accounts for, at least:
#
# - a custom Firefox install
# - some bin dirs in my homedir
# - golang
#
# Beware that other modifications to path might be made in .zshrc or .bashrc
# - and that _probably_ this should live somewhere that sets the environment for
# the entire X session. It's a tangled mess which certainly warrants a TODO.
export GOPATH=~/code/go
export PATH=~/firefox:~/bin:~/notes/bin:~/.xmonad:/usr/local/bin:~/.local/bin/:$PATH:/usr/local/go/bin:$GOPATH/bin
# Needed for ansible - wouldn't surprise me if this interfered with other
# things:
export PYTHONPATH=~/code/ansible/lib
# Debian stuff:
export DEBEMAIL="bbearnes@gmail.com"
export DEBFULLNAME="Brennen Bearnes"
# Explicitly set default editor:
export EDITOR=`which vim`
# Configure less(1):
export LESS='-FiRSX'
# Configure fzf fuzzyfinder:
export FZF_CTRL_R_OPTS='-e' # exact match by default - see fzf(1)
# Aliases, various and sundry: {{{
alias ac='apt-cache'
alias agu='sudo apt-get update && sudo apt-get upgrade'
alias c="commandlog"
alias g='git'
alias gitsu='git submodule sync && git submodule update'
alias l='ls -CF'
alias la='ls -A'
alias lal='ls -Al'
alias lah='ls -Alh'
alias ll='ls -l'
alias ls='ls --color'
alias m='make'
alias mk='mark'
alias mka='mark add'
alias s='sudo'
alias v='vim'
alias vt='vim `todaydir`'
# How big is the terminal?
alias dim='echo $(tput cols)x$(tput lines)'
# vi life:
alias :e='vim'
alias :q='exit'
alias :wq='exit'
alias :r='cat'
# Navigation:
alias p='cd ~/p1k3'
alias ct='cd `todaydir`'
# Get a persistent directory history menu in fzf - originally written for dmenu
# and inspired by jholland at:
# http://hints.macworld.com/article.php?story=20050806202859392
# I get the feeling that there's probably a more idiomatic way to do what
# I want here, but for the moment it's nice. See: https://p1k3.com/2016/5/17/
alias h='cd $(tail -3000 ~/.directory_history | sed "s/^:[^;]*;//" | tac | unsorted-unique | fzf --height=50%); rash search --cwd .'
# Get a menu of command history for the current directory; execute the selected one.
alias hm='eval $(rash search --cwd . --sort-by time --limit 0 | grep -vE "^(ls|ll|l|cd|p|fg|hm|st)$" | fzf --height=50%)'
# }}}
# Functions: {{{
# Create a directory (if it doesn't exist) and cd to it:
function mcd {
mkdir -p $1 && cd $1
}
function parse_git_branch {
# Formerly:
# ref=$(git symbolic-ref HEAD 2> /dev/null) || return
# echo "("${ref#refs/heads/}") "
# Largely borrowed from:
# https://github.com/robacarp/config_files/commit/5d983240d509bf4f7815ed822c0e868ccce08a79
git_status=$(git status --porcelain -b 2> /dev/null) || return
echo $git_status | awk '
BEGIN {
status["untracked"] = 0
status["modifications"] = 0
status["unmerged"] = 0
}
$1 ~ /##/ {
gsub(/\.\.\..*/, "")
branch_name=$2
}
$1 ~ /\?\?/ { status["untracked"] ++ }
$1 ~ /M/ { status["modifications"] ++ }
$1 ~ /[DAU][DAU]/ { status["unmerged"] ++ }
END {
printf "(%s %i/%i) ", branch_name, status["modifications"], status["untracked"]
}
'
}
# }}}