#!/bin/bash -e CMD="$0" [ "$NAME" ] || NAME= [ "$EMAIL" ] || EMAIL= [ "$IRCSERVER" ] || IRCSERVER=irc.freenode.net [ "$IRCPORT" ] || IRCPORT=6667 [ "$IRCNICK" ] || IRCNICK=coward [ "$IRCPASS" ] || IRCPASS= die() { echo "$1" 1>&2 && show_help && [ "$2" ] && [ "$2" -ge 0 ] && exit "$2" || exit 1; } # Show help function to be used below show_help() { awk 'NR>1{print} /^(###|$)/{exit}' "$CMD" echo "USAGE: $(basename "$CMD") [arguments]" echo "ARGS:" MSG=$(awk '/^NARGS=-1; while/,/^esac; done/' "$CMD" | sed -e 's/^[[:space:]]*/ /' -e 's/|/, /' -e 's/)//' | grep '^ -') EMSG=$(eval "echo \"$MSG\"") echo "$EMSG" } # Parse command line options (odd formatting to simplify show_help() above) NARGS=-1; while [ "$#" -ne "$NARGS" ]; do NARGS=$#; case $1 in # SWITCHES -h|--help) # This help message show_help; exit 1; ;; -n|--name) # Name for git shift && NAME="$1" && shift; ;; -e|--email) # Email for git shift && EMAIL="$1" && shift; ;; -s|--server) # server for irssi shift && IRCSERVER="$1" && shift; ;; -P|--port) # port for irssi shift && IRCPORT="$1" && shift; ;; -N|--nick) # nick for irssi shift && IRCNICK="$1" && shift; ;; -p|--password) # password for irssi shift && IRCPASS="$1" && shift; ;; esac; done [ "$NAME" ] || die "You must provide a name!" [ "$EMAIL" ] || die "You must provide an email!" fn_distro(){ if [ -f /etc/lsb-release ]; then os=$(lsb_release -s -d) elif [ -f /etc/debian_version ]; then os="Debian $(cat /etc/debian_version)" elif [ -f /etc/redhat-release ]; then os=$(cat /etc/redhat-release) else os="$(uname -s) $(uname -r)" fi } UNAMESTR=$(uname) if [[ "$UNAMESTR" == 'Linux' ]]; then fn_distro if [[ "$os" == Ubuntu* ]]; then sudo apt-get install -y build-essential git irssi vim-nox zsh tmux fi elif [[ "$UNAMESTR" == 'Darwin' ]]; then # Probably need to set up brew and brew install some stuff here... true fi read -r -d '' GITIGNOREGLOBAL <<'GITIGNOREGLOBAL' # 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 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 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 no D W no S no H 20 no T 20 no h H no m M no l L map Q nnoremap :redo nnoremap :set paste! command! W :w set backspace=2 set wildchar= wildmenu wildmode=full set wildcharm= " 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 . :LustyJuggler let g:LustyJugglerKeyboardLayout = "dvorak" nnoremap / :nohlsearch nnoremap q :Bdelete! "====[ Enable ctrlp settings ]============================= augroup ctrlp autocmd! let g:ctrlp_map='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 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 d :NERDTreeFind nnoremap :NERDTreeToggle " '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 :call NumberToggle() "====[ 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 :set list! "nnoremap :set list! "====[ Enable dragging ]================================== vmap DVB_Drag('left') vmap DVB_Drag('right') vmap DVB_Drag('up') vmap DVB_Drag('down') vmap 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='' "====[ Task List Settings ]=============================== map t :TaskList "====[ 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 :IndentGuidesToggle "====[ 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 fi if [[ ! "$SHELL" =~ .*zsh ]]; then chsh -s "$(which zsh)" fi read -r -d '' ZSHRC <<'ZSHRC' # 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 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