# 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 always 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'