Completely reset dotfiles (#2)

This commit is contained in:
Andrew Tomaka 2021-12-21 13:19:10 -05:00 committed by GitHub
parent 4abd1a6ffc
commit bf26003ab3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 305 additions and 1101 deletions

5
.gitignore vendored
View file

@ -1,2 +1,5 @@
*.swp
alacritty/.config/alacritty/alacritty.yml
atomaka/.config/atomaka/color.yml
zsh/.config/zsh/.zcompdump

View file

@ -1,25 +1,24 @@
STOWED = bin git ruby tmux vim zsh alacritty atomaka
STOWED = alacritty bin git ruby tmux vim zsh
all: install
install: vim-setup initialize-colors
install:
stow $(STOWED)
uninstall:
stow -D $(STOWED)
alacritty:
curl -fLo /tmp/alacritty.info https://raw.githubusercontent.com/alacritty/alacritty/master/extra/alacritty.info
sudo tic -xe alacritty,alacritty-direct /tmp/alacritty.info
toggle-color-bin
vim-setup:
mkdir -p $$HOME/.vim/undo
if test ! -f ~/.vim/autoload/plug.vim ; then \
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ; \
fi
javascript: nodenv-base nodenv-build
initialize-colors:
cat alacritty/.config/alacritty/alacritty-base.yml alacritty/.config/alacritty/themes/dark.yml > alacritty/.config/alacritty/alacritty.yml
cp atomaka/.config/atomaka/color.sample.yml atomaka/.config/atomaka/color.yml
linux:
sudo apt-get install direnv fzf silversearcher-ag stow tmux vim zsh
rbenv: rbenv-base rbenv-build
ruby: rbenv-base rbenv-build
vim:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
rbenv-base:
if test ! -d ~/.rbenv ; then \
@ -31,17 +30,12 @@ rbenv-build:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build ; \
fi
update: update-repo
nodenv-base:
if test ! -d ~/.nodenv ; then \
git clone https://github.com/nodenv/nodenv.git ~/.nodenv ; \
fi
update-repo:
git pull --rebase
clean:
rm -f $$HOME/bin/,
bash remove-symlinks
mac:
sudo mv /etc/{zprofile,zprofile.old}
infocmp -x tmux-256color > ~/tmux-256color.src
sed -i "" -e "s/pairs#0x10000/pairs#0x1000/" ~/tmux-256color.src
/usr/bin/tic -x ~/tmux-256color.src
nodenv-build:
if test ! -d ~/.nodenv ; then \
git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build ; \
fi

View file

@ -1,25 +0,0 @@
# dotfiles
## Dependencies
* [stow](https://www.gnu.org/software/stow/)
* [tmux](https://github.com/tmux/tmux)
* [zsh](https://github.com/zsh-users/zsh)
* [neovim](https://github.com/neovim/neovim)
* [fzf](https://github.com/junegunn/fzf)
* [ag](https://github.com/ggreer/the_silver_searcher)
## Setup
* Install dependencies
* Clone this repository
* Run `make`
* Uses GNU stow to generate symlinks
* Config files must already exist
* Install vim plugins
```
nvim
,pi
```

View file

@ -1,7 +1,3 @@
background_opacity: 0.9
key_bindings:
- { key: Return, mods: Command, action: ToggleFullscreen }
font:
size: 14
env:
TERM: xterm-256color

View file

@ -1,28 +1,28 @@
# Colors (One Dark)
# Colors (Ayu Mirage)
colors:
# Default colors
primary:
background: '0x1e2127'
foreground: '0xabb2bf'
background: '#202734'
foreground: '#CBCCC6'
# Normal colors
normal:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xabb2bf'
black: '#191E2A'
red: '#FF3333'
green: '#BAE67E'
yellow: '#FFA759'
blue: '#73D0FF'
magenta: '#FFD580'
cyan: '#95E6CB'
white: '#C7C7C7'
# Bright colors
bright:
black: '0x5c6370'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xffffff'
black: '#686868'
red: '#F27983'
green: '#A6CC70'
yellow: '#FFCC66'
blue: '#5CCFE6'
magenta: '#FFEE99'
cyan: '#95E6CB'
white: '#FFFFFF'

View file

@ -1,24 +1,27 @@
# ayu-light
colors:
primary:
background: '0xf8f8f8'
foreground: '0x2a2b33'
background: '0xfafafa'
foreground: '0x5b6672'
# Normal colors
normal:
black: '0x000000'
red: '0xde3d35'
green: '0x3e953a'
yellow: '0xd2b67b'
blue: '0x2f5af3'
magenta: '0xa00095'
cyan: '0x3e953a'
white: '0xbbbbbb'
black: '0x000000' #0
red: '0xf2590b' #1
green: '0x76cc00' #2
yellow: '0xf29717' #3
blue: '0x41a5d9' #4
magenta: '0x9965cc' #5
cyan: '0x4dbf98' #6
white: '0xc7c7c7' #7
# Bright colors
bright:
black: '0x000000'
red: '0xde3d35'
green: '0x3e953a'
yellow: '0xd2b67b'
blue: '0x2f5af3'
magenta: '0xa00095'
cyan: '0x3e953a'
white: '0xffffff'
black: '0x676767'
red: '0xd6646a' #9
green: '0xa3d900' #10
yellow: '0xe7c446' #11
blue: '0x6871ff' #12
magenta: '0xa37acc' #13
cyan: '0x56d9ad' #14
white: '0xfeffff' #15

View file

@ -1,28 +0,0 @@
# Colors (Solarized Dark)
colors:
# Default colors
primary:
background: '0x002b36'
foreground: '0x839496'
# Normal colors
normal:
black: '0x073642'
red: '0xdc322f'
green: '0x859900'
yellow: '0xb58900'
blue: '0x268bd2'
magenta: '0xd33682'
cyan: '0x2aa198'
white: '0xeee8d5'
# Bright colors
bright:
black: '0x002b36'
red: '0xcb4b16'
green: '0x586e75'
yellow: '0x657b83'
blue: '0x839496'
magenta: '0x6c71c4'
cyan: '0x93a1a1'
white: '0xfdf6e3'

View file

@ -1,28 +0,0 @@
# Colors (Solarized Light)
colors:
# Default colors
primary:
background: '0xfdf6e3'
foreground: '0x586e75'
# Normal colors
normal:
black: '0x073642'
red: '0xdc322f'
green: '0x859900'
yellow: '0xb58900'
blue: '0x268bd2'
magenta: '0xd33682'
cyan: '0x2aa198'
white: '0xeee8d5'
# Bright colors
bright:
black: '0x002b36'
red: '0xcb4b16'
green: '0x586e75'
yellow: '0x657b83'
blue: '0x839496'
magenta: '0x6c71c4'
cyan: '0x93a1a1'
white: '0xfdf6e3'

View file

@ -1 +0,0 @@
dark

View file

@ -1,25 +0,0 @@
#!/bin/bash
function find-local-bin {
local readonly prefix=$1; shift
local bin_dir="$prefix-bin"
local found_bin_dir=""
current_dir=$(pwd)
found_bin_dir=$current_dir/$bin_dir
while [ ! -d $found_bin_dir ]; do
if [[ $current_dir == $HOME ]]; then
found_bin_dir=$HOME/bin
break
fi
current_dir=$(realpath "$current_dir/..")
found_bin_dir=$current_dir/$bin_dir
done
echo $found_bin_dir
}
dir=$(find-local-bin aet)
exec $dir/$@

View file

@ -1,99 +0,0 @@
#!/bin/bash
#
# This file echoes a bunch of 24-bit color codes
# to the terminal to demonstrate its functionality.
# The foreground escape sequence is ^[38;2;<r>;<g>;<b>m
# The background escape sequence is ^[48;2;<r>;<g>;<b>m
# <r> <g> <b> range from 0 to 255 inclusive.
# The escape sequence ^[0m returns output to default
setBackgroundColor()
{
echo -en "\x1b[48;2;$1;$2;$3""m"
}
resetOutput()
{
echo -en "\x1b[0m\n"
}
# Gives a color $1/255 % along HSV
# Who knows what happens when $1 is outside 0-255
# Echoes "$red $green $blue" where
# $red $green and $blue are integers
# ranging between 0 and 255 inclusive
rainbowColor()
{
let h=$1/43
let f=$1-43*$h
let t=$f*255/43
let q=255-t
if [ $h -eq 0 ]
then
echo "255 $t 0"
elif [ $h -eq 1 ]
then
echo "$q 255 0"
elif [ $h -eq 2 ]
then
echo "0 255 $t"
elif [ $h -eq 3 ]
then
echo "0 $q 255"
elif [ $h -eq 4 ]
then
echo "$t 0 255"
elif [ $h -eq 5 ]
then
echo "255 0 $q"
else
# execution should never reach here
echo "0 0 0"
fi
}
for i in `seq 0 127`; do
setBackgroundColor $i 0 0
echo -en " "
done
resetOutput
for i in `seq 255 128`; do
setBackgroundColor $i 0 0
echo -en " "
done
resetOutput
for i in `seq 0 127`; do
setBackgroundColor 0 $i 0
echo -n " "
done
resetOutput
for i in `seq 255 128`; do
setBackgroundColor 0 $i 0
echo -n " "
done
resetOutput
for i in `seq 0 127`; do
setBackgroundColor 0 0 $i
echo -n " "
done
resetOutput
for i in `seq 255 128`; do
setBackgroundColor 0 0 $i
echo -n " "
done
resetOutput
for i in `seq 0 127`; do
setBackgroundColor `rainbowColor $i`
echo -n " "
done
resetOutput
for i in `seq 255 128`; do
setBackgroundColor `rainbowColor $i`
echo -n " "
done
resetOutput

View file

@ -1,3 +0,0 @@
for branch in $(git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$'); do
git branch --track "${branch##*/}" "$branch"
done

View file

@ -1,6 +1,10 @@
#!/bin/bash
color_file=$HOME/.config/atomaka/color.yml
if ! test -f $color_file; then
mkdir -p $HOME/.config/atomaka
echo light > $color_file
fi
old_color=$(cat $color_file)
if [[ $old_color == "dark" ]]; then
@ -16,7 +20,3 @@ echo $alacritty_header > $alacritty/alacritty.yml
cat $alacritty/alacritty-base.yml $alacritty/themes/$new_color.yml >> $alacritty/alacritty.yml
echo $new_color > $color_file
if [[ $TMUX ]]; then
tmux source-file $HOME/.tmux/${new_color}.conf
fi

View file

@ -1,8 +1,5 @@
*.sw?
*.o
*.exe
*.stackdump
*.out
*.DS_Store
.envrc

View file

@ -1 +0,0 @@
*.yml.enc diff=enc

View file

@ -1,60 +1,33 @@
[user]
email = atomaka@gmail.com
name = Andrew Tomaka
signingkey = 61209BF70A5B18BE
[github]
user = atomaka
[includeIf "gitdir:~/Source/benefitbay/"]
path = ~/.gitconfig_work
[apply]
whitespace = fix
[alias]
fancy-graph = log --graph --decorate --pretty=oneline --abbrev-commit
hist = log --graph --pretty=format:'%Cred%h%Creset - %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
hist-details = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
hist-tags = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
most-recent-by-branch = for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'
undo = reset --soft HEAD^
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
frag = magenta
new = green
old = red
meta = yellow bold
[color "status"]
added = yellow
changed = green
untracked = cyan
[commit]
gpgsign = true
[core]
autocrlf = input
excludesfile = ~/.gitignore_global
attributesfile = ~/.gitattributes_global
filemode = false
excludesfile = ~/.config/git/gitignore_global
[github]
username = atomaka
[gpg]
program = gpg
[merge]
tool = vimdiff
[push]
default = upstream
[status]
showUntrackedFiles = all
# show all files instead of just directories
[transfer]
fsckobjects = false
# https://groups.google.com/forum/#!topic/binary-transparency/f-BI4o8HZW0
[diff "enc"]
textconv = bundle exec rails encrypted:show
cachetextconv = false
[pull]
rebase = false
[init]
defaultBranch = master
[status]
showUntrackedFiles = all
[user]
email = atomaka@gmail.com
name = Andrew Tomaka
signingkey = 61209BF70A5B18BE

View file

@ -1,2 +0,0 @@
[user]
email = andrew.tomaka@benefitbay.com

View file

@ -1,8 +0,0 @@
#!/bin/bash
find $HOME -maxdepth 1 -type l | while IFS= read -r symlink; do
if readlink "$symlink" | grep -q 'dotfiles'; then
echo "removing $symlink"
rm "$symlink"
fi
done

View file

@ -1,67 +0,0 @@
# Reconstructed via infocmp from file: /Users/atomaka/.terminfo/74/tmux-256color
tmux-256color|tmux with 256 colors,
OTbs, OTpt, am, hs, km, mir, msgr, xenl, AX, G0,
colors#256, cols#80, it#8, lines#24, pairs#4096, U8#1,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ed=\E[J, el=\E[K,
el1=\E[1K, enacs=\E(B\E)0, flash=\Eg, fsl=^G, home=\E[H,
hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
invis=\E[8m, is2=\E)0, kDC=\E[3;2~, kEND=\E[1;2F,
kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~,
kPRV=\E[5;2~, kRIT=\E[1;2C, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R,
kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
kri=\E[1;2A, nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m,
ri=\EM, ritm=\E[23m, rmacs=^O, rmcup=\E[?1049l, rmir=\E[4l,
rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, sitm=\E[3m, smacs=^N, smcup=\E[?1049h,
smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, Cr=\E]112\007,
Cs=\E]12;%p1%s\007, E0=\E(B, E3=\E[3J,
Ms=\E]52;%p1%s;%p2%s\007, S0=\E(%p1%c, Se=\E[2 q,
Smulx=\E[4\:%p1%dm, Ss=\E[%p1%d q, TS=\E]0;,
kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~,
kDC7=\E[3;7~, kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B,
kDN5=\E[1;5B, kDN6=\E[1;6B, kDN7=\E[1;7B, kEND3=\E[1;3F,
kEND4=\E[1;4F, kEND5=\E[1;5F, kEND6=\E[1;6F,
kEND7=\E[1;7F, kHOM3=\E[1;3H, kHOM4=\E[1;4H,
kHOM5=\E[1;5H, kHOM6=\E[1;6H, kHOM7=\E[1;7H,
kIC3=\E[2;3~, kIC4=\E[2;4~, kIC5=\E[2;5~, kIC6=\E[2;6~,
kIC7=\E[2;7~, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
kNXT3=\E[6;3~, kNXT4=\E[6;4~, kNXT5=\E[6;5~,
kNXT6=\E[6;6~, kNXT7=\E[6;7~, kPRV3=\E[5;3~,
kPRV4=\E[5;4~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
kPRV7=\E[5;7~, kRIT3=\E[1;3C, kRIT4=\E[1;4C,
kRIT5=\E[1;5C, kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A,
kUP3=\E[1;3A, kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A,
kUP7=\E[1;7A, rmxx=\E[29m, smxx=\E[9m,

View file

@ -0,0 +1,35 @@
bind-key r source-file ~/.config/tmux/tmux.conf \; display-message " ✱ tmux.conf is reloaded"
# for muxception
bind-key b send-prefix
set -g automatic-rename off
set -g renumber-windows on
set-option -sg escape-time 10
set-option -g base-index 1
set-window-option -g monitor-activity off
set-window-option -g pane-base-index 1
bind-key C-b last-window
bind < resize-pane -L 10
bind > resize-pane -R 10
bind - resize-pane -D 10
bind + resize-pane -U 10
# status bar stuff
set -g status on
set -g status-left '#H '
set-option -g status-right '%Y-%m-%d @ %k:%M'
# be more like vim
set-window-option -g mode-keys vi
unbind c; bind c new-window -c "#{pane_current_path}"
bind s split-window -v -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
bind h select-pane -L # left pane
bind j select-pane -D # bottom pane
bind k select-pane -U # top pane
bind l select-pane -R # right pane

View file

@ -1,70 +0,0 @@
# for setting up
bind-key r source-file ~/.tmux.conf \; display-message " ✱ ~/.tmux.conf is reloaded"
# fixup some colors
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
set-option -g default-shell /opt/homebrew/bin/zsh
# faster escaping? From neovim CheckHealth
set-option -sg escape-time 10
# double tap for back and forth
bind-key C-b last-window
# for muxception
bind-key b send-prefix
# close window
bind q confirm kill-window
# clear history
bind -n C-g clear-history
# 0 is way over there
set-option -g base-index 1
setw -g pane-base-index 1
# history should be longer
set -g history-limit 100000
# no autorename
set -g automatic-rename off
# renumber windows
set -g renumber-windows on
# move windows around
bind H swap-window -t -1
bind L swap-window -t +1
# activity stuff
set-window-option -g monitor-activity off
# copy mode stuff
set-window-option -g mode-keys vi # emulate vim movement in copy mode
# be more like vim
bind h select-pane -L # left pane
bind j select-pane -D # bottom pane
bind k select-pane -U # top pane
bind l select-pane -R # right pane
bind < resize-pane -L 10
bind > resize-pane -R 10
bind - resize-pane -D 10
bind + resize-pane -U 10
# status bar stuff
set -g status on
set -g status-left '#[fg=green]#H'
set-option -g status-right '%Y-%m-%d @ %k:%M'
# 1.9 stuff moved in here
unbind c; bind c new-window -c "#{pane_current_path}"
bind s split-window -v -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
# load current scheme
run-shell "bash ~/.tmux/startup"

View file

@ -1,29 +0,0 @@
#### COLOUR (Solarized dark)
# default statusbar colors
set-option -g status-style fg=yellow,bg=black #yellow and base02
# default window title colors
set-window-option -g window-status-style fg=brightblue,bg=default #base0 and default
#set-window-option -g window-status-style dim
# active window title colors
set-window-option -g window-status-current-style fg=brightred,bg=default #orange and default
#set-window-option -g window-status-current-style bright
# pane border
set-option -g pane-border-style fg=black #base02
set-option -g pane-active-border-style fg=brightgreen #base01
# message text
set-option -g message-style fg=brightred,bg=black #orange and base01
# pane number display
set-option -g display-panes-active-colour blue #blue
set-option -g display-panes-colour brightred #orange
# clock
set-window-option -g clock-mode-colour green #green
# bell
set-window-option -g window-status-bell-style fg=black,bg=red #base02, red

View file

@ -1,29 +0,0 @@
#### COLOUR (Solarized light)
# default statusbar colors
set-option -g status-style fg=yellow,bg=white #yellow and base2
# default window title colors
set-window-option -g window-status-style fg=brightyellow,bg=default #base0 and default
#set-window-option -g window-status-style dim
# active window title colors
set-window-option -g window-status-current-style fg=brightred,bg=default #orange and default
#set-window-option -g window-status-current-style bright
# pane border
set-option -g pane-border-style fg=white #base2
set-option -g pane-active-border-style fg=brightcyan #base1
# message text
set-option -g message-style fg=brightred,bg=white #orange and base2
# pane number display
set-option -g display-panes-active-colour blue #blue
set-option -g display-panes-colour brightred #orange
# clock
set-window-option -g clock-mode-colour green #green
# bell
set-window-option -g window-status-bell-style fg=white,bg=red #base2, red

View file

@ -1,29 +0,0 @@
#### COLOUR (Solarized dark)
# default statusbar colors
set-option -g status-style fg=yellow,bg=black #yellow and base02
# default window title colors
set-window-option -g window-status-style fg=brightblue,bg=default #base0 and default
#set-window-option -g window-status-style dim
# active window title colors
set-window-option -g window-status-current-style fg=brightred,bg=default #orange and default
#set-window-option -g window-status-current-style bright
# pane border
set-option -g pane-border-style fg=black #base02
set-option -g pane-active-border-style fg=brightgreen #base01
# message text
set-option -g message-style fg=brightred,bg=black #orange and base01
# pane number display
set-option -g display-panes-active-colour blue #blue
set-option -g display-panes-colour brightred #orange
# clock
set-window-option -g clock-mode-colour green #green
# bell
set-window-option -g window-status-bell-style fg=black,bg=red #base02, red

View file

@ -1,29 +0,0 @@
#### COLOUR (Solarized light)
# default statusbar colors
set-option -g status-style fg=yellow,bg=white #yellow and base2
# default window title colors
set-window-option -g window-status-style fg=brightyellow,bg=default #base0 and default
#set-window-option -g window-status-style dim
# active window title colors
set-window-option -g window-status-current-style fg=brightred,bg=default #orange and default
#set-window-option -g window-status-current-style bright
# pane border
set-option -g pane-border-style fg=white #base2
set-option -g pane-active-border-style fg=brightcyan #base1
# message text
set-option -g message-style fg=brightred,bg=white #orange and base2
# pane number display
set-option -g display-panes-active-colour blue #blue
set-option -g display-panes-colour brightred #orange
# clock
set-window-option -g clock-mode-colour green #green
# bell
set-window-option -g window-status-bell-style fg=white,bg=red #base2, red

View file

@ -1,5 +0,0 @@
#!/bin/bash
startup_color=$(cat $HOME/.config/atomaka/color.yml)
tmux source-file $HOME/.tmux/$startup_color.conf

View file

View file

@ -1,112 +1,51 @@
" PLUGINS
call plug#begin('~/.vim/plugged')
" colors
Plug 'altercation/vim-colors-solarized'
Plug 'rakr/vim-one'
" keepers
Plug 'airblade/vim-gitgutter'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'ntpeters/vim-better-whitespace'
Plug 'chrisbra/matchit'
Plug 'junegunn/fzf'
Plug 'moll/vim-bbye'
Plug 'tpope/vim-eunuch' " move files
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-fugitive'
Plug 'ntpeters/vim-better-whitespace'
Plug 'tpope/vim-eunuch'
Plug 'tpope/vim-surround'
Plug 'troydm/zoomwintab.vim'
Plug 'chrisbra/matchit'
" languages
Plug 'leafgarland/typescript-vim'
Plug 'tpope/vim-markdown'
Plug 'tpope/vim-rails'
Plug 'vim-ruby/vim-ruby'
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'hashivim/vim-terraform'
" Testing
call plug#end()
" SETTINGS
filetype plugin indent on
" STATUS LINE
set statusline=
set statusline+=%<\ %f%{ZoomState()}
set statusline+=\ %m%r%y%w%= " what am i doing here
set statusline+=\ Line:\ %l\/%L\ [%p%%]
set statusline+=\ Col:\ %v
set statusline+=\ Buf:\ #%n
set statusline+=\ " trailing space is with purpose
" OPTIONS
set fileformats=unix,mac,dos " File format prefer unix endings
set endofline " Add newline at end of file
set shellslash " Forward slashes
set nobackup " No backup files
set noswapfile " Hope for the best
set formatoptions=crq
set textwidth=80
set cpoptions+=$ " delimit end of change text
set laststatus=2 " Always show status line
set showmode " Show current mode
set history=100 " History length
set nowrap " Disable wrapping by default
set backspace=2 " Backspace over indent, eol, start of insert
set hlsearch " Search highlights
set wrapscan " Wrapped search
set incsearch " Search as you type
set ignorecase " Ignore case with search
set smartcase " Search will not ignore uppercase
set showcmd " Show command as you type
set ruler " Show cursor position
set autoindent " autoindent AND be smart about it
set smartindent
set colorcolumn=80,120 " Ruler at line 80, 120
set nomodeline
set relativenumber " Relative line numbers
set number
set virtualedit=all " Cursor can go anywhere
set cpoptions+=$ " delimit end of change text
set endofline " Add newline to end of file
set nobackup
set noswapfile
set nowrap " Disable wrapping by default
set scrolloff=3 " Keep cursor from touching edges
set showmode " Show current mode
set timeoutlen=500 " Don't wait too long (ambiguous leaders)
set showmatch " Show matching brackets
set hidden " Allow unsaved buffers to be hidden
set wildcharm=<tab> " Allow use of tab in macros
set wildmenu " Command line completion
set wildmode=list:longest,full " Better file completion
set infercase " Adjust completions to match case
set wildignorecase " Ignore case on commandline
set autowrite " Save file when focus is lost
set updatetime=250 " Make gitgutter autoupdate
set virtualedit=all " Cursor can go anywhere
set hlsearch " Search highlights
set ignorecase " Ignore case with search
set incsearch " Search as you type
set smartcase " Search will not ignore uppercase
set wrapscan " Wrapped search
set number
set relativenumber " Relative line numbers
set textwidth=80
set colorcolumn=80,120 " Ruler at line 80, 120
" Tabs are 2 spaces
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
set shiftround " make >> go to next tab
" some performance stuff
set lazyredraw
set ttyfast
set synmaxcol=256
" Show whitespace markers before cursor in insert mode
set list listchars=tab:\ \ ,trail
" Ignore stuff
set wildignore+=*/\.git/*
" Java
" set wildignore+=*/build/*,*/grade/*,*\.class
" Frontend
set wildignore+=*/node_modules/*,*/bower_components/*,*/dist/*
" Persistent undo stuff
if has('persistent_undo')
set undolevels=5000
set undodir=$HOME/.vim/undo
set undofile
endif
" KEYBINDS
" quick replaceement
nmap S :%s//g<LEFT><LEFT>
" consistency is key - Y should act like C, D
map Y y$
@ -115,70 +54,51 @@ map Y y$
vnoremap > >gv
vnoremap < <gv
" Make fzf act like ctrlp
nnoremap <C-p> :Files<CR>
" typo-city
:command W w
:command Wq wq
" ZoomWin
nnoremap <C-w>z :ZoomWinTabToggle<CR>
nnoremap <C-w><C-z> :ZoomWinTabToggle<CR>
" Fugitive
autocmd FileType fugitiveblame nmap <buffer> q gq
command! Gblame :G blame
" quick replaceement
nmap S :%s//g<LEFT><LEFT>
" LEADERS
let mapleader = ","
" tab swaps
map <Leader>2 :set tabstop=2 softtabstop=2 shiftwidth=2 expandtab<cr>
map <Leader>4 :set tabstop=4 softtabstop=4 shiftwidth=4 expandtab<cr>
map <Leader>a :set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab<cr>
map <Leader>sz :so ~/.vimrc<cr>
" plugin
" copy/paste (system buffer)
map <Leader>cp "+y
map <Leader>pa "+p
" clear search
map <Leader>cs :let @/ = ""<cr>
" github
map <Leader>gg :exe "!hub gist create -o %:p"<cr><cr>
" PLUGIN CONFIGURATION
" fzf
let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""'
noremap <C-p> :FZF<CR>
" vim-bbye
nnoremap <silent> <Leader>bd :Bdelete<CR>
" vim-better-whitespace
highlight ExtraWhitespace ctermbg=red
map <Leader>fw :StripWhitespace<cr>
" vim-eunuch
map <Leader>sa :Move %<tab>
" vim-plug
map <Leader>pc :PlugClean<cr>
map <Leader>pi :PlugInstall<cr>
map <Leader>pu :PlugUpdate<cr>
" clear search
map <Leader>cs :let @/ = ""<cr>
" bclose
nnoremap <silent> <Leader>bd :Bdelete<CR>
" other
map <Leader>cp "+y
map <Leader>pa "+p
map <Leader>fj :%!python -m json.tool<cr>
map <Leader>fw :StripWhitespace<cr>
map <Leader>gg :exe "!hub gist create -o %:p"<cr><cr>
map <Leader>gi :GoImports<cr>
map <Leader>pm :set paste!<cr>
map <Leader>sa :Move %<tab>
map <Leader>sb :exe "!code --goto %:p:" . line(".")<cr><cr>
map <Leader>se :e ~/.vimrc<cr>
map <Leader>sc :pclose<cr>
map <Leader>sw :SudoWrite<cr>
map <Leader>sz :so ~/.vimrc<cr>
" PLUGIN CONFIGURATION
set cursorline " Highlight current line
set cursorcolumn " Highlight current column
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
set termguicolors
syntax enable
colorscheme one
highlight ExtraWhitespace ctermbg=196
" fzf
let $FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git -g ""'
let g:fzf_preview_window = []
" terraform
let g:terraform_align=1
" ZoomWin
" zoomwintab
nnoremap <C-w>z :ZoomWinTabToggle<CR>
nnoremap <C-w><C-z> :ZoomWinTabToggle<CR>
function! ZoomState()
if exists('t:zoomwintab')
return 'Z'

View file

@ -1,2 +0,0 @@
alias google-chrome="open -a Google\ Chrome"
alias fixbar="killall ControlStrip"

32
zsh/.config/zsh/.zshrc Normal file
View file

@ -0,0 +1,32 @@
typeset -U PATH
source $ZDOTDIR/aliases
source $ZDOTDIR/functions
source $ZDOTDIR/prompt
# Larger history
HISTSIZE=20000
HISTFILE=~/.zsh_history
SAVEHIST=20000
# be like vim
bindkey -v
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
setopt auto_cd
if which direnv > /dev/null; then
eval "$(direnv hook zsh)"
fi
if which rbenv > /dev/null; then
eval "$(rbenv init --no-rehash -)"
(rbenv rehash &) 2> /dev/null
fi
if which nodenv > /dev/null; then
eval "$(nodenv init --no-rehash -)"
(nodenv rehash &) 2> /dev/null
fi

View file

@ -1,9 +1,4 @@
alias zbm="/usr/bin/time zsh -i -c exit"
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias a="ls -l --human-readable --all --color=auto"
alias agc="ag-count"
alias agh="ag --hidden"
@ -14,21 +9,16 @@ alias be="bundle exec"
alias bea="bundle exec rails"
alias ber="bundle exec rake"
alias bet="test-rails"
alias betd="bundle exec rspec --format documentation"
alias c="clear"
alias dc="docker compose"
alias dft="docker run --rm --privileged alpine hwclock -s"
alias g="g" # overwrite g alias in git plugin so function will work
alias cs="toggle-color-mode"
alias dc="docker-compose-call"
alias g="g" # overwrite g alias
alias ga="git add"
alias gaa="git add --all"
alias gap="git add --patch"
alias gb="git branch"
alias gbc="git-branch-cleanup"
alias gbda="git branch | grep -v master | xargs git branch -D"
alias gbdm="git-branch-delete-merged"
alias gc="git commit"
alias gca="git commit --amend"
alias gcm="echo Do not specify message at command line. Use gc"
alias gcn="git commit --allow-empty --message 'noop'"
alias gco="git checkout"
alias gcp="git cherry-pick"
@ -37,11 +27,7 @@ alias gct="git commit -m '( ͡° ͜ʖ ͡°)'"
alias gd="git diff"
alias gdc="git diff --cached"
alias gds="git diff --stat"
alias gdss="git diff --shortstat"
alias gfa="git-date-added"
alias gfl="git log --patch"
alias gg="hub gist create --browse"
alias gi="gitignore-io"
alias gl="git fancy-graph"
alias ghi="git hist"
alias ghd="git hist-details"
@ -63,40 +49,19 @@ alias grbi="git rebase --interactive"
alias grc="git rm --cached"
alias grh="git reset --hard"
alias grm="git rm"
alias gs="git status"
alias gu="git undo"
alias gup="git-branch-delete-merged"
alias gw="git diff --check"
alias Grep='grep'
alias l="ls"
alias ll="ls -lv --human-readable --color=auto"
alias ls="ls --color=auto"
alias m="more"
alias md="cd ~/dotfiles > /dev/null 2>&1; make; cd -1 > /dev/null 2>&1"
alias mf="mkdir"
alias mw="tmux new-session -A -s work"
alias ne="npm-exec"
alias pf="port-forward"
alias mw="tmux attach || tmux -f $HOME/.config/tmux/tmux.conf"
alias pwdgen="password-generator"
alias r="ssh"
alias rd="popd"
alias s="cd ~/Source"
alias sci="ssh-copy-id -i .ssh/id_rsa.pub"
alias sd="pwd | pushd"
alias subl="code"
alias sw="stopwatch"
alias sz="source ~/.zshrc"
alias pf="port-forward"
alias t="tmux new-session -A -s"
alias sz="source $ZDOTDIR/.zshrc"
alias tf="terraform"
alias tls="tmux list-sessions"
alias ts="tmuxinator start"
alias v="$EDITOR"
alias w="ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'"
alias w="ruby -rwebrick -e'WEBrick::HTTPServer.new(Port: 8000, DocumentRoot: Dir.pwd).start'"
alias wo="curl 'http://wttr.in/48823'"
alias y="yarn"
alias ya="yarn add"
alias yad="yarn add --dev"
alias ye="yarn-exec"
alias yi="yarn-install-like-bundle"
alias x="exit"

78
zsh/.config/zsh/functions Normal file
View file

@ -0,0 +1,78 @@
function ag-count {
if [ $# -lt 1 ]; then
echo Usage: ag-count SEARCHTERM
else
searchterm=$1; shift
ag --stats $searchterm | tail -n5
fi
}
function aws-profile {
if [ $# -eq 0 ]; then
echo Current AWS Profile: $AWS_DEFAULT_PROFILE
else
export AWS_DEFAULT_PROFILE=$1
export AWS_PROFILE=$1
fi
}
function docker-compose-call {
if docker compose > /dev/null 2>&1; then
docker compose $@
else
docker-compose $@
fi
}
function g {
if [[ $# > 0 ]]; then
git $@
else
git status
fi
}
function git-date-added {
if [ $# -eq 0 ]; then
echo Usage: git-date-added FILENAME
else
git log --format=%aD $1 | tail -1
fi
}
function password-generator {
if [ -x "$(command -v openssl)" ]; then
password=$(
openssl rand -base64 32 \
| head -c 32
)
else
password=$(
date +%s \
| sha256sum \
| base64 \
| head -c 32
)
fi
echo $password
}
function test-rails {
if bundle exec rspec --help > /dev/null 2>&1; then
if [ -d spec ]; then
bundle exec rspec $@
else
ruby *_test.rb
fi
elif bundle exec rails version > /dev/null 2>&1; then
bundle exec rails test $@
else
if [[ $# > 0 ]]; then
ruby $@
else
ruby *_test.rb
fi
fi
}

4
zsh/.config/zsh/prompt Normal file
View file

@ -0,0 +1,4 @@
local current_dir='%~%f'
local result="%B%(?.%F{green}✓%b.%F{red}✗)%b%f"
PROMPT="${current_dir} ${result} "

View file

@ -1,169 +0,0 @@
function ag-count {
if [ $# -lt 1 ]; then
echo Usage: ag-count SEARCHTERM
else
searchterm=$1; shift
ag --stats $searchterm | tail -n5
fi
}
function aet-bin-exec {
local readonly script=$1; shift
./aet-bin/$script $@
}
function aws-profile {
if [ $# -eq 0 ]; then
echo Current AWS Profile: $AWS_DEFAULT_PROFILE
else
export AWS_DEFAULT_PROFILE=$1
export AWS_PROFILE=$1
fi
}
function fix-permissions {
find . -type d -print0 | xargs -0 chmod 0755
find . -type f -print0 | xargs -0 chmod 0644
}
function g {
if [[ $# > 0 ]]; then
git $@
else
git status
fi
}
function git-branch-cleanup {
if [ $# -eq 0 ]; then
branch=master
else
branch=$1
fi
git branch --merged $branch | grep -v $branch | xargs git branch -d
}
function git-branch-delete-merged {
git branch --merged \
| grep -v "\*" \
| grep -v master \
| grep -v staging \
| grep -v development \
| xargs -n 1 git branch -d
}
function git-date-added {
if [ $# -eq 0 ]; then
echo Usage: git-date-added FILENAME
else
git log --format=%aD $1 | tail -1
fi
}
function gitignore-io {
curl https://www.gitignore.io/api/$@
}
function insert-sudo {
zle beginning-of-line
zle -U "sudo "
}
function npm-exec {
(PATH=$(npm bin):$PATH; eval $@;)
}
function password-generator {
if [ -x "$(command -v openssl)" ]; then
password=$(
openssl rand -base64 32 \
| head -c 32
)
else
password=$(
date +%s \
| sha256sum \
| base64 \
| head -c 32
)
fi
echo $password
}
function port-forward {
if [ $# -lt 2 ]; then
echo Usage: port-forward HOST LOCAL_PORT \[REMOTE_PORT\]
else
ssh $1 -R ${3:-$2}":localhost:"$2 -g
fi
}
function run {
if [ $# -lt 2 ]; then
echo Usage: run NUMBER COMMAND
else
number=$1; shift
for i in `seq $number`; do
eval "$@"
done
fi
}
function stopwatch {
date1=`date +%s`
while true; do
echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r"
sleep 0.1
done
}
function test-rails {
if bundle exec rspec --help > /dev/null 2>&1; then
if [ -d spec ]; then
bundle exec rspec $@
else
ruby *_test.rb
fi
elif bundle exec rails version > /dev/null 2>&1; then
bundle exec rails test $@
else
if [[ $# > 0 ]]; then
ruby $@
else
ruby *_test.rb
fi
fi
}
function true-colors {
awk 'BEGIN{
s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
for (colnum = 0; colnum<77; colnum++) {
r = 255-(colnum*255/76);
g = (colnum*510/76);
b = (colnum*255/76);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum+1,1);
}
printf "\n";
}'
}
function yarn-exec {
(PATH=$(yarn bin):$PATH; eval $@;)
}
function yarn-install-like-bundle {
if [ -f yarn.lock ]; then
yarn install --pure-lockfile
else
yarn install
fi
}

View file

@ -1,17 +0,0 @@
#compdef ,
local bin_dir="aet-bin"
local found_bin_dir=""
current_dir=$(pwd)
found_bin_dir=$current_dir/$bin_dir
while [ ! -d $found_bin_dir ]; do
if [[ $current_dir == $HOME ]]; then
found_bin_dir=$HOME/bin
break
fi
current_dir=$(realpath "$current_dir/..")
found_bin_dir=$current_dir/$bin_dir
done
_files -g "^," -W $found_bin_dir

View file

@ -1,30 +0,0 @@
local current_time="[%B%D{%T}%b]"
local current_dir='%B%F{blue}%~%f%b'
# user
local user="%F{green}%n%f"
# host
local host=""
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
host='%F{yellow}%M%f' #SSH
else
host='%F{green}%M%f' # no SSH
fi
# vcs
precmd() {
setopt promptsubst
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git hg svn
zstyle ':vcs_info:*:prompt:*' nvcsformats ""
zstyle ':vcs_info:*:prompt:*' formats "[%F{cyan}%b%f%u%c]"
vcs_info 'prompt'
}
local vcs='${vcs_info_msg_0_}'
local prompt="%B%(?.%F{green}✓%b.%F{red}✗)%b%f"
PROMPT="${current_time} ${user}@${host} ${current_dir} ${vcs}
$prompt "

View file

@ -1,40 +1,13 @@
PERSONAL_BIN_PATH="$HOME/bin"
NODENV_PATH="$HOME/.nodenv/bin"
RBENV_PATH="$HOME/.rbenv/bin"
LOCAL_HOME_BIN_PATH="$HOME/.local/bin"
PERSONAL_BIN_PATH="$HOME/bin"
PERSONAL_COMPLETIONS_PATH="$HOME/.zsh-completions"
ZDOTDIR=$HOME/.config/zsh
GNU_TOOLS_PATH="/opt/homebrew/opt/coreutils/libexec/gnubin"
GNU_TOOLS_MAN_PATH="/opt/homebrew/opt/coreutils/libexec/gnuman"
if [[ "$OSTYPE" == darwin* ]]; then
HOMEBREW_PREFIX="/opt/homebrew";
HOMEBREW_CELLAR="/opt/homebrew/Cellar";
HOMEBREW_REPOSITORY="/opt/homebrew";
# Added by .zprofile that we've moved
PATH="/usr/local/bin:/Library/Apple/usr/bin:$PATH"
PATH="/opt/homebrew/bin:/opt/homebrew/sbin${PATH+:$PATH}";
MANPATH="/opt/homebrew/share/man${MANPATH+:$MANPATH}:";
INFOPATH="/opt/homebrew/share/info:${INFOPATH:-}";
[[ -d "$GNU_TOOLS_PATH" ]] && PATH="$GNU_TOOLS_PATH:$PATH"
[[ -d "$GNU_TOOLS_MAN_PATH" ]] && MANPATH="$GNU_TOOLS_MAN_PATH:$MANPATH"
GO_DIR="/usr/local/opt/go/libexec"
else
GO_DIR="/usr/local/go/bin"
fi
# BIN
[[ -d "$RBENV_PATH" ]] && PATH="$RBENV_PATH:$PATH"
[[ -d "$NODENV_PATH" ]] && PATH="$NODENV_PATH:$PATH"
[[ -d "$LOCAL_HOME_BIN_PATH" ]] && PATH="$LOCAL_HOME_BIN_PATH:$PATH"
[[ -d "$PERSONAL_BIN_PATH" ]] && PATH="$PERSONAL_BIN_PATH:$PATH"
[[ -d "$PERSONAL_COMPLETIONS_PATH" ]] && FPATH="$PERSONAL_COMPLETIONS_PATH:$FPATH"
# EDITOR
EDITOR=vim

View file

@ -1,73 +0,0 @@
GPG_TTY=$(tty)
export GPG_TTY
# clean up duplicate paths
typeset -U PATH
# Larger history
HISTSIZE=20000
HISTFILE=~/.zsh_history
SAVEHIST=20000
# Make sure C-s works in vim
stty start undef
stty stop undef
# Aliases/Functions files
source $HOME/.aliases
source $HOME/.functions
source $HOME/.zsh/prompt
if [[ "$OSTYPE" == darwin* ]]; then
source $HOME/.aliases-mac
fi
# vim mode
bindkey -v
# Bind insert_sudo function
zle -N insert-sudo
bindkey "^z" insert-sudo
# init rbenv
if which rbenv > /dev/null; then
eval "$(rbenv init --no-rehash -)"
(rbenv rehash &) 2> /dev/null
fi
# init nodenv
if which nodenv > /dev/null; then
eval "$(nodenv init --no-rehash -)"
(nodenv rehash &) 2> /dev/null
fi
# init direnv
if which direnv > /dev/null; then
eval "$(direnv hook zsh)"
fi
# completion
autoload -U compinit
autoload bashcompinit && bashcompinit
autoload compinit -Uz
setopt EXTENDEDGLOB
if [[ -n ${ZDOTDIR}/.zcompdump(#qN.mh+24) ]]; then
compinit
else
compinit -C
fi
unsetopt EXTENDEDGLOB
setopt completeinword
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
# directory
setopt auto_cd
# better word definition
autoload -U select-word-style
select-word-style bash
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh