/ Linux

Tmux

I decided to work a bit on my shell and tmux setup on my laptop.

I recently switched to zsh instead of fish, and in the process I learned about Tmuxinator.

Tmuxinator allows me to create configurations that will specify things like ruby version and commands that need to be run prior to the shells starting, and specify tmux screens.

My tmux.conf is pretty simple:

setw -g mode-mouse on

unbind %
unbind .
unbind -
bind . split-window -h
bind - split-window -v
bind o break-pane

bind-key R source-file ~/.tmux.conf
set-option -g prefix C-a

set -g history-limit 5000
set -g repeat-time 1000
set -g display-time 500

set -g mouse-select-pane on
set -g mouse-select-window on
set -g mouse-resize-pane on
setw -g mode-mouse on

set -g base-index 1
set -g status-bg black
set -g status-fg white
set -g status-left '#[fg=green]#H'
set -g status-right '#[fg=yellow]#(uptime | cut -d "," -f 2-)'

set -g default-terminal "xterm-256color"
setw -g utf8 on

and a typical Tmuxinator config looks like this:

project_name: Octopress
project_root: ~/octopress.thorerik.net
socket_name: octopress 
pre: mate .
#rvm: 1.9.3 #not using this since the project got rvm configuration
tabs:
  - editor:
      layout: main-vertical
      panes:
        - 
        - rake preview
        - top
  - server: ssh gw-01

When I want to launch a project I just enter
mux

I use zsh and oh-my-zsh, with oh-my-zsh I load the following plugins to provide tmuxinator integration:
plugins=(tmux tmuxinator)

I will cover zsh more on a later date.