Skip to content

Instantly share code, notes, and snippets.

@febrianrendak
Created July 12, 2017 08:08
Show Gist options
  • Select an option

  • Save febrianrendak/b81d0612c16bab4c1336eddb896d2674 to your computer and use it in GitHub Desktop.

Select an option

Save febrianrendak/b81d0612c16bab4c1336eddb896d2674 to your computer and use it in GitHub Desktop.

Revisions

  1. febrianrendak created this gist Jul 12, 2017.
    160 changes: 160 additions & 0 deletions .tmux.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,160 @@
    # Our .tmux.conf file

    # Setting the prefix from C-b to C-a
    # START:prefix

    set -g prefix C-q
    # END:prefix
    # Free the original Ctrl-b prefix keybinding
    # START:unbind
    unbind C-b
    # END:unbind
    #setting the delay between prefix and command
    # START:delay
    set -sg escape-time 0
    # END:delay
    # Ensure that we can send Ctrl-A to other apps
    # START:bind_prefix
    bind C-a send-prefix
    # END:bind_prefix

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

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

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

    # splitting panes
    # START:panesplit
    bind | split-window -h
    bind - split-window -v
    # END:panesplit

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

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

    # Pane resizing
    # START:paneresize
    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
    # END:paneresize
    # mouse support - set to on if you want to use the mouse
    # START:mouse
    #setw -g mode-mouse off
    # END:mouse
    #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
    # START:termcolor
    # set -g default-terminal "screen-256color"
    # END:termcolor

    # enable activity alerts
    #START:activity
    setw -g monitor-activity on
    set -g visual-activity on
    #END:activity

    # set the status line's colors
    # START:statuscolor
    set -g status-fg white
    set -g status-bg black
    # END:statuscolor

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

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

    # pane colors
    # START:panecolors
    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
    # END:panecolors

    # Command / message line
    # START:cmdlinecolors
    set -g message-fg white
    set -g message-bg black
    set -g message-attr bright
    # END:cmdlinecolors

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

    #START:utf8
    set -g status-utf8 on
    #END:utf8

    # Status line right side
    # 15% | 28 Nov 18:15
    # START: statusright
    set -g status-right "#[fg=cyan]%d %b %R"
    # END:statusright

    # Update the status bar every sixty seconds
    # START:updateinterval
    set -g status-interval 60
    # END:updateinterval

    # Center the window list
    # START:centerwindowlist
    set -g status-justify centre
    # END:centerwindowlist

    # max output increased to 100k
    set-option -g history-limit 100000

    # enable vi keys.
    # START:vikeys
    setw -g mode-keys vi
    # END:vikeys

    unbind [
    bind Escape copy-mode
    unbind p
    bind p paste-buffer
    bind -t vi-copy 'v' begin-selection
    bind -t vi-copy 'y' copy-selection

    bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
    set -g default-shell /bin/zsh
    set -g default-command "/bin/zsh --login"