diff --git a/.bash_exports b/.bash_exports
index 45b6bee..54cb236 100644
--- a/.bash_exports
+++ b/.bash_exports
@@ -46,7 +46,6 @@ export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME
 export GIT_PAGER='/usr/share/git/diff-highlight/diff-highlight | less -+F -x8 -nBJXRgiM -h512'
 
 ## Java
-export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
 export IDEA_VM_OPTIONS="$HOME/Dropbox/dotfiles/idea.vmoptions"
 export IDEA_JDK=$HOME/lib/jdk-8u5-tuxjdk-b08
 
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
index 7b987c7..d7a5b41 100644
--- a/.config/alacritty/alacritty.yml
+++ b/.config/alacritty/alacritty.yml
@@ -79,7 +79,7 @@ font:
     style: Italic
 
   # Point size of the font
-  size: 18
+  size: 10 
 
   # Offset is the extra space around each character. offset.y can be thought of
   # as modifying the linespacing, and offset.x as modifying the letter spacing.
@@ -234,12 +234,6 @@ cursor_style: Block
 # Live config reload (changes require restart)
 live_config_reload: true
 
-shell:
-  program: /bin/tmux
-  args:
-    - attach
-    - -t0
-
 # Shell
 #
 # You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
index 8020a98..4f0c74c 100644
--- a/.config/nvim/init.vim
+++ b/.config/nvim/init.vim
@@ -6,11 +6,13 @@ call plug#begin('~/.local/share/nvim/plugged')
 Plug 'VundleVim/Vundle.vim'
 Plug 'airblade/vim-gitgutter'
 Plug 'b4b4r07/vim-hcl'
+Plug 'bazelbuild/vim-bazel'
 Plug 'cespare/vim-toml'
 Plug 'djoshea/vim-autoread'
 Plug 'ervandew/supertab'
 Plug 'fatih/vim-go'
 Plug 'godlygeek/tabular'
+Plug 'google/vim-maktaba'
 Plug 'hashivim/vim-terraform'
 Plug 'jremmen/vim-ripgrep'
 Plug 'junegunn/vim-easy-align'
@@ -23,20 +25,26 @@ Plug 'Matt-Deacalion/vim-systemd-syntax'
 Plug 'NLKNguyen/papercolor-theme'
 Plug 'plasticboy/vim-markdown'
 Plug 'rakr/vim-one'
-Plug 'roxma/nvim-completion-manager'
 Plug 'rust-lang/rust.vim'
 Plug 'sebdah/vim-delve'
-" Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
 Plug 'Shougo/neosnippet.vim'
 Plug 'Shougo/neosnippet-snippets'
 Plug 'tomtom/tcomment_vim'
 Plug 'tpope/vim-fugitive'
-Plug 'typeintandem/nvim'
 Plug 'tyrannicaltoucan/vim-quantum'
 Plug 'vim-airline/vim-airline'
 Plug 'vim-airline/vim-airline-themes'
 Plug 'w0rp/ale'
 
+" Autocomplete
+Plug 'ncm2/ncm2'
+Plug 'roxma/nvim-yarp'
+Plug 'ncm2/ncm2-bufword'
+Plug 'ncm2/ncm2-tmux'
+Plug 'ncm2/ncm2-path'
+Plug 'ncm2/ncm2-go'
+Plug 'ncm2/ncm2-racer'
+
 call plug#end()
 
 set ttimeout
@@ -229,6 +237,7 @@ au BufNewFile,BufRead manifest setlocal ft=json
 au BufNewFile,BufRead *.aurora set filetype=python 
 au BufNewFile,BufRead *.avdl setlocal ft=avro-idl
 au BufNewFile,BufRead *.avpr setlocal ft=json
+au BufNewFile,BufRead *.bazel setlocal ft=bzl
 au BufNewFile,BufRead *.cql set syntax=cql
 au BufNewFile,BufRead *.go setlocal ft=go
 au BufNewFile,BufRead *.g setlocal ft=antlr
@@ -264,7 +273,6 @@ au FileType python
     \ setlocal tabstop=4 softtabstop=4 shiftwidth=4 |
     \ setlocal nosmartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
 autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
-autocmd FileType python set omnifunc=pythoncomplete#Complete
 
 " pydoc integration
 let g:pydoc_highlight = 0
@@ -273,10 +281,9 @@ let g:pcs_check_when_saving = 0
 let g:pymode_lint = 0
 let g:pymode_lint_checker = "pyflakes"
 
-
-" YouCompleteMe
-set completefunc=youcompleteme#Complete
-set completeopt=preview,menuone
+" enable ncm2 for all buffers
+autocmd BufEnter * call ncm2#enable_for_buffer()
+set completeopt=noinsert,menuone,noselect
 
 " tags
 set tags=./tags;/
@@ -458,7 +465,6 @@ autocmd FileType go nmap <Leader>i <Plug>(go-info)
 autocmd FileType go nmap <S-k> <Plug>(go-doc)
 autocmd FileType go nmap <Leader>d <Plug>(go-doc-vertical)
 
-
 " ALE
 let g:ale_sign_column_always = 1
 " let g:ale_linters = {'go': ['gofmt']}
diff --git a/.config/redshift.conf b/.config/redshift.conf
index 1fda982..47a3003 100644
--- a/.config/redshift.conf
+++ b/.config/redshift.conf
@@ -1,8 +1,8 @@
 [redshift]
 temp-day=3900
-temp-night=3400
+temp-night=3000
 brightness-day=0.99
-brightness-night=0.95
+brightness-night=0.75
 location-provider=manual
 transition=0
 
diff --git a/.config/systemd/user/powerline-daemon.service b/.config/systemd/user/powerline-daemon.service
deleted file mode 100644
index 94336b6..0000000
--- a/.config/systemd/user/powerline-daemon.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Daemon that improves powerline performance
-After=display-manager.service
-
-[Service]
-ExecStart=/usr/bin/powerline-daemon --foreground --replace
-Restart=always
-
-[Install]
-WantedBy=default.target
diff --git a/.gitconfig b/.gitconfig
index c1887eb..7cda251 100644
--- a/.gitconfig
+++ b/.gitconfig
@@ -136,3 +136,10 @@ diff-chunk = magenta default bold
 [hub]
 	protocol = git
 [http]
+[http]
+	cookiefile = /home/dln/.gitcookies
+[filter "lfs"]
+	smudge = git-lfs smudge -- %f
+	process = git-lfs filter-process
+	required = true
+	clean = git-lfs clean -- %f
diff --git a/.local/share/nvim/site/autoload/plug.vim b/.local/share/nvim/site/autoload/plug.vim
index 143c377..5d2b00e 100644
--- a/.local/share/nvim/site/autoload/plug.vim
+++ b/.local/share/nvim/site/autoload/plug.vim
@@ -96,7 +96,7 @@ let s:plug_src = 'https://github.com/junegunn/vim-plug.git'
 let s:plug_tab = get(s:, 'plug_tab', -1)
 let s:plug_buf = get(s:, 'plug_buf', -1)
 let s:mac_gui = has('gui_macvim') && has('gui_running')
-let s:is_win = has('win32') || has('win64')
+let s:is_win = has('win32')
 let s:nvim = has('nvim-0.2') || (has('nvim') && exists('*jobwait') && !s:is_win)
 let s:vim8 = has('patch-8.0.0039') && exists('*job_start')
 let s:me = resolve(expand('<sfile>:p'))
@@ -763,6 +763,9 @@ function! s:prepare(...)
     execute 'silent! unmap <buffer>' k
   endfor
   setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell
+  if exists('+colorcolumn')
+    setlocal colorcolumn=
+  endif
   setf vim-plug
   if exists('g:syntax_on')
     call s:syntax()
@@ -799,7 +802,7 @@ function! s:bang(cmd, ...)
     let cmd = a:0 ? s:with_cd(a:cmd, a:1) : a:cmd
     if s:is_win
       let batchfile = tempname().'.bat'
-      call writefile(['@echo off', cmd], batchfile)
+      call writefile(["@echo off\r", cmd . "\r"], batchfile)
       let cmd = batchfile
     endif
     let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%')
@@ -908,7 +911,7 @@ function! s:finish(pull)
     call add(msgs, "Press 'R' to retry.")
   endif
   if a:pull && len(s:update.new) < len(filter(getline(5, '$'),
-                \ "v:val =~ '^- ' && stridx(v:val, 'Already up-to-date') < 0"))
+                \ "v:val =~ '^- ' && v:val !~# 'Already up.to.date'"))
     call add(msgs, "Press 'D' to see the updated changes.")
   endif
   echo join(msgs, ' ')
@@ -1196,7 +1199,7 @@ function! s:spawn(name, cmd, opts)
   let s:jobs[a:name] = job
   let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir) : a:cmd
   if !empty(job.batchfile)
-    call writefile(['@echo off', cmd], job.batchfile)
+    call writefile(["@echo off\r", cmd . "\r"], job.batchfile)
     let cmd = job.batchfile
   endif
   let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd)
@@ -2023,7 +2026,7 @@ function! s:system(cmd, ...)
     let cmd = a:0 > 0 ? s:with_cd(a:cmd, a:1) : a:cmd
     if s:is_win
       let batchfile = tempname().'.bat'
-      call writefile(['@echo off', cmd], batchfile)
+      call writefile(["@echo off\r", cmd . "\r"], batchfile)
       let cmd = batchfile
     endif
     return system(s:is_win ? '('.cmd.')' : cmd)
@@ -2357,7 +2360,7 @@ function! s:preview_commit()
     let cmd = 'cd '.s:shellesc(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha
     if s:is_win
       let batchfile = tempname().'.bat'
-      call writefile(['@echo off', cmd], batchfile)
+      call writefile(["@echo off\r", cmd . "\r"], batchfile)
       let cmd = batchfile
     endif
     execute 'silent %!' cmd
@@ -2426,8 +2429,13 @@ function! s:diff()
         \ . (cnts[1] ? printf(' %d plugin(s) have pending updates.', cnts[1]) : ''))
 
   if cnts[0] || cnts[1]
-    nnoremap <silent> <buffer> <cr> :silent! call <SID>preview_commit()<cr>
-    nnoremap <silent> <buffer> o    :silent! call <SID>preview_commit()<cr>
+    nnoremap <silent> <buffer> <plug>(plug-preview) :silent! call <SID>preview_commit()<cr>
+    if empty(maparg("\<cr>", 'n'))
+      nmap <buffer> <cr> <plug>(plug-preview)
+    endif
+    if empty(maparg('o', 'n'))
+      nmap <buffer> o <plug>(plug-preview)
+    endif
   endif
   if cnts[0]
     nnoremap <silent> <buffer> X :call <SID>revert()<cr>
diff --git a/.ripgreprc b/.ripgreprc
index a4d8810..f47f92c 100644
--- a/.ripgreprc
+++ b/.ripgreprc
@@ -1,3 +1,6 @@
+--glob=!/vendor/
+--glob=!/.git/
+--glob=!/.terraform/
 --colors=path:fg:100,150,210
 --colors=match:style:nobold
 --colors=match:bg:180,150,40
diff --git a/.zshrc b/.zshrc
index d582f58..af724e6 100644
--- a/.zshrc
+++ b/.zshrc
@@ -9,6 +9,8 @@
 # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
 export PATH=$HOME/bin:$PATH:/bin:/sbin:/usr/sbin:/usr/local/sbin
 
+fpath=(~/.zsh/functions $fpath)
+
 ZSH_THEME="robbyrussell"
 
 export DIRENV_LOG_FORMAT= 
diff --git a/bin/dwm b/bin/dwm
index 5553a0e..00b17e7 100755
Binary files a/bin/dwm and b/bin/dwm differ
diff --git a/bin/ktoolbox b/bin/ktoolbox
index 4136447..8194498 100755
--- a/bin/ktoolbox
+++ b/bin/ktoolbox
@@ -1,5 +1,5 @@
 #!/bin/bash
-# set -ex
+set -ex
 name=toolbox-${USER}
 image='dlneintr/toolbox:latest'
 labels="app=toolbox,owner=${USER},cookie=0xdeadbeef"