102 lines
4.1 KiB
Bash
102 lines
4.1 KiB
Bash
# === ОСНОВНЫЕ НАСТРОЙКИ ===
|
|
# 1. Оставляем стандартный Ctrl+b (для совместимости и удаленных серверов)
|
|
set -g prefix C-b
|
|
|
|
# 2. Добавляем Ctrl+Space как второй, удобный префикс
|
|
set -g prefix2 C-Space
|
|
|
|
# Разрешаем отправлять префиксы внутрь (для вложенных сессий)
|
|
bind C-b send-prefix
|
|
bind C-Space send-prefix
|
|
|
|
# Нумерация окон и панелей с 1 (так удобнее тянуться цифрам на клавиатуре)
|
|
set -g base-index 1
|
|
setw -g pane-base-index 1
|
|
|
|
# Автоматическое переименование окон при закрытии промежуточных
|
|
set -g renumber-windows on
|
|
|
|
# Включаем поддержку мыши (скролл, выбор панелей, изменение размера)
|
|
set -g mouse on
|
|
|
|
# Увеличиваем историю прокрутки (по умолчанию всего 2000 строк)
|
|
set -g history-limit 50000
|
|
|
|
# Убираем задержку после нажатия Esc (критично для пользователей Vim)
|
|
set -s escape-time 0
|
|
|
|
# === ГОРЯЧИЕ КЛАВИШИ ===
|
|
# Быстрая перезагрузка конфига кнопкой r
|
|
bind r source-file ~/.tmux.conf \; display "Конфигурация обновлена!"
|
|
|
|
# Возврат к предыдущему активному окну (вместо l, которая занята)
|
|
bind Tab last-window
|
|
|
|
# Использовать клавиши vi в режиме copy-mode
|
|
setw -g mode-keys vi
|
|
|
|
# Разделение панелей понятными символами
|
|
bind | split-window -h -c "#{pane_current_path}"
|
|
bind - split-window -v -c "#{pane_current_path}"
|
|
|
|
# Изменение размера панелей: Prefix + H/J/K/L (Shift + буква)
|
|
bind -r H resize-pane -L 5
|
|
bind -r J resize-pane -D 5
|
|
bind -r K resize-pane -U 5
|
|
bind -r L resize-pane -R 5
|
|
|
|
# Изменение размера панелей зажатым Alt + стрелки
|
|
# bind -n M-Left resize-pane -L 5
|
|
# bind -n M-Right resize-pane -R 5
|
|
# bind -n M-Up resize-pane -U 5
|
|
# bind -n M-Down resize-pane -D 5
|
|
|
|
# === ОФОРМЛЕНИЕ (ЦВЕТА) ===
|
|
# Статус-бар: темный фон, светлый текст
|
|
set -g status-style bg='#2c3e50',fg='#ecf0f1'
|
|
|
|
# Подсветка активного окна в списке
|
|
setw -g window-status-current-style bg='#3498db',fg='#ffffff',bold
|
|
setw -g window-status-current-format ' #I:#W '
|
|
|
|
# Цвет рамок панелей
|
|
set -g pane-border-style fg='#444444'
|
|
set -g pane-active-border-style fg='#3498db'
|
|
|
|
# Содержимое статус-бара (слева — сессия, справа — время и дата)
|
|
set -g status-left-length 30
|
|
set -g status-left '#[fg=green][#S] '
|
|
# set -g status-right '#[fg=yellow]%H:%M #[fg=white]| %d-%b-%y '
|
|
set -g status-right '#[fg=cyan]#H #[fg=white]| #[fg=yellow]%H:%M #[fg=white]| %d-%b-%y '
|
|
|
|
# Переключение окон через Alt + стрелки (влево/вправо) без префикса
|
|
bind -n M-C-Left previous-window
|
|
bind -n M-C-Right next-window
|
|
|
|
# Или через Ctrl + h/l (если не боитесь конфликтов с Vim)
|
|
#bind -n C-h previous-window
|
|
#bind -n C-l next-window
|
|
|
|
# === КОПИРОВАНИЕ (VIM STYLE) ===
|
|
# v - начать выделение (Visual mode)
|
|
bind -T copy-mode-vi v send-keys -X begin-selection
|
|
# y - скопировать (Yank)
|
|
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
|
|
|
# === ТЕРМИНАЛ И СОВМЕСТИМОСТЬ ===
|
|
set -g default-terminal "tmux-256color"
|
|
set -as terminal-overrides ",xterm-256color:RGB"
|
|
set -g focus-events on
|
|
set -s set-clipboard on
|
|
|
|
# === CLAUDE CODE / AGENTIC CLI ===
|
|
# allow-passthrough: tmux 3.3a+ (на Ubuntu 22 не заработает)
|
|
set -g allow-passthrough on
|
|
# extended-keys: tmux 3.2+
|
|
set -s extended-keys on
|
|
set -as terminal-features 'xterm*:extkeys'
|
|
|
|
# fallback для tmux 3.2a
|
|
# set -as terminal-overrides ",xterm*:kEND5=\033[1;5F:kHOM5=\033[1;5H"
|
|
|