2023-02-14 04:38:15 +01:00
|
|
|
# force SHELL ENV variable as shell
|
|
|
|
set-option -g default-shell ${SHELL}
|
|
|
|
set-option -g default-command "${SHELL} -"
|
|
|
|
#set-option -g default-command "${SHELL} --init-file .bashrc"
|
|
|
|
|
2020-01-14 10:11:36 +01:00
|
|
|
# Some tweaks to the status line
|
|
|
|
set -g status-right "%H:%M"
|
|
|
|
#set -g window-status-current-attr "underscore"
|
|
|
|
|
|
|
|
# If running inside tmux ($TMUX is set), then change the status line to red
|
|
|
|
%if #{TMUX}
|
|
|
|
set -g status-bg red
|
|
|
|
%endif
|
|
|
|
|
|
|
|
# Enable RGB colour if running in xterm(1)
|
|
|
|
set-option -sa terminal-overrides ",xterm*:Tc"
|
|
|
|
|
|
|
|
# Change the default $TERM to tmux-256color
|
|
|
|
set -g default-terminal "tmux-256color"
|
|
|
|
|
|
|
|
# No bells at all
|
|
|
|
set -g bell-action none
|
|
|
|
|
|
|
|
# Keep windows around after they exit
|
|
|
|
#set -g remain-on-exit on
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
## General Options
|
|
|
|
|
|
|
|
# set first window to index 1 (not 0) to map more to the keyboard layout
|
|
|
|
set -g base-index 1
|
|
|
|
setw -g pane-base-index 1
|
|
|
|
|
|
|
|
# Automatically set window title
|
|
|
|
#set-window-option -g automatic-rename on
|
|
|
|
# this eats probably much cpu, so turn it off
|
|
|
|
set-window-option -g automatic-rename off
|
|
|
|
set-window-option -g window-status-current-style bg=yellow
|
|
|
|
set-option -g set-titles on
|
|
|
|
|
|
|
|
# Default termtype. If the rcfile sets $TERM, that overrides this value.
|
|
|
|
set -g default-terminal screen-256color
|
|
|
|
|
|
|
|
set -g history-limit 10000
|
|
|
|
|
|
|
|
# pass through xterm keys
|
|
|
|
set-option -gw xterm-keys on
|
|
|
|
|
|
|
|
# Watch for activity in background windows
|
|
|
|
setw -g monitor-activity on
|
|
|
|
set -g visual-activity on
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
## General Keymap
|
|
|
|
|
|
|
|
# Keep your finger on ctrl, or don't, same result
|
|
|
|
bind-key C-d detach-client
|
|
|
|
bind-key C-p paste-buffer
|
|
|
|
|
|
|
|
# Redraw the client (if interrupted by wall, etc)
|
|
|
|
bind R refresh-client
|
|
|
|
|
|
|
|
# Reload tmux config
|
|
|
|
unbind r
|
|
|
|
bind r \
|
|
|
|
source-file ~/.tmux.conf \;\
|
|
|
|
source-file -q "${HOME}/.tmux.local.conf" \;\
|
|
|
|
display 'Reloaded personal tmux config.'
|
|
|
|
|
|
|
|
unbind R
|
|
|
|
bind R \
|
|
|
|
source-file /etc/tmux.conf \;\
|
|
|
|
display 'Reloaded general tmux config.'
|
|
|
|
#bind R source-file /etc/tmux.conf
|
|
|
|
#bind r source-file ~/.tmux.conf
|
|
|
|
|
|
|
|
# Use vi keybindings in copy and choice modes
|
|
|
|
#setw -g mode-keys vi
|
|
|
|
set-window-option -g mode-keys vi
|
|
|
|
set -g status-keys vi
|
|
|
|
|
|
|
|
##########################################################################
|
|
|
|
## Window management / navigation
|
|
|
|
|
|
|
|
# Horizontal splits with s or C-s
|
|
|
|
unbind s
|
|
|
|
unbind C-s
|
|
|
|
bind-key s split-window
|
|
|
|
bind-key C-s split-window
|
|
|
|
|
|
|
|
# Vertical split with v or C-v
|
|
|
|
unbind v
|
|
|
|
unbind C-v
|
|
|
|
bind-key v split-window -h
|
|
|
|
bind-key C-v split-window -h
|
|
|
|
|
|
|
|
# Alt/Meta M L to switch windows vi-style
|
|
|
|
bind-key -n M-L next-window
|
|
|
|
bind-key -n M-H previous-window
|
|
|
|
|
|
|
|
# Resize pane vi-style with Control + Cursorkeys
|
|
|
|
bind-key -n C-Left resize-pane -L
|
|
|
|
bind-key -n C-Right resize-pane -R
|
|
|
|
bind-key -n C-Up resize-pane -U
|
|
|
|
bind-key -n C-Down resize-pane -D
|
|
|
|
|
|
|
|
# Use Crtl-vim keys without prefix key to switch panes
|
|
|
|
bind-key -n M-h select-pane -L
|
|
|
|
bind-key -n M-j select-pane -D
|
|
|
|
bind-key -n M-k select-pane -U
|
|
|
|
bind-key -n M-l select-pane -R
|
|
|
|
|
|
|
|
# easily toggle synchronization (mnemonic: e is for echo)
|
|
|
|
# sends input to all panes in a given window.
|
|
|
|
bind e setw synchronize-panes on
|
|
|
|
bind E setw synchronize-panes off
|
|
|
|
|
|
|
|
# No delay for escape key press
|
|
|
|
set -sg escape-time 0
|
|
|
|
|
|
|
|
###########################################################################
|
|
|
|
# THEME
|
|
|
|
#set -g status-bg black
|
|
|
|
#set -g status-fg white
|
|
|
|
#set -g window-status-current-bg white
|
|
|
|
#set -g window-status-current-fg black
|
|
|
|
#set -g window-status-current-attr bold
|
|
|
|
#set -g status-interval 60
|
|
|
|
#set -g status-left-length 30
|
|
|
|
#set -g status-left '#[fg=green](#S) #(whoami)'
|
|
|
|
#set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
## Mouse
|
|
|
|
# Start copy mode when scrolling up
|
|
|
|
#bind -n WheelUpPane copy-mode
|
|
|
|
set -g mouse on
|
|
|
|
unbind -n MouseDrag1Pane
|
|
|
|
unbind -Tcopy-mode MouseDrag1Pane
|
|
|
|
|
|
|
|
#set -g mouse-resize-pane on
|
|
|
|
#set -g mouse-select-pane on
|
|
|
|
#set -g mouse-select-window on
|
|
|
|
|
|
|
|
bind m set -g mouse on \; display "Mouse ON"
|
|
|
|
bind M set -g mouse off \; display "Mouse OFF"
|
|
|
|
|
|
|
|
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
|
|
|
|
bind -n WheelDownPane select-pane -t= \; send-keys -M
|
|
|
|
|
|
|
|
# Enable our custom option to exit copy mode when scrolling past bottom
|
|
|
|
#set-window-option -g exit-copy-past-bottom on
|
|
|
|
|
|
|
|
|
|
|
|
## Source local and userfiles ##
|
|
|
|
#source-file -q "${HOME}/.tmux.conf"
|
|
|
|
source-file -q "${HOME}/.tmux.local.conf"
|
|
|
|
#source-file -q "${HOME}/.tmux/initial.conf"
|
|
|
|
|
|
|
|
#source-file "${HOME}/.tmux/themepack/powerline/block/green.tmuxtheme"
|
|
|
|
set -g @plugin 'jimeh/tmux-themepack'
|
|
|
|
# Other examples:
|
|
|
|
|
|
|
|
|
|
|
|
bind S source-file ~/.tmux/sessions/default.session
|
|
|
|
bind D source-file ~/.tmux/sessions/dev.session
|
|
|
|
bind L source-file ~/.tmux/sessions/log.session
|
|
|
|
|
|
|
|
# List of plugins
|
|
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
|
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
|
|
# set -g @plugin 'github_username/plugin_name'
|
|
|
|
# set -g @plugin 'git@github.com/user/plugin'
|
|
|
|
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
|
|
|
#set -g @plugin 'jimeh/tmux-themepack'
|
|
|
|
set -g @plugin 'tmux-plugins/tmux-themepack'
|
|
|
|
|
|
|
|
#set -g @themepack 'powerline/block/red'
|
|
|
|
#source-file "${HOME}/.tmux/plugins/themepack/powerline/block/green.tmuxtheme"
|
|
|
|
source-file "${HOME}/.tmux/plugins/tmux-themepack/powerline/block/green.tmuxtheme"
|
|
|
|
|
|
|
|
# source local tmux.config
|
|
|
|
source-file -q "${HOME}/.local/share/tmux/tmux.conf"
|
|
|
|
|
2021-05-06 01:29:13 +02:00
|
|
|
set -g update-environment "SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY SSH_TTY SSH_AUTH_SOCK DISPLAY P11M"
|
2020-09-23 07:56:02 +02:00
|
|
|
|
|
|
|
#set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock
|
2020-01-14 10:11:36 +01:00
|
|
|
|
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
|
|
run -b '~/.tmux/plugins/tpm/tpm'
|