Skip to content

Instantly share code, notes, and snippets.

@joshhunt
Last active August 29, 2015 14:27
Show Gist options
  • Select an option

  • Save joshhunt/3e90f8d9a25ce4a31f13 to your computer and use it in GitHub Desktop.

Select an option

Save joshhunt/3e90f8d9a25ce4a31f13 to your computer and use it in GitHub Desktop.
tmux conf
###
### You'll need to install the Powerline fonts and set them up for your terminal
### https://github.com/powerline/fonts
###
#
# -- Init -------------------------------------------------
#
# Set proper character encoding
set -g utf8
set -g status-utf8 on
set-window-option -g utf8 on
# Make tmux display things in 256 colors
set -g default-terminal "screen-256color"
set-option -g default-command "reattach-to-user-namespace -l fish"
# Rebind the prefix key to something easier
set -g prefix C-a
bind a send-prefix
# reload ~/.tmux.conf using PREFIX r
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# Use ` for renaming the window prompt as well as ,
bind ` command-prompt -I '#W' "rename-window '%%'"
#
# -- Display ----------------------------------------------
#
# Set scrollback history to 10000 (10k)
set -g history-limit 10000
# Renumber windows when closing them.
set -g renumber-windows on
# set terminal title
set -g set-titles on
set -g set-titles-string '❐ #S ● #W'
# slightly longer status messages and pane indicator display time
set -g display-panes-time 100
set -g display-time 1000
# redraw status line every 10 seconds
set -g status-interval 10
#
# -- Navigation -------------------------------------------
#
# Don't index panes and windows from 0
set-option -g base-index 1
setw -g pane-base-index 1
# Turn on mouse mode for everything
set-option -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on
# And some handy shortcuts for switching panes, but you probably
# won't use them because we have mouse mode turned on
bind-key Up select-pane -U
bind-key Down select-pane -D
bind-key Left select-pane -L
bind-key Right select-pane -R
# Handy shortcuts for splitting the pane
bind | split-window -h
bind - split-window -v
# Sync panes to type in all panes at once. Useful for
# administrating multiple servers at once
bind C-s set-window-option synchronize-panes
# Go to window by name
bind C-f command-prompt -p find-session 'switch-client -t %%'
# maximize current pane
bind + resize-pane -Z
#
# -- Fancy Colours ----------------------------------------
#
# set pane colors - hilight the active pane
set -g pane-border-style fg=colour238
set -g pane-active-border-style fg=colour39
# more pane colors - need more explamantion
set -g display-panes-active-colour colour39
set -g display-panes-colour colour39
# Messages
set -g message-style fg=colour16,bg=colour226,bold
set -g message-command-style fg=colour16,bg=colour226,bold
# Windows mode (idk what this is)
setw -g mode-style fg=colour16,bg=colour226,bold
# Status line
set -g status-style fg=colour253,bg=colour232
# Left status message (session name)
set -g status-left-length 32
set -g status-left "#[fg=colour16,bg=colour226,bold] ❐ #S #[fg=colour226,bg=colour232,nobold]"
# Window status (bottom tabs) - inactive
setw -g window-status-style fg=colour245,bg=colour232
setw -g window-status-format "#W "
# Window status (bottom tabs) - current
setw -g window-status-current-format "#[fg=colour232,bg=colour16]#[fg=colour39,bg=colour16,bold]#W #[fg=colour16,bg=colour232,nobold]"
# Ensure previous window status is styled as inactive
setw -g window-status-last-style default,fg=default
# Bell - idk what this does...
setw -g window-status-bell-style fg=colour226,bg=default,bold
# Left status message (date and time)
set -g status-right-length 64
set -g status-right "#(battery -t) #[fg=colour245] | %a %h-%d %H:%M"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment