HokieGeek / dotfiles

My linux config files
0 stars 0 forks source link
tmux vim xmonad

dotfiles

My personal linux config files

Installation

git clone --recursive https://github.com/HokieGeek/dotfiles
dotfiles/setup.sh

Philosophy

I prefer to KISS as much as possible. All I need is a terminal and a browser and I've got all I need for 99% of what I do. I prefer smaller laptops so I try to take advantage of as much real estate as I can.

I keep the look and feel minimal so that it's less distracting so, to that end, the "color scheme" is dark with some gray shadings and a single color used by tmux and the conky bar up top. The script bin/schemecolor will sed the indicated color into my tmux.conf and xmonad.hs and will reload both so that I can change the color on-the-fly.

Features

chrome

Running a dark theme and using the cVim plugin to use vim bindings. This makes me very happy.

vim

The following plugins are being used:

Mine

Repo Description
vit
¿que?
comentarista
shai-hulud
argh
sessioner
splitter
uvix
unembed
vim-ng

Third-party

Workflow-intrusive Non-intrusive
kien/ctrlp.vim matchit
mbbill/undotree tpope/vim-pathogen
tommcdo/vim-exchange tpope/vim-repeat
tpope/vim-surround tpope/vim-endwise
michaeljsmith/vim-indent-object tpope/vim-markdown
welle/targets elzr/vim-json
junegunn/vim-easy-align fatih/vim-go
SirVer/ultisnips derekwyatt/vim-scala
taglist leafgarland/typescript-vim
ynkdir/vim-vimlparser
syngan/vim-vimlint

List of new commands and mappings

Commands
Command Source plugin What it does
Only argh
ArgsOnly argh
ArgsToggle argh
ArgsAll argh
Badd argh
Bd argh
Build shai-hulud
Split splitter
Vsplit splitter
Run splitter
RunIn splitter
Log splitter
Find uvix
Chmod uvix
Rm uvix
Tail uvix
Grep uvix
Git vit
Helptags vim-pathogen
SyntasticInfo syntastic
EasyAlign vim-easy-align
LiveEasyAlign vim-easy-align
Mappings
Mapping Source plugin What it does
g<Tab> comentarista
g<shift><Tab> comentarista
cs vim-surround
ds vim-surround
yss vim-surround
cx vim-exchange
cxx vim-exchange
X vim-exchange
cxc vim-exchange

Text-objects

Object Source plugin What it does
ai vim-indent-object
ii vim-indent-object
al vim-indent-object

List of commands and mappings defined in the vimrc

Commands

Scratch

Mappings
Mapping What it does
gh :Scratch
gsh :Split
gsv :Vsplit
gw ctrl-w
ga :ArgsToggle
go :TListToggle
ge EasyAlign interactive mode
gc Toggles Undotree
(visual)<Enter> EasyAlign interactive mode
\\ :Grep
g\ :Grep -b
g/ :Grep -a
<F9> Save session
<leader><F9> Save all window sessions
<F10> Delete session
<leader><F10> Load session
<F12> Cycle colorschemes
<leader><F12> Set favorite colorscheme (differerent if on GUI vs. terminal)
<C-F12> Sets to failsafe colorscheme (different if on GUI vs. terminal)
<count>]b Next buffer
<count>[b Previous buffer
]B Last buffer
[B First buffer
<count>]a Next argument
<count>[a Previous argument
]A Last argument
[A First argument
<count>]q Next quickfix item
<count>[q Previous quickfix item
]Q Last quickfix item
[Q First quickfix item
<count>]l Next location item
<count>[l Previous location item
]L Last location item
[L First location item
coN Toggle relative number (if supported, else toggles number)
con Toggles number and relative number
coc Toggles cursor line
coC Toggles cursor column (if supported)
cow Toggles word wrap
cos Toggles spelling
col Toggles displaying of special characters (tabs)
cox Toggles syntax highlighting
cot Toggles status bar
cob Toggles background (light/dark)
coh Toggles search highlighting
cop Toggles paste mode
coF Toggles folding
cof Enables syntax folding
coff Enables manual folding
cofff Enables marker folding
jk <esc>
kj <esc>
ZZ :wqa
ZQ :qa!
<space> :
Y Copy whole line
n (nzz) Centers screen on search hit
jj ctrl-n
kk ctrl-p

st

Nothing to be done here for simple terminal, of course, other than setting the font to DejaVu Sans Mono

tmux

Simple statusbar that just shows currently open terminals and an identifier for the current pane.

Wrote a vim plugin that integrates with tmux somewhat.

It is exec'ed by the shell upon login.

zsh

Ported my bash prompt which displays information such as git and mercurial repository status and flags if the previous command returned a non-zero value and/or if a process is currently backgrounded.

xmonad

My focus was to enable layouts that let me take advantage of my small laptop screen in a way that most benefits what I am currently working on. I couple that with a good number of custom keybindings so that I don't have to use the mouse to interact with the window manager. I also have been making pretty heavy use of dmenu to provide me some extra control.

Using dzen2 to display the workspaces.

Also using dmenu for some application launchers as well as the selector which lets me change the color theme.

A few sample custom key bindings that I love
Binding What it does
Super+n Switches to the next empty workspace
Super+Alt+n Opens a browser window in the next available empty workspace
Super+Shift+n Shifts active window to the next empty workspace
Super+Tab Switches to the previous workspace
Super+Ctrl+[WS#] Swaps current workspace with indicated workspace

conky + dzen2

Displaying statistics such as time, IP addresses, CPU use, battery life, etc.