dotfiles/.tmux.conf

86 lines
3 KiB
Bash

set -g prefix ^o
set -g base-index 1
set -g display-panes-time 3000
set -s escape-time 10
set -g status on
set -g status-interval 30
setw -g alternate-screen on
setw -g aggressive-resize on
setw -g automatic-rename off
setw -g mode-keys vi
set-option -g mouse on
# clipboard
set -g set-clipboard on
bind-key ] paste-buffer -p
set -g update-environment "XAUTHORITY DISPLAY WINDOWID SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION"
set -g default-command zsh
set -g history-limit 100000
set-option -g default-terminal "tmux"
set -ga terminal-overrides ",*:Tc" # true colous support
set -as terminal-overrides ',*:sitm=\E[3m' # Italics support for older ncurses
# set -as terminal-overrides ',*:smxx=\E[9m' # Strikeout
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
# set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
# Key bindings
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
# bind -n M-Tab last-pane
bind -n M-1 select-window -t 1
bind -n M-2 select-window -t 2
bind -n M-3 select-window -t 3
bind -n M-4 select-window -t 4
bind -n M-5 select-window -t 5
bind -n M-6 select-window -t 6
bind -n M-7 select-window -t 7
bind -n M-8 select-window -t 8
bind -n M-9 select-window -t 9
bind -n M-0 select-window -t 10
bind -n M-m send-keys -t 9 q C-u "clear; tmux clear-history -t 9" C-m C-p C-p C-p C-m
bind -n M-` last-window
bind C-o send-keys C-o
bind r source-file ~/.tmux.conf
bind -n C-Right next-window
bind -n C-Left previous-window
bind C-s set-option -g status
bind K confirm kill-server
bind C-k clear-history
bind -n C-l send-keys C-l \; clear-history
bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 1 scroll-up
bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 1 scroll-down
bind-key / copy-mode \; send-key ?
bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer
bind-key -n C-\\ copy-mode \; send -X search-backward " % "\; send -X search-again
setw -g window-status-format ""
setw -g window-status-current-format ""
setw -g window-status-separator ""
set -g status-style "bg=#f0f0f0,fg=#000000"
set -g status-left-length 0
set -g status-right-length 0
set -g status-left '#{?#{==:#I,1},#[bg=#99aabb]  #[bg=#ccddee]#[fg=#445566] #T #[fg=#ccddee]#[bg=#f0f0f0]🭬,#[bg=#cccccc,fg=#ffffff] #I#[fg=#fcfcfc]▕#[bg=#f0f0f0,fg=#777777] #{=|145|…:pane_current_path}}'
set -g status-right '#{?#{==:#I,1},,#[fg=#07f7f7]#{@starship}#[fg=#fcfcfc]▕#[fg=#f7f7f7]#(~/go/bin/gitmux -cfg ~/.config/gitmux/gitmux.yaml "#{pane_current_path}")}#[bg=#cccccc,fg=#ffffff] #(date +%%H:%%M) '
set -g set-titles on
set -g set-titles-string "#H - #T"
# new -s 0 -n 1
# new-window -n 2
# new-window -n 3
# new-window -n 4
# new-window -n 5
# new-window -n 6
# new-window -n 7
# new-window -n 8
# new-window -n 9
# new-window -n 0
# vim:set ft=tmux: