Created
May 30, 2019 20:37
-
-
Save camwhite/f925caedd7daf71aebf171d42e2b40eb to your computer and use it in GitHub Desktop.
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-option -g default-shell /bin/zsh # Use zsh as default shell | |
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@' | |
#set -ga terminal-overrides ',xterm-256color:Tc' | |
#set -g -a terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q' | |
# [ Mouse ] {{{2 | |
# use mouse # More on mouse support http://floriancrouzat.net/2010/07/run-tmux-with-mouse-support-in-mac-os-x-terminal-app/ | |
#set -g mode-mouse on | |
#set -g mouse-resize-pane on | |
#set -g mouse-select-pane on | |
#set -g mouse-select-window 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 "Live Views: #[fg=colour220]#(curl -H \'Client-ID: wh10iximmj0dh5ku7bgqlg4a28ynn0\' -X GET https://api.twitch.tv/helix/streams\?user_login\=camandcode | json data[0].viewer_count )#[default] | #[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 W resize-pane -D 1 | |
bind-key -r S resize-pane -U 1 | |
bind-key -r O resize-pane -R 1 | |
# }}} | |
# [ Swapping ] {{{2 | |
bind-key { swap-pane -U | |
bind-key } swap-pane -D | |
# }}} | |
# [ 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 | |
set -g default-shell $SHELL | |
#set -g default-command "reattach-to-user-namespace -l ${SHELL}" | |
# List of plugins | |
set -g @plugin 'tmux-plugins/tpm' | |
set -g @plugin 'tmux-plugins/tmux-resurrect' | |
# for neovim | |
set -g @resurrect-strategy-nvim 'session' | |
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | |
run '~/.tmux/plugins/tpm/tpm' | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment