mirror of https://github.com/sgoudham/nvim.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.0 KiB
Plaintext
116 lines
4.0 KiB
Plaintext
3 years ago
|
# these are general settings for Tmux unrelated to Catppuccino
|
||
|
# Dependencies:
|
||
|
# + xclip
|
||
|
|
||
|
# ----------------------------=== Settings ===--------------------------
|
||
|
|
||
|
# --------=== General
|
||
|
# set -g default-terminal "screen-256color" # colors!
|
||
|
# set -g default-terminal "xterm-kitty" # colors!
|
||
|
# set -g default-terminal "xterm-256color" # colors!, DON't USE THIS generates problems with keyboard and other stuff
|
||
|
set -g default-terminal "tmux-256color"
|
||
|
|
||
|
# useful for fixing mismatching nvim colors while on Alacritty and other terminals. Follow: https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
|
||
|
set -ag terminal-overrides ",xterm-256color:RGB"
|
||
|
# set-option -ga terminal-overrides ",tmux-256color:Tc"
|
||
|
setw -g xterm-keys on
|
||
|
set -s focus-events on
|
||
|
|
||
|
# faster command sequences aka no delay when pressing certain keys (e.g. Esc)
|
||
|
set -sg escape-time 0
|
||
|
set -sg repeat-time 400 # increase repeat timeout
|
||
|
|
||
|
# --------=== Other
|
||
|
|
||
|
# Automatically set window title
|
||
|
set-window-option -g automatic-rename on
|
||
|
set-option -g set-titles on
|
||
|
set -g history-limit 50000
|
||
|
set -g mouse on
|
||
|
setw -q -g utf8 on # charset
|
||
|
|
||
|
# --------=== Display
|
||
|
|
||
|
set -g base-index 1 # start windows numbering at 1
|
||
|
setw -g pane-base-index 1 # make pane numbering consistent with windows
|
||
|
set -g renumber-windows on # renumber windows when a window is closed
|
||
|
set -g set-titles on # set terminal title
|
||
|
set -g display-panes-time 800 # slightly longer pane indicators display time
|
||
|
set -g display-time 1000 # slightly longer status messages display time
|
||
|
set -g status-interval 0 # redraw status line every 10 seconds
|
||
|
|
||
|
# --------=== Activity
|
||
|
set -g monitor-activity on
|
||
|
set -g visual-activity off
|
||
|
# set -g bell-action none
|
||
|
# set -g visual-bell off
|
||
|
# set -g visual-silence off
|
||
|
|
||
|
# ----------------------------=== Key Bindings ===--------------------------
|
||
|
|
||
|
# see `man tmux`
|
||
|
# NOTE: -n: no prefix
|
||
|
# NOTE: -r: prefix not required after being pressed for `repeat-time`
|
||
|
|
||
|
set-option -g prefix M-f # change default tmux prefix from Ctrl+b to Alt+f
|
||
|
|
||
|
bind r source-file ~/.tmux.conf # source .tmux.conf at $HOME
|
||
|
|
||
|
bind-key v split-window -h -c "#{pane_current_path}" # horizontally split current window
|
||
|
bind-key s split-window -v -c "#{pane_current_path}" # vertically split current window
|
||
|
|
||
|
bind-key -r b set-option status # toggle statusline
|
||
|
|
||
|
bind-key g display-popup -E "tmux new-session -A -s scratch" # aka floating terminal
|
||
|
|
||
|
# thanks https://unix.stackexchange.com/a/525770
|
||
|
bind -n M-PageDown swap-window -d -t -1 # Move current window to the left and switch to it
|
||
|
bind -n M-PageUp swap-window -d -t +1 # Move current window to the right and switch to it
|
||
|
# bind -n C-S-Left swap-window -d -t -1
|
||
|
# bind -n C-S-Right swap-window -d -t +1
|
||
|
|
||
|
bind-key j choose-tree -swZ # TUI for moving around open windows
|
||
|
|
||
|
bind-key J resize-pane -D 5
|
||
|
bind-key K resize-pane -U 5
|
||
|
bind-key H resize-pane -L 5
|
||
|
bind-key L resize-pane -R 5
|
||
|
|
||
|
bind-key -n -r M-t new-window -c "#{pane_current_path}" # spawn a window in cwd
|
||
|
bind-key -n -r M-w kill-window # kill current window
|
||
|
bind-key -n -r M-c kill-pane # kill current pane
|
||
|
|
||
|
bind-key -n M-1 select-window -t 1
|
||
|
bind-key -n M-2 select-window -t 2
|
||
|
bind-key -n M-3 select-window -t 3
|
||
|
bind-key -n M-4 select-window -t 4
|
||
|
bind-key -n M-5 select-window -t 5
|
||
|
bind-key -n M-6 select-window -t 6
|
||
|
bind-key -n M-7 select-window -t 7
|
||
|
bind-key -n M-8 select-window -t 8
|
||
|
bind-key -n M-9 select-window -t 9
|
||
|
bind-key -n M-0 select-window -t 0
|
||
|
|
||
|
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' # use system clipboard
|
||
|
|
||
|
|
||
|
# bind-key -n M-S-Left resize-pane -D
|
||
|
# bind-key -n M-S-Right resize-pane -U
|
||
|
# bind-key -n M-S-Up resize-pane -L
|
||
|
# bind-key -n M-S-Down resize-pane -R
|
||
|
|
||
|
# Use Alt-arrow keys without the prefix 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
|
||
|
|
||
|
# Shift arrow to switch windows
|
||
|
bind -n S-Left previous-window
|
||
|
bind -n S-Right next-window
|
||
|
|
||
|
# ----------------------------=== Modes ===--------------------------
|
||
|
|
||
|
set -g status-keys vi # vi status
|
||
|
setw -g mode-keys vi # vi shortcuts
|