Created
November 17, 2016 13:26
-
-
Save bjhaid/b7a7f60a66fe26713f33add4bce34b66 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
# split windows like vim | |
# vim's definition of a horizontal/vertical split is reversed from tmux's | |
bind s split-window -v -c "#{pane_current_path}" | |
bind v split-window -h -c '#{pane_current_path}' | |
bind ^s split-window -v -c "#{pane_current_path}" | |
bind ^v split-window -h -c "#{pane_current_path}" | |
# move around panes with hjkl, as one would in vim after pressing ctrl-w | |
bind h select-pane -L | |
bind j select-pane -D | |
bind k select-pane -U | |
bind l select-pane -R | |
bind ^h select-pane -L | |
bind ^j select-pane -D | |
bind ^k select-pane -U | |
bind ^l select-pane -R | |
# resize panes like vim | |
# feel free to change the "1" to however many lines you want to resize by, only | |
# one at a time can be slow | |
bind -r < resize-pane -L 10 | |
bind -r > resize-pane -R 10 | |
bind -r - resize-pane -D 10 | |
bind -r + resize-pane -U 10 | |
# bind : to command-prompt like vim | |
# this is the default in tmux already | |
bind : command-prompt | |
# session management | |
bind C new-session | |
bind L choose-session | |
# vi-style controls for copy mode | |
setw -g mode-keys vi | |
# Set the prefix to ^A, like screen | |
unbind C-b | |
set -g prefix ^A | |
bind a send-prefix | |
bind ^a last-window # toggle last window like screen | |
set -g update-environment "DISPLAY WINDOWID SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION" | |
bind K confirm kill-server | |
bind X confirm kill-window | |
# longer scrollback | |
set -g history-limit 10000 | |
# let us use utf-8 drawing characters to make tab-like window formats | |
setw -g utf8 on | |
set -g status-utf8 on | |
set -g status-bg default | |
set -g status-fg white | |
# left side of status bar holds "(>- session name -<)" | |
set -g status-left-length 100 | |
set -g status-left-bg green | |
set -g status-left-fg black | |
set -g status-left-attr bold | |
set -g status-left 'bjhaid' | |
# right side of status bar holds "[host name] (date time)" | |
set -g status-right-length 100 | |
set -g status-right-fg black | |
set -g status-right-attr bold | |
set -g status-right '#[fg=colour214,bg=colour235] #H#[fg=colour238]:#[fg=colour178]#S #[fg=colour039,bg=colour238] %y.%m.%d %H:%M ' | |
# make background window look like white tab | |
set-window-option -g window-status-bg default | |
set-window-option -g window-status-fg white | |
set-window-option -g window-status-attr none | |
set-window-option -g window-status-format '#[fg=colour214,bg=colour235] #I #[fg=white,bg=colour236] #W #[default]' | |
# make foreground window look like bold yellow foreground tab | |
set-window-option -g window-status-current-attr none | |
set-window-option -g window-status-current-format '#[fg=black,bg=colour214] #I #[fg=brightwhite,bg=colour238] #W #[default]' | |
# active terminal yellow border, non-active white | |
set -g pane-border-bg default | |
set -g pane-border-fg colour238 | |
set -g pane-active-border-bg default | |
set -g pane-active-border-fg colour214 | |
# set a 256color $TERM variable so programs inside tmux know they can use 256 colors | |
set -g default-terminal screen-256color | |
# disable mouse mode by default | |
set -g mode-mouse off | |
set -g mouse-resize-pane off | |
set -g mouse-select-pane off | |
set -g mouse-select-window off | |
# Toggle mouse on with m | |
bind m \ | |
set -g mode-mouse on \;\ | |
set -g mouse-resize-pane on \;\ | |
set -g mouse-select-pane on \;\ | |
set -g mouse-select-window on \;\ | |
display 'Mouse: ON' | |
# Toggle mouse off with M | |
bind M \ | |
set -g mode-mouse off \;\ | |
set -g mouse-resize-pane off \;\ | |
set -g mouse-select-pane off \;\ | |
set -g mouse-select-window off \;\ | |
display 'Mouse: OFF' | |
# reload tmux config file with C-a r | |
bind r source ~/.tmux.conf | |
# Create a new window and prompt for name | |
bind N command-prompt "new-window -n '%%' -c '#{pane_current_path}'" | |
bind c new-window -c '#{pane_current_path}' | |
# Rebind prefix to b | |
bind B set -g prefix ^b | |
bind A set -g prefix ^a | |
# Works with ~/.ssh/rc to allow re-attaching to tmuxes after ssh reconnect | |
setenv -g SSH_AUTH_SOCK $HOME/.ssh/ssh_auth_sock | |
set -g default-command "reattach-to-user-namespace -l /bin/bash" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment