mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-02-13 08:17:31 -08:00
110 lines
3.0 KiB
Plaintext
110 lines
3.0 KiB
Plaintext
# https://github.com/starr-dusT/dotfiles
|
|
# vim style tmux config
|
|
|
|
# use C-a, since it's on the home row and easier to hit than C-b
|
|
set-option -g prefix C-a
|
|
unbind-key C-a
|
|
bind-key C-a send-prefix
|
|
set -g base-index 1
|
|
|
|
# Easy config reload
|
|
bind-key R source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
|
|
|
|
# vi is good
|
|
setw -g mode-keys vi
|
|
|
|
set -g default-terminal "xterm-256color"
|
|
set-option -ga terminal-overrides ",xterm-256color:Tc"
|
|
|
|
# mouse behavior
|
|
setw -g mouse on
|
|
|
|
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-key : command-prompt
|
|
bind-key r refresh-client
|
|
bind-key L clear-history
|
|
|
|
bind-key space next-window
|
|
bind-key bspace previous-window
|
|
bind-key enter next-layout
|
|
|
|
# use vim-like keys for splits and windows
|
|
bind-key v split-window -h
|
|
bind-key s split-window -v
|
|
bind-key h select-pane -L
|
|
bind-key j select-pane -D
|
|
bind-key k select-pane -U
|
|
bind-key l select-pane -R
|
|
|
|
bind C-l send-keys 'C-l'
|
|
|
|
bind-key C-o rotate-window
|
|
|
|
bind-key + select-layout main-horizontal
|
|
bind-key = select-layout main-vertical
|
|
|
|
set-window-option -g other-pane-height 25
|
|
set-window-option -g other-pane-width 80
|
|
set-window-option -g display-panes-time 1500
|
|
set-window-option -g window-status-current-style fg=magenta
|
|
|
|
bind-key a last-pane
|
|
bind-key w display-panes
|
|
bind-key q kill-session
|
|
bind-key c new-window
|
|
bind-key t next-window
|
|
bind-key T previous-window
|
|
|
|
bind-key [ copy-mode
|
|
bind-key ] paste-buffer
|
|
|
|
# Setup 'v' to begin selection as in Vim
|
|
bind-key -T copy-mode-vi v send -X begin-selection
|
|
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
|
|
|
|
# Update default binding of `Enter` to also use copy-pipe
|
|
unbind -T copy-mode-vi Enter
|
|
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
|
|
|
|
# Sesh keybinds
|
|
bind-key b display-popup -E -w 40% "sesh connect \"$(
|
|
sesh list -i | fzf --ansi --height 40% --reverse --border-label ' sesh ' --border --prompt '⚡ '
|
|
)\""
|
|
|
|
# Status Bar
|
|
set-option -g status-interval 1
|
|
set-option -g status-style bg=black
|
|
set-option -g status-style fg=white
|
|
set -g status-left '#[fg=green]#H #[default]'
|
|
set -g status-right '#[fg=red]#S #[default]%a%l:%M:%S %p#[default] #[fg=blue]%Y-%m-%d'
|
|
|
|
set-option -g pane-active-border-style fg=yellow
|
|
set-option -g pane-border-style fg=cyan
|
|
|
|
# Set window notifications
|
|
setw -g monitor-activity on
|
|
set -g visual-activity on
|
|
|
|
# Allow the arrow key to be used immediately after changing windows
|
|
set-option -g repeat-time 0
|
|
|
|
# Install plugin manager
|
|
set -g @plugin 'fcsonline/tmux-thumbs'
|
|
run-shell ~/.tmux/plugins/tmux-thumbs/tmux-thumbs.tmux
|
|
set -g @thumbs-key F
|
|
set -g @thumbs-command 'echo -n {} | wl-copy'
|
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
run '~/.tmux/plugins/tpm/tpm'
|