Last active
May 3, 2016 21:01
-
-
Save evanfoster/7396de13b0979e6f2f32c6cd9e1dca6c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############ | |
# Completion | |
############ | |
autoload -U compinit promptinit | |
compinit | |
promptinit | |
############ | |
# Shell opts | |
############ | |
# Autocomplete aliases. | |
setopt completealiases | |
# Ignore history duplicates. | |
setopt HIST_IGNORE_DUPS | |
# Hash automatically so that executables are found on install. | |
setopt nohashdirs | |
############ | |
# Keybindings | |
############ | |
# Use emacs mode. | |
bindkey -e | |
# Forward and back words with control. | |
bindkey "^[Od" backward-word | |
bindkey "^[Oc" forward-word | |
############ | |
# Variables | |
############ | |
export PATH=/home/$USER/go/bin:$PATH | |
export GOPATH=/home/$USER/go | |
export EDITOR=nvim | |
export FZF_DEFAULT_COMMAND='find .' | |
export PYTHONSTARTUP=/home/$USER/.pystart | |
export LESS='-R' | |
export LESSOPEN='|~/.lessfilter %s' | |
# Set term so prompt works | |
#export TERM="xterm-256color" | |
############ | |
# Aliases | |
############ | |
# Make ls colorful. | |
alias ls='ls --color=auto' | |
# Make an alias for ll because permissions and stuff. | |
alias ll='ls -l' | |
# Alias ssh to use TERM=xterm for compatibility reasons. | |
alias ssh='TERM=xterm ssh' | |
# Make this more work appropriate. | |
alias gosh='fuck' | |
# Yay Neovim! | |
alias vim='nvim' | |
alias picospeaker="picospeaker -l 'en-US'" | |
alias drop_the_beat="espeak -s 80 -v english-us -p 0 'boom ebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr' &> /dev/null" | |
alias sardonic_laugh="espeak -a 200 -p 0 -s 80 'ha ha ha' &> /dev/null" | |
alias devdocs="google-chrome-beta http://localhost:9292" | |
alias tcp_ports="ss -ntlp | column -t" | |
##### | |
# Super fun auto stuff!~ | |
##### | |
alias -s cap=wireshark | |
alias -s zip="unzip -l" | |
alias -s rar="unrar l" | |
alias -s tar="tar tf" | |
alias -s tar.gz="echo " | |
############ | |
# Sourcing | |
############ | |
# Antigen is cool | |
source /home/$USER/.zsh/antigen/antigen.zsh | |
# zsh sexy sexy syntax highlighting | |
source /home/$USER/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh | |
############ | |
# Antigen | |
############ | |
eval $(thefuck --alias) | |
# Gotta do this to make the prompt work | |
antigen use oh-my-zsh | |
# Cool powerline prompt | |
antigen theme https://github.com/caiogondim/bullet-train-oh-my-zsh-theme bullet-train | |
# THIS LINE LAST. Apply antigen stuff. | |
antigen apply | |
############ | |
# Functions | |
############ | |
google_speak () { | |
local file speech_string | |
if [[ ! -d ~/.cache/google_speak ]]; then | |
mkdir -p ~/.cache/google_speak | |
fi | |
speech_string="$*" | |
file="$HOME/.cache/google_speak/$speech_string.mp3" | |
if [[ ! -e $file ]]; then | |
gtts-cli -o "$file" -l 'en' "$speech_string" | |
fi | |
play "$file" | |
} | |
# ssh_retry function. It will check to see if port 22 is open on a loop, and once it is, it will ssh and notify the user with visual and audio cues. | |
ssh_retry () { | |
local userToSSHAs serverToSSH splitUp stringToSpeak | |
if [[ $1 =~ @ ]]; then | |
splitUp=($(tr '@' '\n' <<<"$1")) | |
userToSSHAs=${splitUp[1]} | |
serverToSSH=${splitUp[2]} | |
else | |
userToSSHAs="$1"; shift | |
serverToSSH="$1" | |
fi | |
if [[ -z "$userToSSHAs" || -z "$serverToSSH" ]]; then | |
echo "Missing argument! Syntax is \"ssh_retry [user] [IP address/hostname]\"" | |
return 1 | |
fi | |
stringToSpeak="Connected to $serverToSSH" | |
while true; do | |
nc -z "$serverToSSH" 22 | |
if nc -z "$serverToSSH" 22; then | |
# Say stuff. I like voice_cstr_us_awb_arctic_multisyn for the voice, he's a pleasing Scottish man. | |
#(festival --tts <<<"$stringToSpeak" &> /dev/null &) | |
#(picospeaker -r 40 "$stringToSpeak" &> /dev/null &) | |
(google_speak "$stringToSpeak" &> /dev/null &) | |
figlet -t -W "Connected to $serverToSSH as $userToSSHAs" | |
ssh "$userToSSHAs"@"$serverToSSH" | |
break | |
else | |
echo "SSH port not yet open. Retrying." | |
sleep 1 | |
fi | |
done | |
} | |
subl_find () { | |
local searchResults | |
searchResults="$(fzf)" && subl3 "$searchResults" | |
} | |
vimfind () { | |
local searchResults | |
searchResults="$(fzf)" && nvim "$searchResults" | |
} | |
catfind () { | |
local searchResults | |
searchResults="$(fzf)" && cat "$searchResults" | |
} | |
cdfind () { | |
local searchResults | |
searchResults="$(fzf)" && cd "$searchResults" | |
} | |
cf () { | |
local searchResults command | |
command="$*" | |
searchResults="$(fzf)" && eval "$command $searchResults" | |
} | |
exp() { curl -Gs "https://www.mankier.com/api/explain/?cols=$(tput cols)" --data-urlencode "q=$*"; } | |
subl3 () { | |
if test -t 0; then | |
# Stdin is a terminal. | |
# Open sublime normally. | |
/usr/bin/subl3 "$@" | |
else | |
# Stdin is not a terminal, it must be a pipe. | |
# Pipe stdin to a temporary file, and open it in sublime. | |
FILENAME=$(mktemp) | |
cat >"$FILENAME" && /usr/bin/subl3 "$FILENAME" "$@" | |
fi | |
} | |
grab_macs () { | |
if [[ -z "$1" ]]; then | |
echo "Please provide user@server" | |
return 1 | |
fi | |
ssh "$1" <<-'HEREDOC' | |
ip a | grep -oE 'link/ether [0-9a-g:]+' | sed 's:link/ether ::g' | uniq | sed 's/://g' | awk '{print toupper($0)}' | |
HEREDOC | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment