Skip to content

Instantly share code, notes, and snippets.

@mythicalprogrammer
Created July 5, 2013 02:19

Revisions

  1. mythicalprogrammer created this gist Jul 5, 2013.
    113 changes: 113 additions & 0 deletions .tmux.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,113 @@
    # Our .tmux.conf file

    # Setting the prefix from C-b to C-a
    set -g prefix C-a

    # Free the original Ctrl-b prefix keybinding
    unbind C-b

    #setting the delay between prefix and command
    set -sg escape-time 1

    # Ensure that we can send Ctrl-A to other apps
    bind C-a send-prefix

    # Set the base index for windows to 1 instead of 0
    set -g base-index 1

    # Set the base index for panes to 1 instead of 0
    setw -g pane-base-index 1

    # Reload the file with Prefix r
    bind r source-file ~/.tmux.conf \; display "Reloaded!"

    # splitting panes
    bind | split-window -h
    bind - split-window -v

    # moving between panes
    bind h select-pane -L
    bind j select-pane -D
    bind k select-pane -U
    bind l select-pane -R

    # Quick pane selection
    bind -r C-h select-window -t :-
    bind -r C-l select-window -t :+

    # Pane resizing
    bind -r H resize-pane -L 5
    bind -r J resize-pane -D 5
    bind -r K resize-pane -U 5
    bind -r L resize-pane -R 5

    # mouse support - set to on if you want to use the mouse
    setw -g mode-mouse off
    set -g mouse-select-pane off
    set -g mouse-resize-pane off
    set -g mouse-select-window off

    # Set the default terminal mode to 256color mode
    set -g default-terminal "screen-256color"

    # enable activity alerts
    setw -g monitor-activity on
    set -g visual-activity on

    # set the status line's colors
    set -g status-fg white
    set -g status-bg black

    # set the color of the window list
    setw -g window-status-fg cyan
    setw -g window-status-bg default
    setw -g window-status-attr dim

    # set colors for the active window
    setw -g window-status-current-fg white
    setw -g window-status-current-bg red
    setw -g window-status-current-attr bright

    # pane colors
    set -g pane-border-fg green
    set -g pane-border-bg black
    set -g pane-active-border-fg white
    set -g pane-active-border-bg yellow

    # Command / message line
    set -g message-fg white
    set -g message-bg black
    set -g message-attr bright

    # Status line left side
    set -g status-left-length 40
    set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
    set -g status-utf8 on

    # Status line right side
    # 15% | 28 Nov 18:15
    set -g status-right "#(~/battery Discharging) | #[fg=cyan]%d %b %R"

    # Update the status bar every sixty seconds
    set -g status-interval 60

    # Center the window list
    set -g status-justify centre

    # enable vi keys.
    setw -g mode-keys vi

    # Open panes in the same directory using the tmux-panes script
    unbind v
    unbind n
    bind v send-keys " ~/tmux-panes -h" C-m
    bind n send-keys " ~/tmux-panes -v" C-m

    # Maximize and restore a pane
    unbind Up
    bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
    unbind Down
    bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp

    # Log output to a text file on demand
    bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"