You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
3.1 KiB
77 lines
3.1 KiB
# 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"
|
|
|