Reference repo to get files

This commit is contained in:
Chris Sexton 2015-03-05 12:26:59 -05:00
parent 327084bf27
commit 4b126bd540
8 changed files with 880 additions and 886 deletions

62
files/gitconfig Normal file
View File

@ -0,0 +1,62 @@
[user]
name = %NAME%
email = %EMAIL%
[core]
autocrlf = input
whitespace = fix,space-before-tab,tab-in-indent,trailing-space
excludesfile = /Users/csexton/.gitignore_global
[alias]
st = status
co = checkout
di = diff
wc = whatchanged
br = branch
lg = "log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
unstage = "reset HEAD --"
spencer = log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cD) %C(bold blue)<%an>%Creset' --author Spencer --since
since = log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cD) %C(bold blue)<%an>%Creset' --author Chris --since
standup = log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cD) %C(bold blue)<%an>%Creset' --author Chris --since yesterday
yolo = "!git commit -am 'DEAL WITH IT' && git push -f"
ribbon = tag --force _ribbon origin/master
ketchup = log --patch --reverse --topo-order --first-parent -m _ribbon..origin/master
mergedown = merge --no-ff --log
g = grep --break --heading --line-number
check = "!git g '// todo'; git g '// fix'; git g '// review'; git g 'debugger';"
incoming = "!git remote update -p; git log ..@{u}"
outgoing = log @{u}..
[branch "master"]
remote = origin
merge = refs/heads/master
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
[merge]
log = true
[url "git@github.com:"]
insteadOf = "gh:"
pushInsteadOf = "github:"
pushInsteadOf = "git://github.com/"
[url "git://github.com/"]
insteadOf = "github:"
[url "git@gist.github.com:"]
insteadOf = "gst:"
pushInsteadOf = "gist:"
pushInsteadOf = "git://gist.github.com/"
[url "git://gist.github.com/"]
insteadOf = "gist:"
[push]
default = simple
[credential]
helper = osxkeychain

68
files/gitignore_global Normal file
View File

@ -0,0 +1,68 @@
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# It's better to unpack these files and commit the raw source because
# git has its own built in compression methods.
*.7z
*.jar
*.rar
*.zip
*.gz
*.bzip
*.xz
*.lzma
#packing-only formats
*.iso
*.tar
#package management formats
*.dmg
*.xpi
*.gem
*.egg
*.deb
*.rpm
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
# NPM
.npmignore
# Other stuff
*~
.*.sw?
.tern-port
e6Views
vaViews
todo.txt

157
files/irssiconfig Normal file
View File

@ -0,0 +1,157 @@
servers = (
{
address = "%SERVER%";
chatnet = "net";
port = "%PORT%";
password = "%PASSWORD%";
use_ssl = "yes";
ssl_verify = "no";
autoconnect = "yes";
}
);
chatnets = {
net = { type = "IRC"; };
};
channels = (
);
aliases = {
J = "join";
LEAVE = "part";
W = "who";
Q = "QUERY";
};
statusbar = {
# formats:
# when using {templates}, the template is shown only if it's argument isn't
# empty unless no argument is given. for example {sb} is printed always,
# but {sb $T} is printed only if $T isn't empty.
items = {
# start/end text in statusbars
barstart = "{sbstart}";
barend = "{sbend}";
topicbarstart = "{topicsbstart}";
topicbarend = "{topicsbend}";
# treated "normally", you could change the time/user name to whatever
time = "{sb $Z}";
user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
# treated specially .. window is printed with non-empty windows,
# window_empty is printed with empty windows
window = "{sb $winref:$tag/$itemname{sbmode $M}}";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "{prompt $[.15]itemname}";
prompt_empty = "{prompt $winname}";
topic = " $topic";
topic_empty = " Irssi v$J - http://www.irssi.org";
# all of these treated specially, they're only displayed when needed
lag = "{sb Lag: $0-}";
act = "{sb Act: $0-}";
more = "-- more --";
};
# there's two type of statusbars. root statusbars are either at the top
# of the screen or at the bottom of the screen. window statusbars are at
# the top/bottom of each split window in screen.
default = {
# the "default statusbar" to be displayed at the bottom of the window.
# contains all the normal items.
window = {
disabled = "no";
# window, root
type = "window";
# top, bottom
placement = "bottom";
# number
position = "1";
# active, inactive, always
visible = "active";
# list of items in statusbar in the display order
items = {
barstart = { priority = "100"; };
time = { };
user = { };
window = { };
topic = { };
window_empty = { };
lag = { priority = "-1"; };
act = { priority = "10"; };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
# statusbar to use in inactive split windows
window_inact = {
type = "window";
placement = "bottom";
position = "1";
visible = "inactive";
items = {
barstart = { priority = "100"; };
window = { };
window_empty = { };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
# we treat input line as yet another statusbar :) It's possible to
# add other items before or after the input line item.
prompt = {
type = "root";
placement = "bottom";
# we want to be at the bottom always
position = "100";
visible = "always";
items = {
prompt = { priority = "-1"; };
prompt_empty = { priority = "-1"; };
# treated specially, this is the real input line.
input = { priority = "10"; };
};
};
# topicbar
topic = {
type = "root";
placement = "nowhere";
position = "100000";
visible = "never";
items = {
topicbarstart = { priority = "100"; };
topic = { };
topic_empty = { };
topicbarend = { priority = "100"; alignment = "right"; };
};
};
};
};
settings = {
core = {
real_name = "%NICK%";
user_name = "%NICK%";
nick = "%NICK%";
};
"fe-text" = { actlist_sort = "refnum"; };
"fe-common/core" = {
theme = "dma147";
completion_char = ",";
autolog = "yes";
};
};
hilights = (
{ text = "%NICK%"; nick = "yes"; word = "yes"; },
{ text = "chris"; nick = "yes"; word = "yes"; }
);
logs = { };

147
files/tmux.conf Normal file
View File

@ -0,0 +1,147 @@
# fix colors
set -g default-terminal "screen-256color"
# Arrow movement: nice
bind -n S-down new-window
bind -n S-left prev
bind -n S-right next
bind -n C-S-left swap-pane -U
bind -n C-S-right swap-pane -D
bind -r [ swap-window -t -1
bind -r ] swap-window -t +1
bind r source-file ~/.tmux.conf \; display-message " Config reloaded."
bind R source-file ~/.tmux.conf \; display-message " Config reloaded."
# All sutff for a status bar
set-option -g status on
set-option -g status-interval 2
set-option -g status-utf8 on
set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
set -g status-bg black
set -g status-fg white
set -g status-left "#H: #T"
set -g status-right "%H:%M %d-%h-%Y"
set -g window-status-format "#I:#W"
set -g window-status-current-format "|#I:#W|"
set -g status-interval 1
set -g status-justify left # align window list
# default statusbar colors
set -g status-fg white
set -g status-bg default
# default window title colors
set-window-option -g window-status-fg black
set-window-option -g window-status-bg default
set-window-option -g window-status-attr dim
# active window title colors
set-window-option -g window-status-current-fg white
set-window-option -g window-status-current-bg default
set-window-option -g window-status-current-attr bold
# command/message line colors
set -g message-fg white
set -g message-bg black
set -g message-attr bright
# Fix window size on new connections
set -g aggressive-resize on
# resize
unbind Left
unbind Right
unbind Down
unbind Up
bind -r Left resize-pane -L 2
bind -r Right resize-pane -R 2
bind -r Down resize-pane -D 2
bind -r Up resize-pane -U 2
# Toggle mouse on with ^B m
# Useful for cut/paste interop
bind m \
set -g mouse-resize-pane on \;\
set -g mouse-select-pane on \;\
set -g mouse-select-window on \;\
set -g mode-mouse on \;\
display 'Mouse: ON'
bind C-v paste-buffer
# Toggle mouse off with ^B M
bind M \
set -g mouse-resize-pane off \;\
set -g mouse-select-pane off \;\
set -g mouse-select-window off \;\
set -g mode-mouse off \;\
display 'Mouse: OFF'
set-window-option -g mode-keys vi
unbind T
unbind N
bind -r T clock-mode
bind -r N next-window
# Dvorak vs qwerty vi keys
unbind h
unbind t
unbind d
unbind n
bind -r h select-pane -U
bind -r t select-pane -D
bind -r d select-pane -L
bind -r n select-pane -R
# I use ^b^A to switch panes quickly
unbind ^A
bind ^A select-pane -t :.+
bind ^O select-pane -t :.-
# Fix scrolling?
#set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g history-limit 10000
# Clear terminal scrollback on ^k
bind -n C-k send-keys -R \; clear-history\; send-keys C-m
# Easy splits
bind-key | split-window -h
bind-key \ split-window -h
bind-key - split-window -v
bind-key k kill-pane
bind-key K kill-window
#set-option -g default-command "reattach-to-user-namespace -l zsh"
##CLIPBOARD selection integration
##Requires prefix key before the command key
#Copy tmux paste buffer to CLIPBOARD
#bind C-c run "tmux show-buffer | pbcopy"
#Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
#bind C-v run "tmux set-buffer -- \"$(pbpaste)\"; tmux paste-buffer"
# Nested tmux support
bind-key b send-prefix
# Multiple server support
bind s set -g synchronize-panes
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
bind-key -t vi-copy 'd' cursor-left
bind-key -t vi-copy 'h' cursor-down
bind-key -t vi-copy 't' cursor-up
bind-key -t vi-copy 'n' cursor-right
bind-key -t vi-copy 'l' search-again
# Move panes between windows
bind -r < join-pane -t -1.0
bind -r > join-pane -t +1.0
# Reminder: ^b ! breaks panes out

48
files/tmux.sh Normal file
View File

@ -0,0 +1,48 @@
#!/bin/bash
#
# Modified TMUX start script from:
# http://forums.gentoo.org/viewtopic-t-836006-start-0.html
#
# Store it to `~/bin/tmx` and issue `chmod +x`.
#
# Works because bash automatically trims by assigning to variables and by
# passing arguments
trim() { echo "$1"; }
base_session="$1"
if [[ -z "$1" ]]; then
base_session="default"
fi
# Only because I often issue `ls` to this script by accident
if [[ "$1" == "ls" ]]; then
tmux ls
exit
fi
# This actually works without the trim() on all systems except OSX
tmux_nb=$(trim "$(tmux ls | grep -c "^$base_session")")
if [[ "$tmux_nb" == "0" ]]; then
echo "Launching tmux base session $base_session ..."
tmux new-session -s $base_session
else
# Make sure we are not already in a tmux session
if [[ -z "$TMUX" ]]; then
echo "Launching copy of base session $base_session ..."
# Session is is date and time to prevent conflict
session_id=$(date +%Y%m%d%H%M%S)
# Create a new session (without attaching it) and link to base session
# to share windows
tmux new-session -d -t $base_session -s "$session_id"
if [[ "$2" == "1" ]]; then
# Create a new window in that session
tmux new-window
fi
# Attach to the new session & kill it once orphaned
tmux attach-session -t "$session_id" \; set-option destroy-unattached
fi
fi

312
files/vimrc Normal file
View File

@ -0,0 +1,312 @@
set nocompatible " be iMproved
let iCanHazPlugged=1
let vim_plug_file=expand("~/.vim/autoload/plug.vim")
if !filereadable(vim_plug_file)
echo "Installing vim-plug"
echo ""
silent !mkdir -p ~/.vim/autoload
silent !curl -fLo ~/.vim/autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
let iCanHazPlugged=0
endif
call plug#begin()
" My Plugs here:
"
" original repos on github
Plug 'majutsushi/tagbar'
" Plug 'altercation/vim-colors-solarized'
" Github repos of the user 'vim-scripts'
" => can omit the username part for some plugins
Plug 'Raimondi/delimitMate'
Plug 'ctrlp.vim'
Plug 'ervandew/supertab'
Plug 'fisadev/FixedTaskList.vim'
Plug 'fisadev/vim-ctrlp-cmdpalette'
Plug 'fatih/vim-go'
Plug 'https://github.com/scrooloose/nerdtree.git', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] }
Plug 'https://github.com/tpope/vim-fugitive.git'
Plug 'https://github.com/vim-scripts/LustyJuggler.git'
Plug 'lilydjwg/colorizer'
Plug 'moll/vim-bbye'
Plug 'syntastic'
Plug 'terryma/vim-multiple-cursors'
Plug 'vim-airline'
Plug 'nathanaelkane/vim-indent-guides'
Plug 'leafgarland/typescript-vim'
Plug 'guns/xterm-color-table.vim'
" This one is sort of large, so disabling unless I really need it.
" Plug 'klen/python-mode'
" non github repos
" Plug 'git://git.wincent.com/command-t.git'
" ...
call plug#end()
if iCanHazPlugged == 0
echo "Installing plugs"
echo ""
:PlugUpdate
endif
"====[ Set various behavior preferences ]==================
set tabstop=4
set shiftwidth=4
set softtabstop=4
set noexpandtab
set smartindent
filetype indent off
filetype plugin on
syntax on
set t_Co=256
set background=dark
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
"set incsearch " Incremental search
set autowrite " Automatically save before commands like :next and :make
set hidden " Hide buffers when they are abandoned
set mouse=a " Enable mouse usage (all modes) in terminals
set scrolloff=3
set hls
set browsedir=buffer
colorscheme desert
"====[ Change various key bindings ]=======================
vnoremap < <gv
vnoremap > >gv
nnoremap < <<
nnoremap > >>
set nu
" Dvorak it!
no d h
no h j
no t k
no n l
no j d
no l n
no L N
" Replaces s with the :, I prefer having s around...
" no s :
" no S :
" Added benefits
no - $
no _ ^
no N <C-w><C-w>
no D <C-w>W
no S <C-w><C-r>
no H 20<down>
no T 20<up>
no <Leader>h H
no <Leader>m M
no <Leader>l L
map Q <Nop>
nnoremap <C-u> :redo<cr>
nnoremap <F5> :set paste!<CR>
command! W :w
set backspace=2
set wildchar=<Tab> wildmenu wildmode=full
set wildcharm=<C-Z>
" shush the bell
set noerrorbells
set vb
set t_vb=
set directory^=$HOME/.vim_swap/ "put all swap files together in one place
let mapleader = ","
nmap <silent> <Leader>. :LustyJuggler<CR>
let g:LustyJugglerKeyboardLayout = "dvorak"
nnoremap <silent> <Leader>/ :nohlsearch<CR>
nnoremap <Leader>q :Bdelete!<CR>
"====[ Enable ctrlp settings ]=============================
augroup ctrlp
autocmd!
let g:ctrlp_map='<Leader>p'
let g:ctrlp_working_path_mode=''
let g:ctrlp_cmd = 'CtrlPMixed'
set wildignore+=*/tmp/*,*.so,*.swp,*.zip
let g:ctrlp_user_command="find %s ! -wholename '*/.git/*' ! -wholename '*/node_modules/*' ! -wholename '*/report/*' -type f"
augroup END
"====[ Set syntastic options ]=============================
" Syntastic options
let g:syntastic_check_on_open=1
let g:syntastic_enable_signs=1
let g:syntastic_error_symbol='✗'
let g:syntastic_warning_symbol='⚠'
let g:syntastic_enable_balloons = 1
let g:syntastic_auto_loc_list=2
let g:syntastic_loc_list_height=6
let g:syntastic_cpp_checkers = ['clang_checker -std=c++1y']
let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]'
"====[ Set JavaScript options ]============================
augroup jsopts
autocmd!
autocmd BufNewFile,BufRead *.json set ft=javascript
function! TrimWhiteSpace()
%s/\s\+$//e
endfunction
let g:tlist_javascript_settings = 'javascript;a:array;b:boolean;c:class;f:function;m:method;n:number;o:object;p:property;s:string;v:variable'
au FileType javascript setlocal equalprg=~/local/bin/js-beautify\ -f\ -\ -q\ -t\ -w\ 120\ -b\ \"end-expand\"
au FileType javascript set suffixesadd=.js,.json
au FileType javascript set includeexpr=FindRequire(v:fname)
autocmd FileType javascript autocmd FileWritePre * :call TrimWhiteSpace()
autocmd FileType javascript autocmd FileAppendPre * :call TrimWhiteSpace()
autocmd FileType javascript autocmd FilterWritePre * :call TrimWhiteSpace()
autocmd FileType javascript autocmd BufWritePre * :call TrimWhiteSpace()
let g:syntastic_javascript_checkers = ['jshint']
"let g:syntastic_javascript_jshint_args = "--config ~/.jshintrc"
" Code Folding
au FileType javascript syntax region foldBraces start=/{/ end=/}/ transparent fold keepend extend
au FileType javascript setlocal foldmethod=syntax
au FileType javascript setlocal foldlevel=99
augroup END
"====[ Set golang options ]================================
augroup golang
autocmd!
" autocmd FileType go autocmd BufWritePre <buffer> Fmt
let g:go_disable_autoinstall = 1
let g:go_fmt_command = 'goimports'
augroup END
"====[ Set NERDTree options ]==============================
augroup nerdtree
autocmd!
" Make NERDTree start on startup
"autocmd vimenter * if !argc() | NERDTree | endif
nnoremap <silent> <Leader>d :NERDTreeFind<CR>
nnoremap <C-d> :NERDTreeToggle<CR>
" 'Disable' these, they're obnoxious:
let NERDTreeMapOpenInTab='zzzzzz'
let NERDTreeMapOpenInTabSilent='zzzzzzz'
augroup END
let g:airline_powerline_fonts=1
let g:airline_enable_syntastic=1
"let g:airline_theme='dark'
"====[ Enable relative line numbers ]======================
function! NumberToggle()
if(&relativenumber == 1)
set number
set norelativenumber
else
set number
set relativenumber
endif
endfunc
nnoremap <C-r> :call NumberToggle()<cr>
"====[ Make the 81st column stand out ]====================
" EITHER the entire 81st column, full-screen...
"highlight ColorColumn ctermbg=magenta
"set colorcolumn=81
" OR ELSE just the 81st column of wide lines...
highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)
" OR ELSE on April Fools day...
"highlight ColorColumn ctermbg=red ctermfg=blue
"exec 'set colorcolumn=' . join(range(2,80,3), ',')
"====[ Fix listchars ]====================================
exec "set listchars=tab:\uBB\uBB,trail:\uB7,nbsp:~"
nnoremap <F6> :set list!<CR>
"nnoremap <C-l> :set list!<CR>
"====[ Enable dragging ]==================================
vmap <expr> <LEFT> DVB_Drag('left')
vmap <expr> <RIGHT> DVB_Drag('right')
vmap <expr> <UP> DVB_Drag('up')
vmap <expr> <DOWN> DVB_Drag('down')
vmap <expr> D DVB_Duplicate()
"====[ Python settings ]==================================
let g:pymode_indent = 0
let g:pymode_rope = 0
let g:pymode_folding = 0
let g:pymode_lint_ignore = "W191,E251,E203,E221,E126,E128"
let NERDTreeIgnore=['.pyc$']
let g:pymode_doc = 0
au FileType python set noexpandtab
au FileType python set tabstop=4
"====[ General Text Editing settings ]====================
au BufNewFile,BufRead *.md set filetype=markdown
command! Check new|0read !check
"====[ Supertab settings ]================================
let g:SuperTabDefaultCompletionType = "context"
"====[ Mulitple Cursors Settings ]========================
let g:multi_cursor_next_key='<C-n>'
"====[ Task List Settings ]===============================
map <leader>t :TaskList<CR>
"====[ Indent Guides ]====================================
let g:indent_guides_guide_size = 1
autocmd VimEnter * :IndentGuidesEnable
let g:indent_guides_auto_colors = 0
hi IndentGuidesOdd ctermbg=0
hi IndentGuidesEven ctermbg=235
nnoremap <C-l> :IndentGuidesToggle<CR>
"====[ TypeScript ]=======================================
autocmd BufNewFile,BufRead *.ts set ft=typescript
let g:typescript_compiler_options = " -t ES5 -m commonjs"
let g:syntastic_typescript_tsc_args = "-t ES5 -m commonjs"

74
files/zshrc Normal file
View File

@ -0,0 +1,74 @@
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="geoffgarside"
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
# Comment this out to disable bi-weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"
# Uncomment to change how many often would you like to wait before auto-updates occur? (in days)
# export UPDATE_ZSH_DAYS=13
# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want to disable command autocorrection
DISABLE_CORRECTION="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git archlinux fasd golang mercurial node npm screen ssh-agent sublime systemd vundle)
source $ZSH/oh-my-zsh.sh
# Customize to your needs...
export PATH=$PATH:$HOME/bin:$HOME/go/bin:/usr/local/games:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/qt4/bin:$HOME/bin:$HOME/src/go/bin
alias aoeu='setxkbmap us'
alias asdf='setxkbmap dvorak'
alias grep='grep --color --exclude-dir=.svn --exclude-dir=node_modules'
alias egrep='egrep --color --exclude-dir=.svn --exclude-dir=node_modules'
alias vi='vim'
alias ll='ls -al'
alias l='ls -Cf'
alias h='fasd_cd -d'
calc(){ awk "BEGIN{ print $* }" ;}
GREP_OPTIONS='-D skip --binary-files=without-match --ignore-case'
export LESS='RFiX'
export PAGER="less -R -FiX"
alias subo='sublime -n'
export EDITOR=vim
alias asshole='sudo $(fc -l -n -1)'
export GOPATH=~/
setopt interactivecomments
unsetopt beep
bindkey '^[#' pound-insert
if [ -f $HOME/.zshlc ]
then
source $HOME/.zshlc
fi

898
setup.sh
View File

@ -66,610 +66,18 @@ elif [[ "$UNAMESTR" == 'Darwin' ]]; then
true true
fi fi
read -r -d '' GITIGNOREGLOBAL <<'GITIGNOREGLOBAL' git clone git@git.chrissexton.org:cws/dotfiles.git "$HOME"/.dotfiles
# Compiled source # DOTFILES="$HOME"/.dotfiles
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages # cat "$DOTFILES"/files/gitignore_global > "$HOME"/.gitignore_global
############
# It's better to unpack these files and commit the raw source because
# git has its own built in compression methods.
*.7z
*.jar
*.rar
*.zip
*.gz
*.bzip
*.xz
*.lzma
#packing-only formats <"$DOTFILES"/files/gitconfig sed -e "s/%NAME%/$NAME/" | sed -e "s/%EMAIL%/$EMAIL/" > "$HOME"/.gitconfig
*.iso
*.tar
#package management formats cat "$DOTFILES"/files/tmux.conf > "$HOME"/.tmux.conf
*.dmg
*.xpi
*.gem
*.egg
*.deb
*.rpm
# Logs and databases # cat "$DOTFILES"/files/vimrc > "$HOME"/.vimrc
######################
*.log
*.sql
*.sqlite
# OS generated files # if [[ ! -d "$HOME"/.oh-my-zsh ]]; then
######################
.DS_Store
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
# NPM
.npmignore
# Other stuff
*~
.*.sw?
.tern-port
e6Views
vaViews
todo.txt
GITIGNOREGLOBAL
echo "$GITIGNOREGLOBAL" > "$HOME"/.gitignore_global
read -r -d '' GITCONFIG <<'GITCONFIG'
[user]
name = %NAME%
email = %EMAIL%
[core]
autocrlf = input
whitespace = fix,space-before-tab,tab-in-indent,trailing-space
excludesfile = /Users/csexton/.gitignore_global
[alias]
st = status
co = checkout
di = diff
wc = whatchanged
br = branch
lg = "log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
unstage = "reset HEAD --"
spencer = log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cD) %C(bold blue)<%an>%Creset' --author Spencer --since
since = log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cD) %C(bold blue)<%an>%Creset' --author Chris --since
standup = log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cD) %C(bold blue)<%an>%Creset' --author Chris --since yesterday
yolo = "!git commit -am 'DEAL WITH IT' && git push -f"
ribbon = tag --force _ribbon origin/master
ketchup = log --patch --reverse --topo-order --first-parent -m _ribbon..origin/master
mergedown = merge --no-ff --log
g = grep --break --heading --line-number
check = "!git g '// todo'; git g '// fix'; git g '// review'; git g 'debugger';"
incoming = "!git remote update -p; git log ..@{u}"
outgoing = log @{u}..
[branch "master"]
remote = origin
merge = refs/heads/master
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
[merge]
log = true
[url "git@github.com:"]
insteadOf = "gh:"
pushInsteadOf = "github:"
pushInsteadOf = "git://github.com/"
[url "git://github.com/"]
insteadOf = "github:"
[url "git@gist.github.com:"]
insteadOf = "gst:"
pushInsteadOf = "gist:"
pushInsteadOf = "git://gist.github.com/"
[url "git://gist.github.com/"]
insteadOf = "gist:"
[push]
default = simple
[credential]
helper = osxkeychain
GITCONFIG
echo "$GITCONFIG" | sed -e "s/%NAME%/$NAME/" | sed -e "s/%EMAIL%/$EMAIL/" > "$HOME"/.gitconfig
read -r -d '' TMUXCONF <<'TMUXCONF'
# fix colors
set -g default-terminal "screen-256color"
# Arrow movement: nice
bind -n S-down new-window
bind -n S-left prev
bind -n S-right next
bind -n C-S-left swap-pane -U
bind -n C-S-right swap-pane -D
bind -r [ swap-window -t -1
bind -r ] swap-window -t +1
bind r source-file ~/.tmux.conf \; display-message " Config reloaded."
bind R source-file ~/.tmux.conf \; display-message " Config reloaded."
# All sutff for a status bar
set-option -g status on
set-option -g status-interval 2
set-option -g status-utf8 on
set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
set -g status-bg black
set -g status-fg white
set -g status-left "#H: #T"
set -g status-right "%H:%M %d-%h-%Y"
set -g window-status-format "#I:#W"
set -g window-status-current-format "|#I:#W|"
set -g status-interval 1
set -g status-justify left # align window list
# default statusbar colors
set -g status-fg white
set -g status-bg default
# default window title colors
set-window-option -g window-status-fg black
set-window-option -g window-status-bg default
set-window-option -g window-status-attr dim
# active window title colors
set-window-option -g window-status-current-fg white
set-window-option -g window-status-current-bg default
set-window-option -g window-status-current-attr bold
# command/message line colors
set -g message-fg white
set -g message-bg black
set -g message-attr bright
# Fix window size on new connections
set -g aggressive-resize on
# resize
unbind Left
unbind Right
unbind Down
unbind Up
bind -r Left resize-pane -L 2
bind -r Right resize-pane -R 2
bind -r Down resize-pane -D 2
bind -r Up resize-pane -U 2
# Toggle mouse on with ^B m
# Useful for cut/paste interop
bind m \
set -g mouse-resize-pane on \;\
set -g mouse-select-pane on \;\
set -g mouse-select-window on \;\
set -g mode-mouse on \;\
display 'Mouse: ON'
bind C-v paste-buffer
# Toggle mouse off with ^B M
bind M \
set -g mouse-resize-pane off \;\
set -g mouse-select-pane off \;\
set -g mouse-select-window off \;\
set -g mode-mouse off \;\
display 'Mouse: OFF'
set-window-option -g mode-keys vi
unbind T
unbind N
bind -r T clock-mode
bind -r N next-window
# Dvorak vs qwerty vi keys
unbind h
unbind t
unbind d
unbind n
bind -r h select-pane -U
bind -r t select-pane -D
bind -r d select-pane -L
bind -r n select-pane -R
# I use ^b^A to switch panes quickly
unbind ^A
bind ^A select-pane -t :.+
bind ^O select-pane -t :.-
# Fix scrolling?
#set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g history-limit 10000
# Clear terminal scrollback on ^k
bind -n C-k send-keys -R \; clear-history\; send-keys C-m
# Easy splits
bind-key | split-window -h
bind-key \ split-window -h
bind-key - split-window -v
bind-key k kill-pane
bind-key K kill-window
#set-option -g default-command "reattach-to-user-namespace -l zsh"
##CLIPBOARD selection integration
##Requires prefix key before the command key
#Copy tmux paste buffer to CLIPBOARD
#bind C-c run "tmux show-buffer | pbcopy"
#Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
#bind C-v run "tmux set-buffer -- \"$(pbpaste)\"; tmux paste-buffer"
# Nested tmux support
bind-key b send-prefix
# Multiple server support
bind s set -g synchronize-panes
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
bind-key -t vi-copy 'd' cursor-left
bind-key -t vi-copy 'h' cursor-down
bind-key -t vi-copy 't' cursor-up
bind-key -t vi-copy 'n' cursor-right
bind-key -t vi-copy 'l' search-again
# Move panes between windows
bind -r < join-pane -t -1.0
bind -r > join-pane -t +1.0
# Reminder: ^b ! breaks panes out
TMUXCONF
echo "$TMUXCONF" > "$HOME"/.tmux.conf
read -r -d '' VIMRC <<'VIMRC'
set nocompatible " be iMproved
let iCanHazPlugged=1
let vim_plug_file=expand("~/.vim/autoload/plug.vim")
if !filereadable(vim_plug_file)
echo "Installing vim-plug"
echo ""
silent !mkdir -p ~/.vim/autoload
silent !curl -fLo ~/.vim/autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
let iCanHazPlugged=0
endif
call plug#begin()
" My Plugs here:
"
" original repos on github
Plug 'majutsushi/tagbar'
" Plug 'altercation/vim-colors-solarized'
" Github repos of the user 'vim-scripts'
" => can omit the username part for some plugins
Plug 'Raimondi/delimitMate'
Plug 'ctrlp.vim'
Plug 'ervandew/supertab'
Plug 'fisadev/FixedTaskList.vim'
Plug 'fisadev/vim-ctrlp-cmdpalette'
Plug 'fatih/vim-go'
Plug 'https://github.com/scrooloose/nerdtree.git', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] }
Plug 'https://github.com/tpope/vim-fugitive.git'
Plug 'https://github.com/vim-scripts/LustyJuggler.git'
Plug 'lilydjwg/colorizer'
Plug 'moll/vim-bbye'
Plug 'syntastic'
Plug 'terryma/vim-multiple-cursors'
Plug 'vim-airline'
Plug 'nathanaelkane/vim-indent-guides'
Plug 'leafgarland/typescript-vim'
Plug 'guns/xterm-color-table.vim'
" This one is sort of large, so disabling unless I really need it.
" Plug 'klen/python-mode'
" non github repos
" Plug 'git://git.wincent.com/command-t.git'
" ...
call plug#end()
if iCanHazPlugged == 0
echo "Installing plugs"
echo ""
:PlugUpdate
endif
"====[ Set various behavior preferences ]==================
set tabstop=4
set shiftwidth=4
set softtabstop=4
set noexpandtab
set smartindent
filetype indent off
filetype plugin on
syntax on
set t_Co=256
set background=dark
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
"set incsearch " Incremental search
set autowrite " Automatically save before commands like :next and :make
set hidden " Hide buffers when they are abandoned
set mouse=a " Enable mouse usage (all modes) in terminals
set scrolloff=3
set hls
set browsedir=buffer
colorscheme desert
"====[ Change various key bindings ]=======================
vnoremap < <gv
vnoremap > >gv
nnoremap < <<
nnoremap > >>
set nu
" Dvorak it!
no d h
no h j
no t k
no n l
no j d
no l n
no L N
" Replaces s with the :, I prefer having s around...
" no s :
" no S :
" Added benefits
no - $
no _ ^
no N <C-w><C-w>
no D <C-w>W
no S <C-w><C-r>
no H 20<down>
no T 20<up>
no <Leader>h H
no <Leader>m M
no <Leader>l L
map Q <Nop>
nnoremap <C-u> :redo<cr>
nnoremap <F5> :set paste!<CR>
command! W :w
set backspace=2
set wildchar=<Tab> wildmenu wildmode=full
set wildcharm=<C-Z>
" shush the bell
set noerrorbells
set vb
set t_vb=
set directory^=$HOME/.vim_swap/ "put all swap files together in one place
let mapleader = ","
nmap <silent> <Leader>. :LustyJuggler<CR>
let g:LustyJugglerKeyboardLayout = "dvorak"
nnoremap <silent> <Leader>/ :nohlsearch<CR>
nnoremap <Leader>q :Bdelete!<CR>
"====[ Enable ctrlp settings ]=============================
augroup ctrlp
autocmd!
let g:ctrlp_map='<Leader>p'
let g:ctrlp_working_path_mode=''
let g:ctrlp_cmd = 'CtrlPMixed'
set wildignore+=*/tmp/*,*.so,*.swp,*.zip
let g:ctrlp_user_command="find %s ! -wholename '*/.git/*' ! -wholename '*/node_modules/*' ! -wholename '*/report/*' -type f"
augroup END
"====[ Set syntastic options ]=============================
" Syntastic options
let g:syntastic_check_on_open=1
let g:syntastic_enable_signs=1
let g:syntastic_error_symbol='✗'
let g:syntastic_warning_symbol='⚠'
let g:syntastic_enable_balloons = 1
let g:syntastic_auto_loc_list=2
let g:syntastic_loc_list_height=6
let g:syntastic_cpp_checkers = ['clang_checker -std=c++1y']
let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]'
"====[ Set JavaScript options ]============================
augroup jsopts
autocmd!
autocmd BufNewFile,BufRead *.json set ft=javascript
function! TrimWhiteSpace()
%s/\s\+$//e
endfunction
let g:tlist_javascript_settings = 'javascript;a:array;b:boolean;c:class;f:function;m:method;n:number;o:object;p:property;s:string;v:variable'
au FileType javascript setlocal equalprg=~/local/bin/js-beautify\ -f\ -\ -q\ -t\ -w\ 120\ -b\ \"end-expand\"
au FileType javascript set suffixesadd=.js,.json
au FileType javascript set includeexpr=FindRequire(v:fname)
autocmd FileType javascript autocmd FileWritePre * :call TrimWhiteSpace()
autocmd FileType javascript autocmd FileAppendPre * :call TrimWhiteSpace()
autocmd FileType javascript autocmd FilterWritePre * :call TrimWhiteSpace()
autocmd FileType javascript autocmd BufWritePre * :call TrimWhiteSpace()
let g:syntastic_javascript_checkers = ['jshint']
"let g:syntastic_javascript_jshint_args = "--config ~/.jshintrc"
" Code Folding
au FileType javascript syntax region foldBraces start=/{/ end=/}/ transparent fold keepend extend
au FileType javascript setlocal foldmethod=syntax
au FileType javascript setlocal foldlevel=99
augroup END
"====[ Set golang options ]================================
augroup golang
autocmd!
" autocmd FileType go autocmd BufWritePre <buffer> Fmt
let g:go_disable_autoinstall = 1
let g:go_fmt_command = 'goimports'
augroup END
"====[ Set NERDTree options ]==============================
augroup nerdtree
autocmd!
" Make NERDTree start on startup
"autocmd vimenter * if !argc() | NERDTree | endif
nnoremap <silent> <Leader>d :NERDTreeFind<CR>
nnoremap <C-d> :NERDTreeToggle<CR>
" 'Disable' these, they're obnoxious:
let NERDTreeMapOpenInTab='zzzzzz'
let NERDTreeMapOpenInTabSilent='zzzzzzz'
augroup END
let g:airline_powerline_fonts=1
let g:airline_enable_syntastic=1
"let g:airline_theme='dark'
"====[ Enable relative line numbers ]======================
function! NumberToggle()
if(&relativenumber == 1)
set number
set norelativenumber
else
set number
set relativenumber
endif
endfunc
nnoremap <C-r> :call NumberToggle()<cr>
"====[ Make the 81st column stand out ]====================
" EITHER the entire 81st column, full-screen...
"highlight ColorColumn ctermbg=magenta
"set colorcolumn=81
" OR ELSE just the 81st column of wide lines...
highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)
" OR ELSE on April Fools day...
"highlight ColorColumn ctermbg=red ctermfg=blue
"exec 'set colorcolumn=' . join(range(2,80,3), ',')
"====[ Fix listchars ]====================================
exec "set listchars=tab:\uBB\uBB,trail:\uB7,nbsp:~"
nnoremap <F6> :set list!<CR>
"nnoremap <C-l> :set list!<CR>
"====[ Enable dragging ]==================================
vmap <expr> <LEFT> DVB_Drag('left')
vmap <expr> <RIGHT> DVB_Drag('right')
vmap <expr> <UP> DVB_Drag('up')
vmap <expr> <DOWN> DVB_Drag('down')
vmap <expr> D DVB_Duplicate()
"====[ Python settings ]==================================
let g:pymode_indent = 0
let g:pymode_rope = 0
let g:pymode_folding = 0
let g:pymode_lint_ignore = "W191,E251,E203,E221,E126,E128"
let NERDTreeIgnore=['.pyc$']
let g:pymode_doc = 0
au FileType python set noexpandtab
au FileType python set tabstop=4
"====[ General Text Editing settings ]====================
au BufNewFile,BufRead *.md set filetype=markdown
command! Check new|0read !check
"====[ Supertab settings ]================================
let g:SuperTabDefaultCompletionType = "context"
"====[ Mulitple Cursors Settings ]========================
let g:multi_cursor_next_key='<C-n>'
"====[ Task List Settings ]===============================
map <leader>t :TaskList<CR>
"====[ Indent Guides ]====================================
let g:indent_guides_guide_size = 1
autocmd VimEnter * :IndentGuidesEnable
let g:indent_guides_auto_colors = 0
hi IndentGuidesOdd ctermbg=0
hi IndentGuidesEven ctermbg=235
nnoremap <C-l> :IndentGuidesToggle<CR>
"====[ TypeScript ]=======================================
autocmd BufNewFile,BufRead *.ts set ft=typescript
let g:typescript_compiler_options = " -t ES5 -m commonjs"
let g:syntastic_typescript_tsc_args = "-t ES5 -m commonjs"
VIMRC
echo "$VIMRC" > "$HOME"/.vimrc
if [[ ! -d ~/.oh-my-zsh ]]; then
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
fi fi
@ -677,292 +85,10 @@ if [[ ! "$SHELL" =~ .*zsh ]]; then
chsh -s "$(which zsh)" chsh -s "$(which zsh)"
fi fi
read -r -d '' ZSHRC <<'ZSHRC' cat "$DOTFILES"/files/zshrc > "$HOME"/.zshrc
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. mkdir -p "$HOME"/bin
# Look in ~/.oh-my-zsh/themes/ cat "$DOTFILES"/files/tmux.sh > "$HOME"/bin/tmux.sh
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="geoffgarside"
# Example aliases mkdir -p "$HOME"/.irssi
# alias zshconfig="mate ~/.zshrc" <"$DOTFILES"/files/irssiconfig sed -e "s/%PASSWORD%/$IRCPASS/" | sed -e "s/%NICK%/$IRCNICK/" | sed -e "s/%SERVER%/$IRCSERVER/" | sed -e "s/%PORT%/$IRCPORT/" > "$HOME"/.irssi/config
# alias ohmyzsh="mate ~/.oh-my-zsh"
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
# Comment this out to disable bi-weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"
# Uncomment to change how many often would you like to wait before auto-updates occur? (in days)
# export UPDATE_ZSH_DAYS=13
# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want to disable command autocorrection
DISABLE_CORRECTION="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git archlinux fasd golang mercurial node npm screen ssh-agent sublime systemd vundle)
source $ZSH/oh-my-zsh.sh
# Customize to your needs...
export PATH=$PATH:$HOME/bin:$HOME/go/bin:/usr/local/games:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/qt4/bin:$HOME/bin:$HOME/src/go/bin
alias aoeu='setxkbmap us'
alias asdf='setxkbmap dvorak'
alias grep='grep --color --exclude-dir=.svn --exclude-dir=node_modules'
alias egrep='egrep --color --exclude-dir=.svn --exclude-dir=node_modules'
alias vi='vim'
alias ll='ls -al'
alias l='ls -Cf'
alias h='fasd_cd -d'
calc(){ awk "BEGIN{ print $* }" ;}
GREP_OPTIONS='-D skip --binary-files=without-match --ignore-case'
export LESS='RFiX'
export PAGER="less -R -FiX"
alias subo='sublime -n'
export EDITOR=vim
alias asshole='sudo $(fc -l -n -1)'
export GOPATH=~/
setopt interactivecomments
unsetopt beep
bindkey '^[#' pound-insert
if [ -f $HOME/.zshlc ]
then
source $HOME/.zshlc
fi
ZSHRC
echo "$ZSHRC" > "$HOME"/.zshrc
mkdir -p ~/bin
read -r -d '' TMUXSH <<'TMUXSH'
#!/bin/bash
#
# Modified TMUX start script from:
# http://forums.gentoo.org/viewtopic-t-836006-start-0.html
#
# Store it to `~/bin/tmx` and issue `chmod +x`.
#
# Works because bash automatically trims by assigning to variables and by
# passing arguments
trim() { echo $1; }
base_session="$1"
if [[ -z "$1" ]]; then
base_session="default"
fi
# Only because I often issue `ls` to this script by accident
if [[ "$1" == "ls" ]]; then
tmux ls
exit
fi
# This actually works without the trim() on all systems except OSX
tmux_nb=$(trim `tmux ls | grep "^$base_session" | wc -l`)
if [[ "$tmux_nb" == "0" ]]; then
echo "Launching tmux base session $base_session ..."
tmux new-session -s $base_session
else
# Make sure we are not already in a tmux session
if [[ -z "$TMUX" ]]; then
echo "Launching copy of base session $base_session ..."
# Session is is date and time to prevent conflict
session_id=`date +%Y%m%d%H%M%S`
# Create a new session (without attaching it) and link to base session
# to share windows
tmux new-session -d -t $base_session -s $session_id
if [[ "$2" == "1" ]]; then
# Create a new window in that session
tmux new-window
fi
# Attach to the new session & kill it once orphaned
tmux attach-session -t $session_id \; set-option destroy-unattached
fi
fi
TMUXSH
echo "$TMUXSH" >~/bin/tmux.sh
mkdir -p ~/.irssi
read -r -d '' IRSSI <<'IRSSI'
servers = (
{
address = "%SERVER%";
chatnet = "net";
port = "%PORT%";
password = "%PASSWORD%";
use_ssl = "yes";
ssl_verify = "no";
autoconnect = "yes";
}
);
chatnets = {
net = { type = "IRC"; };
};
channels = (
);
aliases = {
J = "join";
LEAVE = "part";
W = "who";
Q = "QUERY";
};
statusbar = {
# formats:
# when using {templates}, the template is shown only if it's argument isn't
# empty unless no argument is given. for example {sb} is printed always,
# but {sb $T} is printed only if $T isn't empty.
items = {
# start/end text in statusbars
barstart = "{sbstart}";
barend = "{sbend}";
topicbarstart = "{topicsbstart}";
topicbarend = "{topicsbend}";
# treated "normally", you could change the time/user name to whatever
time = "{sb $Z}";
user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
# treated specially .. window is printed with non-empty windows,
# window_empty is printed with empty windows
window = "{sb $winref:$tag/$itemname{sbmode $M}}";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "{prompt $[.15]itemname}";
prompt_empty = "{prompt $winname}";
topic = " $topic";
topic_empty = " Irssi v$J - http://www.irssi.org";
# all of these treated specially, they're only displayed when needed
lag = "{sb Lag: $0-}";
act = "{sb Act: $0-}";
more = "-- more --";
};
# there's two type of statusbars. root statusbars are either at the top
# of the screen or at the bottom of the screen. window statusbars are at
# the top/bottom of each split window in screen.
default = {
# the "default statusbar" to be displayed at the bottom of the window.
# contains all the normal items.
window = {
disabled = "no";
# window, root
type = "window";
# top, bottom
placement = "bottom";
# number
position = "1";
# active, inactive, always
visible = "active";
# list of items in statusbar in the display order
items = {
barstart = { priority = "100"; };
time = { };
user = { };
window = { };
topic = { };
window_empty = { };
lag = { priority = "-1"; };
act = { priority = "10"; };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
# statusbar to use in inactive split windows
window_inact = {
type = "window";
placement = "bottom";
position = "1";
visible = "inactive";
items = {
barstart = { priority = "100"; };
window = { };
window_empty = { };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
# we treat input line as yet another statusbar :) It's possible to
# add other items before or after the input line item.
prompt = {
type = "root";
placement = "bottom";
# we want to be at the bottom always
position = "100";
visible = "always";
items = {
prompt = { priority = "-1"; };
prompt_empty = { priority = "-1"; };
# treated specially, this is the real input line.
input = { priority = "10"; };
};
};
# topicbar
topic = {
type = "root";
placement = "nowhere";
position = "100000";
visible = "never";
items = {
topicbarstart = { priority = "100"; };
topic = { };
topic_empty = { };
topicbarend = { priority = "100"; alignment = "right"; };
};
};
};
};
settings = {
core = {
real_name = "%NICK%";
user_name = "%NICK%";
nick = "%NICK%";
};
"fe-text" = { actlist_sort = "refnum"; };
"fe-common/core" = {
theme = "dma147";
completion_char = ",";
autolog = "yes";
};
};
hilights = (
{ text = "%NICK%"; nick = "yes"; word = "yes"; },
{ text = "chris"; nick = "yes"; word = "yes"; }
);
logs = { };
IRSSI
echo "$IRSSI" | sed -e "s/%PASSWORD%/$IRCPASS/" | sed -e "s/%NICK%/$IRCNICK/" | sed -e "s/%SERVER%/$IRCSERVER/" | sed -e "s/%PORT%/$IRCPORT/" > "$HOME"/.irssi/config