dotfiles/.tmux.conf

76 lines
2.9 KiB
Plaintext

# tmux config
# largely based on spicycode's config: https://gist.github.com/spicycode/1229612
set -g base-index 1
set-window-option -g automatic-rename on
set -g renumber-windows on # renumber windows when a window is closed
set-option -g set-titles on
set-option -g allow-rename on
set -g status-keys vi
set -g history-limit 1000000
setw -g mouse on
setw -g mode-keys vi
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'if [[ -z "$WAYLAND_DISPLAY" ]];then xclip -sel clip -i;else wl-copy;fi'
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle \; send-keys -X begin-selection
set -g @yank_selection 'primary' # or 'secondary' or 'clipboard'
set -g @yank_selection_mouse 'clipboard' # or 'primary' or 'secondary'
set -g @yank_action 'copy-pipe-and-cancel' # or 'copy-pipe-and-cancel' for the default
setw -g monitor-activity on
set -g @scroll-speed-num-lines-per-scroll 1
bind-key v split-window -h
bind-key s split-window -v
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# No delay for escape key press
set -sg escape-time 0
# Rather than constraining window size to the maximum size of any client
# connected to the *session*, constrain window size to the maximum size of any
# client connected to *that window*. Much more reasonable.
setw -g aggressive-resize on
# Reload tmux config
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
# Colors
# How to use true colors in vim under tmux? #1246 for 2.6 and higher
# https://github.com/tmux/tmux/issues/1246:
set -g default-terminal "xterm-256color"
set -ga terminal-overrides ",*256col*:Tc"
WEATHER='#(curl wttr.in/$DAT_WEATHER\?format\="3&period=60")'
# THEME
set -g status-bg black
set -g status-fg white
#setw -g status-style default
setw -g status-bg colour237
setw -g status-fg colour39
set -g status-interval 10 # redraw status line every n seconds
set -g status-left-length 95
set -g status-right-length 120
set -g status-left '#[fg=green,bold](#S) '# #(whoami) '
#set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%a %H:%M#[default]'
set -g status-right "#{battery_status_bg} #{battery_percentage} #{battery_remain} #[fg=yellow]#(cut -d \" \" -f 1-3 /proc/loadavg) #[fg=colour4]$WEATHER #[fg=white]%a %Y-%m-%d %H:%M #[default]"
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
if "test ! -d ~/.tmux/plugins/tpm" \
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'