commit 8b82ad54cb3fd7c0e4c7bfb6c9f67a096cee8a41
parent d7547d869f0e14a874ce9a92fde797c4a6ae1880
Author: Bharatvaj <bharatvaj@yahoo.com>
Date: Thu, 3 Mar 2022 22:50:08 +0530
Merge branch 'base' of github.com:bharatvaj/dotfiles into linux
Diffstat:
13 files changed, 114 insertions(+), 46 deletions(-)
diff --git a/.bash_profile b/.bash_profile
@@ -1,7 +1,6 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
-set -o vi
[ -f ~/.profile ] && . ~/.profile
[ -f "${XDG_CONFIG_HOME}/bash/bashrc" ] && . "${XDG_CONFIG_HOME}"/bash/bashrc
diff --git a/.config/.gitignore b/.config/.gitignore
@@ -2,22 +2,24 @@
*
!.gitignore
+!X11
!alacritty/
!alacritty/**
!bash/
!bash/**
-!sh/
-!sh/**
+!git/
+!git/config
!i3
-!nvim
-!nvim/**
-!vim/
-!vim/**
-!X11
-!wgetrc
!lynx/
!lynx/lynx.cfg
!lynx/lynx.lss
+!nvim
+!nvim/**
+!sh/
+!sh/**
!tmux/
-!tmux/*
+!tmux/tmux.conf
!user-dirs.dirs
+!vim/
+!vim/**
+!wgetrc
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
@@ -5,13 +5,4 @@ import:
- ~/.config/alacritty/theme.yml
- ~/.config/alacritty/font.yml
-cursor:
- style:
- shape: Beam
-
live_config_reload: true
-
-shell:
- program: bash
- args:
- - --login
diff --git a/.config/bash/bashrc b/.config/bash/bashrc
@@ -1 +1,7 @@
+set -o vi
+PATH_EXPORTS=( "${ESSENTIAL_PATH_EXPORTS[@]}" "${OTHER_PATH_EXPORTS[@]}" )
+
+export PATH="${PATH}:${PATH_EXPORTS[*]}"
+
+[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
diff --git a/.config/git/config b/.config/git/config
@@ -0,0 +1,23 @@
+[alias]
+ a = add
+ b = branch
+ ba = branch --all
+ c = commit
+ cm = commit --message
+ co = checkout
+ d = diff
+ ds = diff --staged
+ ld = log --pretty=format:"%h %ad %s" --date=short --all
+ lg = log --graph --oneline --decorate --all
+ p = pull
+ st = status
+ wt = worktree
+
+[difftool]
+ prompt = false
+
+[init]
+ defaultBranch = main
+
+[include]
+ path = config.user
diff --git a/.config/sh/aliases b/.config/sh/aliases
@@ -2,13 +2,14 @@ mich abook && alias abook='abook --config "$XDG_CONFIG_HOME"/abook/abookrc --dat
mich startx && alias startx='startx "$XDG_CONFIG_HOME/X11/xinitrc" vt1'
mich wget && alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
mich mbsync && alias mbsync='mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc'
-mich nvim && alias vim=nvim
mich emcc && alias emcc='emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache'
mich dict && alias dict='dict -c "$XDG_CONFIG_HOME"/dict/dictrc'
+mich btpd && alias btpd='btpd -d "$XDG_DATA_HOME"/btpd'
+mich abook && alias abook='abook -C "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_DATA_HOME"/abook/addressbook'
# conditioning
## ls conditioning
-mich sl && alias lls=sl && alias llls=sl && alias sls=sl && alias lsl=sl && alias lss=sl
+mich sl && alias ld='sl' && alias lls='sl' && alias llls=sl && alias sls=sl && alias lsl=sl && alias lss=sl && alias kls=sl
## cd conditioning
mich sl && alias cdd=sl
@@ -16,3 +17,9 @@ mich sl && alias cdd=sl
# ip
mich ifconfig && alias lip="ifconfig | grep -w inet | cut -d ' ' -f2"
mich curl && alias gip="curl ifconfig.co"
+
+duck() {
+ url="$*"
+ lynx "https://duckduckgo.com/lite?q=$url"
+}
+alias '?'='duck'
diff --git a/.config/sh/plugin/git b/.config/sh/plugin/git
@@ -1,16 +1,6 @@
mich git || return
-# ----------------------
-# Git Aliases
-# ----------------------
-alias ga='git add'
-alias gb='git branch'
-alias gcm='git commit --message'
-alias gco='git checkout'
-alias gd='git diff'
-alias gds='git diff --staged'
-alias gst='git status'
-alias glg='git log --graph --oneline --decorate --all'
-alias gld='git log --pretty=format:"%h %ad %s" --date=short --all'
+
+alias g='git'
# ----------------------
# Git Functions
diff --git a/.config/sh/plugin/shorthand b/.config/sh/plugin/shorthand
@@ -1,7 +1,7 @@
-# One letter bindings for important commands
+# Bindings for important commands
[ -n "${EDITOR}" ] && alias e='${EDITOR}'
-alias c=clear
+alias cls=clear
mich git && alias g=git
mich pass && alias p=pass
diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf
@@ -40,3 +40,22 @@ set -g status-bg black
set -g status-fg white
set -g window-status-current-style "bg=white,fg=black"
+# Smart pane switching with awareness of Vim splits.
+# See: https://github.com/christoomey/vim-tmux-navigator
+is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
+ | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
+bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
+bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
+bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
+bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
+tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
+if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
+ "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
+if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
+ "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
+
+bind-key -T copy-mode-vi 'C-h' select-pane -L
+bind-key -T copy-mode-vi 'C-j' select-pane -D
+bind-key -T copy-mode-vi 'C-k' select-pane -U
+bind-key -T copy-mode-vi 'C-l' select-pane -R
+bind-key -T copy-mode-vi 'C-\' select-pane -l
diff --git a/.config/vim/keybindings/keybindings.vim b/.config/vim/keybindings/keybindings.vim
@@ -5,12 +5,6 @@ nnoremap <leader>f :find
nnoremap <Leader>l :ls<CR>:b<space>
nmap <leader>F :GFiles<cr>
-" Buffer Navigation
-nnoremap <C-J> <C-W><C-J>
-nnoremap <C-K> <C-W><C-K>
-nnoremap <C-L> <C-W><C-L>
-nnoremap <C-H> <C-W><C-H>
-
" Buffer Creation
nnoremap <Leader>v :vsplit<enter>
nnoremap <Leader>s :split<enter>
diff --git a/.config/vim/themes/themes.vim b/.config/vim/themes/themes.vim
diff --git a/.config/vim/vimrc b/.config/vim/vimrc
@@ -61,8 +61,33 @@ set shiftwidth=4
" Netrw customization
let g:netrw_banner = 0
+" Harder vim
+" Disable arrow keys
+for key in ['<Up>', '<Down>', '<Left>', '<Right>']
+ exec 'noremap' key '<Nop>'
+ exec 'inoremap' key '<Nop>'
+ exec 'cnoremap' key '<Nop>'
+endfor
+" Disable h and l
+for key in ['h', 'l']
+ exec 'noremap' key '<Nop>'
+endfor
+
+" Visual Tweaks
+hi VertSplit term=NONE cterm=NONE gui=NONE
+
+"TODO use inverse colors from fg and bg instead of hardcoding black and white values
+hi LineNr ctermbg=Black ctermfg=White
+
+" Prominent Cursor Line
+hi CursorLineNr ctermbg=White ctermfg=Black
+
" Disable status
set laststatus=1
+set nowrapscan
+
+" Plugins
+source $XDG_CONFIG_HOME/vim/plugin/plugin.vim
" Keybindings
source $XDG_CONFIG_HOME/vim/keybindings/keybindings.vim
diff --git a/.profile b/.profile
@@ -11,7 +11,6 @@ export VIMINIT="source $XDG_CONFIG_HOME/vim/vimrc"
export LESSHISTFILE=-
export LYNX_CFG="$XDG_CONFIG_HOME/lynx/lynx.cfg"
export LYNX_LSS="$XDG_CONFIG_HOME/lynx/lynx.lss"
-export GNUPGHOME="$XDG_DATA_HOME/gnupg"
export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"
export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"
export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"
@@ -24,23 +23,35 @@ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch/config"
-export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
-export FFMPEG_DATADIR="$XDG_CONFIG_HOME"/ffmpeg
+export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config
+export ELINKS_CONFDIR="$XDG_CONFIG_HOME/elinks"
+export FFMPEG_DATADIR="$XDG_DATA_HOME"/ffmpeg
+export GNUPGHOME="$XDG_DATA_HOME/gnupg"
export ATOM_HOME="$XDG_DATA_HOME"/atom
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
-export HISTFILE="$XDG_DATA_HOME"/bash/history
+export HISTFILE="$XDG_DATA_HOME"/history
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine
export GOPATH="$XDG_DATA_HOME"/go
export NB_PATH="$XDG_DATA_HOME/notebook"
export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache
+export CARGO_HOME="$XDG_DATA_HOME"/cargo
+export GEM_HOME="$XDG_DATA_HOME"/gem
+export TERMINFO="$XDG_DATA_HOME/terminfo"
+export TERMINFO_DIRS="$XDG_DATA_HOME/terminfo":/usr/share/terminfo
+export VSCODE_PORTABLE="$XDG_DATA_HOME/vscode"
+export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
+export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
+export MYSQL_HISTFILE="$XDG_DATA_HOME/mysql_history"
+# export ZDOTDIR="$XDG_DATA_HOME/zsh"
export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"
export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache
+export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem
# Make `history` print timestamp
HISTTIMEFORMAT="%F %T "
@@ -60,7 +71,8 @@ mich() {
# Setup editor
-export VISUAL=$(mich nvim && echo nvim || echo vim )
+# export VISUAL=$(mich nvim && echo nvim || echo vim )
+export VISUAL=nvi
export EDITOR="$VISUAL"
export BROWSER=$(mich lynx && echo lynx)