dotfiles/tmux/.tmux.conf

81 lines
2.4 KiB
Plaintext

#Fairly basic Tmux config.
#Copyright 2018 TheToric
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program. If not, see <http://www.gnu.org/licenses/>.
#remap prefix from C-b to alt-a
unbind C-b
set-option -g prefix M-a
bind-key M-a send-prefix
#split panes using | and -
unbind '|'
unbind '_'
bind | split-window -h
bind _ split-window -v
unbind '"'
unbind %
#switch panes using alt-hjkl
bind -n M-h select-pane -L
bind -n M-l select-pane -R
bind -n M-k select-pane -U
bind -n M-j select-pane -D
#or with the prefix and hjkl
bind h select-pane -L
bind l select-pane -R
bind k select-pane -U
bind j select-pane -D
#resize panes with HJKL
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
#sorta-kinda vim keys for copy and paste (entering copy mode is [, can paste with ]).
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip -sel clip -i"
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
#display pane numbers
unbind d
bind-key d display-panes
#moving panes between windows. M to mark panes.
unbind j
bind-key j join-pane
unbind s
bind-key s swap-pane
#reload conf with r
bind r source-file ~/.tmux.conf
#fix annoying escape behavior
set -sg escape-time 0
#pass through focus events
set -g focus-events on
#customizing status line
#make sure the status line can hold the stuff we are about to give it.
set -g status-left-length 40
set -g status-right-length 40
#have the left side status line display my hostname.
set -g status-left " #{host_short} | "
#have the right side status bar display the current battery status and the time/date.
set -g status-right 'battery:#(acpi | grep -Eo "[0-9]+%" | tr "\n" " " | sed "s/\s\+$//") | %H:%M %d/%m/%y '