# shell-inits tmux.conf # Pastel theme (catppuccin macchiato palette), no plugins, no patched fonts. # Works over ssh: clipboard is shared with the local terminal via OSC 52 # (supported by kitty, wezterm, iterm2, alacritty, windows terminal, ...). # --- base -------------------------------------------------------------------- set -g default-command /usr/bin/zsh set -g default-terminal "tmux-256color" # UTF-8: the tmux server must inherit a UTF-8 locale (zshenv exports a # C.UTF-8 fallback); for tmux < 3.1 force the flag explicitly (3.1+ dropped it) set -gq utf on # truecolor + OSC52 passthrough for terminals whose terminfo lacks the entries set -ga terminal-overrides ",*:Tc" set -as terminal-overrides ',*:Ms=\E]52;c;%p2%s\7' set -g escape-time 10 set -g history-limit 100000 set -g focus-events on set -g display-time 2000 # --- copy mode (vi) ------------------------------------------------------------ setw -g mode-keys vi set -g set-clipboard on set -g allow-passthrough on bind -T copy-mode-vi v send -X begin-selection # yank -> tmux buffer (paste with prefix ]) AND the workstation clipboard via # OSC 52; the helper writes to the client terminals directly, so it does not # depend on tmux's own (version-dependent) clipboard emission bind -T copy-mode-vi y send -X copy-pipe-and-cancel "~/.config/tmux/osc52-copy.sh" # single-line scrolling in copy mode bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down # scrolling with shift + pgup/pgdn bind -n S-Pageup copy-mode -u bind -n S-Pagedown send-keys Pagedown # Home/End for line navigation (emacs-style regardless of app) bind -n Home send-key C-a bind -n End send-key C-e # --- windows / panes ----------------------------------------------------------- set -g mouse off set -g status-interval 5 set -g automatic-rename on set -g automatic-rename-format '#{b:pane_current_command}:#{b:pane_current_path}' set -g renumber-windows on # --- pastel theme (catppuccin macchiato) --------------------------------------- # base #24273a mantle #1e2030 crust #181926 surface0 #363a4f surface1 #494d64 # text #cad3f5 muted #6e738d mauve #c6a0f6 blue #8aadf4 green #a6da95 # peach #f5a97f rosewater #f4dbd6 set -g status on set -g status-position bottom set -g status-style "bg=#24273a,fg=#cad3f5" set -g status-left-length 40 set -g status-left "#[fg=#181926,bg=#c6a0f6,bold] #S #[fg=#c6a0f6,bg=#24273a] " set -g status-right-length 80 set -g status-right "#[fg=#6e738d]#{s|$HOME|~|:pane_current_path} #[fg=#8aadf4]%H #[fg=#a6da95]%H:%M " setw -g window-status-format "#[fg=#6e738d] #I #W " setw -g window-status-current-format "#[fg=#181926,bg=#8aadf4,bold] #I #W " setw -g window-status-separator "" setw -g window-status-activity-style "fg=#f5a97f,bg=#24273a" setw -g monitor-activity on set -g visual-activity off set -g mode-style "bg=#363a4f,fg=#cad3f5" set -g message-style "bg=#363a4f,fg=#c6a0f6" set -g message-command-style "bg=#363a4f,fg=#8aadf4" set -g pane-border-style "fg=#6e738d" set -g pane-active-border-style "fg=#c6a0f6" set -g clock-mode-colour "#a6da95"