93 lines
4.4 KiB
Plaintext
93 lines
4.4 KiB
Plaintext
# List of plugins
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
set -g @plugin 'o0th/tmux-nova'
|
|
|
|
|
|
# Defaults
|
|
set -g mouse on
|
|
|
|
set -g prefix2 C-a # GNU-Screen compatible prefix
|
|
bind C-a send-prefix -2
|
|
|
|
# reload configuration
|
|
bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced'
|
|
set -g default-terminal "tmux-256color"
|
|
set -s set-clipboard external
|
|
set -s extended-keys on
|
|
set -s extended-keys-format csi-u
|
|
set -as terminal-features ",xterm-kitty:RGB"
|
|
set -as terminal-features ",xterm-kitty:clipboard"
|
|
set -as terminal-features ",xterm-kitty:extkeys"
|
|
set -as terminal-features ",xterm:RGB"
|
|
set -as terminal-features ",xterm-ghostty:RGB"
|
|
set -as terminal-features ",xterm-ghostty:clipboard"
|
|
set -as terminal-features ",xterm-ghostty:extkeys"
|
|
set -as terminal-features ",xterm-256color:RGB"
|
|
set -as terminal-features ",xterm-256color:extkeys"
|
|
set -as terminal-features ",xterm-kitty:hyperlinks"
|
|
set -as terminal-features ",xterm-ghostty:hyperlinks"
|
|
set -as terminal-features ",xterm-256color:hyperlinks"
|
|
set -as terminal-overrides ",xterm-256color:Ms=\E]52;c;%p2%s\007"
|
|
set -as terminal-overrides ",screen-256color:Ms=\E]52;c;%p2%s\007"
|
|
set -g allow-passthrough on
|
|
set-window-option -g mode-keys vi
|
|
|
|
# Copy selections by writing OSC 52 directly to the pane tty. This avoids the
|
|
# broken tmux load-buffer -w path seen under mosh, and works across macOS,
|
|
# Linux, FreeBSD, and OpenBSD with $HOME/.local/bin/yank-osc52.
|
|
bind-key -n MouseDrag1Pane if-shell -F '#{mouse_any_flag}' 'send-keys -M' 'copy-mode -M'
|
|
bind-key -n MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel '$HOME/.local/bin/yank-osc52 > #{pane_tty}'
|
|
bind-key -n DoubleClick1Pane select-pane -t = \; copy-mode -H \; send-keys -X select-word \; run-shell -b 'sleep 0.2; tmux send-keys -X -t "#{pane_id}" copy-pipe-and-cancel "$HOME/.local/bin/yank-osc52 > #{pane_tty}"'
|
|
bind-key -n TripleClick1Pane select-pane -t = \; copy-mode -H \; send-keys -X select-line \; run-shell -b 'sleep 0.2; tmux send-keys -X -t "#{pane_id}" copy-pipe-and-cancel "$HOME/.local/bin/yank-osc52 > #{pane_tty}"'
|
|
bind-key -T copy-mode-vi Space send-keys -X begin-selection
|
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
|
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
|
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel '$HOME/.local/bin/yank-osc52 > #{pane_tty}'
|
|
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel '$HOME/.local/bin/yank-osc52 > #{pane_tty}'
|
|
bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -N 1 -X scroll-up
|
|
bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -N 1 -X scroll-down
|
|
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel '$HOME/.local/bin/yank-osc52 > #{pane_tty}'
|
|
bind-key -T copy-mode-vi DoubleClick1Pane send-keys -X select-word \; run-shell -b 'sleep 0.2; tmux send-keys -X -t "#{pane_id}" copy-pipe-and-cancel "$HOME/.local/bin/yank-osc52 > #{pane_tty}"'
|
|
bind-key -T copy-mode-vi TripleClick1Pane send-keys -X select-line \; run-shell -b 'sleep 0.2; tmux send-keys -X -t "#{pane_id}" copy-pipe-and-cancel "$HOME/.local/bin/yank-osc52 > #{pane_tty}"'
|
|
|
|
# Nova Config
|
|
set -g @nova-nerdfonts true
|
|
set -g @nova-nerdfonts-left
|
|
#set -g @nova-nerdfonts-left
|
|
#set -g @nova-nerdfonts-right
|
|
set -g @nova-nerdfonts-right
|
|
set -g @nova-status-style-bg "#1c2836"
|
|
|
|
set -g @nova-segment-mode "#{?client_prefix,Ω,ω}"
|
|
set -g @nova-segment-mode-colors "#50fa7b #282a36"
|
|
|
|
set -g @nova-segment-whoami "#(whoami)@#h"
|
|
set -g @nova-segment-whoami-colors "#50fa7b #282a36"
|
|
|
|
set -g @nova-pane "#I#{?pane_in_mode, #{pane_mode},} #W"
|
|
|
|
set -g @nova-rows 0
|
|
set -g @nova-segments-0-left "mode"
|
|
set -g @nova-segments-0-right "whoami"
|
|
|
|
# -- display -------------------------------------------------------------------
|
|
|
|
set -g base-index 1 # start windows numbering at 1
|
|
setw -g pane-base-index 1 # make pane numbering consistent with windows
|
|
|
|
setw -g automatic-rename on # rename window to reflect current program
|
|
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 10 # redraw status line every 10 seconds
|
|
|
|
|
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
run '~/.tmux/plugins/tpm/tpm'
|