unbind C-b set -g prefix C-s bind s send-prefix bind v split-window -h bind b split-window bind T source-file "$HOME/.tmux.conf" \; display-message "Reloaded $HOME/.tmux.conf" bind O display-message "#(tmux-save-buffer '#S')" bind D attach-session -t . -c '#{pane_current_path}' \; display-message "Set session path to #{pane_current_path}" bind H set -s status bind -n C-l select-pane -R bind -n C-k select-pane -U bind -n C-j select-pane -D bind -n C-h select-pane -L bind -n C-t new-window bind Tab next-window bind -n C-Tab next-window bind -n C-S-Tab previous-window bind s run "tmux split-window -l 12 'tmuxswitcher'" bind M-l source-file "$XDG_CONFIG_HOME/tmux/layouts/dev.tmux" set -g update-environment "WAYLAND_DISPLAY DISPLAY" set -g mouse on set -g escape-time 0 set -g monitor-activity on set -g visual-bell on set -g bell-action other set -g mode-keys vi set -g history-limit 1024000 set -g status on set -g status-position bottom set -g status-bg colour19 set -g status-fg colour8 set -g status-interval 5 set -g status-left-length 50 set -g window-status-style "fg=colour8 bg=colour19" set -g window-status-current-style "fg=colour8 bg=colour19" set -g window-status-format " #W" set -g window-status-separator "" set -g window-status-current-format " #W" set -g status-right "" set -g status-left "#h:#S #W " set -ag status-left "#(pwd | $XDG_CONFIG_HOME/lytedev-dotfiles/common/bin/glancepath) " set -ag status-left "#(kubeline && printf ' ')" set -g status-left-length 1000 # set -g status-right-length 280 # set -ag status-right "#{pane_current_command}" set -g message-style "fg=colour7 bg=colour19" set -g pane-active-border-style fg=blue set -g pane-border-style fg=colour19 set -g clock-mode-colour colour8 set -g base-index 1 set -g pane-base-index 1 set -g window-status-current-format "" # present a menu of urls to open from the visible pane # TODO: fzf-ify this # bind u capture-pane \;\ # save-buffer /tmp/tmux-buffer \;\ # split-window -l 10 "urlscan /tmp/tmux-buffer" bind -T copy-mode-vi "y" send-keys -X copy-pipe-no-clear 'wl-copy' \; display-message 'Copied to clipboard!' bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-no-clear 'wl-copy' \; display-message 'Copied to clipboard!' bind K kill-pane bind C-S-k kill-window # TODO: handle tmux nesting by being able to toggle the prefix (and indicate in status bar?) # TODO: styles after `set -u key-table` #if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\ bind -T root F12 set -g prefix None \; set -g key-table off \; display-message "Keys OFF" \; refresh-client -S # TODO: styles after `set -u key-table` bind -T off F12 \ set -g -u prefix \;\ set -g -u key-table \;\ display-message "Keys ON" \;\ refresh-client -S source-file "$ENV_PATH/*/tmux.d.conf" set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @resurrect-capture-pane-contents 'on' set -g @resurrect-processes 'helix hx vi vim nvim emacs man less more tail top htop btm irssi weechat mutt "git log" iex mix deno watchexec mosh-client ssh' bind A run-shell "#{@resurrect-save-script-path}" bind L run-shell "#{@resurrect-restore-script-path}" set -g @continuum-restore 'on' set -g @continuum-save-interval '1'