Last active
May 16, 2016 15:56
-
-
Save zjrosen1/87339a1a53c375f6e026 to your computer and use it in GitHub Desktop.
Tmux Configuration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |_ _ __ ___ _ ___ __ # | |
# | __| '_ ` _ \| | | \ \/ / # | |
# | |_| | | | | | |_| |> < # | |
# \__|_| |_| |_|\__,_/_/\_\ # | |
# 1 0 | VIM | 2:bash 20:04 | |
# [ Reset Prefix ] {{{1 | |
set -g prefix C-a | |
bind-key a send-prefix # for nested tmux sessions | |
# }}} | |
# [ Global Options ] {{{1 | |
set-option -g history-limit 15000 # Longer history | |
set -s escape-time 1 | |
set -g base-index 1 # Windows start at 1 | |
set -g pane-base-index 1 # Panes start at 1 | |
set-window-option -g utf8 on | |
set-window-option -g xterm-keys on # for vim | |
set-window-option -g mode-keys vi # vi key | |
set-window-option -g monitor-activity on | |
#set-option -g status-position top # move status bar to the top | |
setw -g automatic-rename # Automatically set window title | |
set -g terminal-overrides 'xterm*:smcup@:rmcup@' | |
# [ Mouse ] {{{2 | |
# use mouse # More on mouse support http://floriancrouzat.net/2010/07/run-tmux-with-mouse-support-in-mac-os-x-terminal-app/ | |
setw -g mode-mouse on | |
#setw -g mouse-resize-pane on | |
#set -g mouse-select-window on | |
set -g mouse-select-pane on | |
# }}} | |
# [ Colors ] {{{2 | |
# TODO wtf is this | |
setw -g mode-bg black | |
set-option -g default-terminal "screen-256color" #"xterm-256color" # "screen-256color" | |
# Panes Currently All White | |
set-option -g pane-active-border-fg white | |
# set-option -g pane-border-fg white | |
set-option -g pane-active-border-fg black | |
set-option -g pane-border-fg black | |
set-window-option -g clock-mode-colour colour250 # Clock Color | |
set-window-option -g clock-mode-style 24 | |
# }}} | |
# }}} | |
# [ Status Bar ] {{{ | |
set-option -g status-utf8 on | |
set-option -g status-interval 5 | |
set-option -g visual-activity on | |
# Default Window Title Colors | |
set-option -g status-bg colour233 | |
set-option -g status-fg colour240 | |
# Active Window Title Colors | |
set-window-option -g window-status-current-fg colour220 | |
set-window-option -g window-status-current-bg colour233 | |
set-window-option -g window-status-current-fg colour246 | |
setw -g window-status-current-attr default | |
# New Activity Title Colors | |
set-option -gw window-status-activity-bg colour233 | |
set-option -gw window-status-activity-fg red | |
# Left Status | |
set-option -g status-left-length 30 | |
set-option -g status-left-bg colour233 | |
set-option -g status-left-fg colour220 | |
#set-option -g status-left '#S #[fg=colour220]#I #[fg=colour220]#P' | |
#set-option -g status-left '#[bg=colour178] #[default] ' | |
#set-option -g status-left '' | |
# Gold Left Status | |
#set-option -g status-left '#[fg=colour220]#S #[fg=colour220]#I #[fg=colour220]#P' | |
# Gray Left Status | |
set-option -g status-left '#[fg=colour240]#S #[fg=colour240]#I #[fg=colour240]#P' | |
# Window Status | |
set-option -g status-justify centre | |
setw -g window-status-current-format "#[fg=colour220]|#[default] #W #[fg=colour220]|#[default]" | |
#setw -g window-status-current-format "#[fg=black]|#[default] #W #[fg=black]|#[default]" | |
# Right Status | |
set-option -g status-right '#[fg=colour240]%R #[default]' | |
# Titles (window number, program name, active (or not) | |
set-option -g set-titles on | |
set-option -g set-titles-string '#H:#S.#I.#P #W #T' | |
# message text | |
set-option -g message-bg colour233 | |
set-option -g message-fg colour220 | |
# }}} | |
# [ Unbindings ] {{{1 | |
#unbind [ # copy mode bound to escape key | |
unbind j | |
unbind C-b # unbind default leader key | |
unbind '"' # unbind horizontal split | |
unbind % # unbind vertical split | |
# }}} | |
# [ Bindings ] {{{1 | |
# reload tmux conf | |
bind-key R source-file ~/.tmux.conf \; display-message "Config reloaded..." | |
#bind Escape copy-mode | |
bind-key - split-window -v # split pane horizontally | |
bind-key \ split-window -h # split pane vertically | |
# list panes | |
bind-key Space list-panes | |
# break-pane | |
bind-key Enter break-pane | |
# join-pane [-dhv] [-l size | -p percentage] [-s src-pane] | |
# [-t:dst-window.dst-pane] (destination window (dot) destination pane | |
# (alias: joinp) | |
# | |
#bind C-j command-prompt "joinp" | |
#bind C-j command-prompt "join-pane" | |
#bind-key j command-prompt "join-pane -s '%%'" | |
#bind-key j command-prompt "joinp -t:0" | |
#bind-key Space command-prompt "joinp -t:%%" # %% = prompt for window.pane [-V|H] # vert|hor split | |
# }}} | |
# [ Windows ] {{{1 | |
bind C-j previous-window | |
bind C-k next-window | |
bind-key C-a last-window # C-a C-a for last active window | |
bind r command-prompt "rename-window %%" | |
bind s command-prompt "rename-session %%" | |
# By default, all windows in a session are constrained to the size of the | |
# smallest client connected to that session, | |
# even if both clients are looking at different windows. | |
# It seems that in this particular case, Screen has the better default | |
# where a window is only constrained in size if a smaller client | |
# is actively looking at it. | |
setw -g aggressive-resize on | |
# }}} | |
# [ Panes ] {{{1 | |
# [ Navigation ] {{{2 | |
# use the vim motion keys to move between panes | |
bind-key h select-pane -L | |
bind-key j select-pane -D | |
bind-key k select-pane -U | |
bind-key l select-pane -R | |
# }}} | |
# [ Resizing ] {{{2 | |
bind-key -r H resize-pane -L 5 | |
bind-key -r J resize-pane -D 5 | |
bind-key -r K resize-pane -U 5 | |
bind-key -r L resize-pane -R 5 | |
bind-key -r Y resize-pane -L 1 | |
bind-key -r U resize-pane -D 1 | |
bind-key -r I resize-pane -U 1 | |
bind-key -r O resize-pane -R 1 | |
# }}} | |
# [ Layouts ] {{{2 | |
bind o select-layout "active-only" | |
bind M-- select-layout "even-vertical" | |
bind M-\ select-layout "even-horizontal" | |
bind M-r rotate-window | |
# }}} | |
# }}} | |
# [ Extras ] {{{1 | |
# vi movement keys | |
# set-option -g status-keys vi | |
# }}} | |
# vim: set foldmethod=marker: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
👍