#!/usr/bin/env bash # Скрипт: tmux_mouse.sh # Назначение: включить поддержку мыши в tmux + вставка буфера по Shift+ПКМ. set -euo pipefail # Файл конфигурации tmux CONFIG_FILE="${HOME}/.tmux.conf" # 1) Создаём резервную копию существующего конфига (с меткой времени) if [ -f "${CONFIG_FILE}" ]; then TIMESTAMP="$(date +'%Y%m%d%H%M%S')" BACKUP_FILE="${CONFIG_FILE}.bak.${TIMESTAMP}" cp -- "${CONFIG_FILE}" "${BACKUP_FILE}" echo "Резервная копия конфигурации создана: ${BACKUP_FILE}" fi # 2) Добавляем (или обновляем) настройки мыши и вставки cat >> "${CONFIG_FILE}" <<'EOF' # --- Начало настроек поддержки мыши для tmux --- # Включаем поддержку мыши (прокрутка, выбор окон, ресайз) set -g mouse on # Прокрутка в режиме копирования bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down # Обычная прокрутка колесом bind -n WheelUpPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "copy-mode -e; send-keys -M" bind -n WheelDownPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "send-keys -M" # Вставка содержимого буфера tmux по Shift + ПКМ (правой кнопке мыши) bind -n S-MouseDown2Pane paste-buffer # --- Конец настроек поддержки мыши для tmux --- EOF echo "Настройки поддержки мыши и вставки по Shift+ПКМ добавлены в ${CONFIG_FILE}." # 3) Перезагружаем конфигурацию в запущенных сессиях tmux if tmux info &>/dev/null; then tmux source-file "${CONFIG_FILE}" echo "Конфигурация tmux перезагружена." else echo "Запущенных сессий tmux не найдено — настройки вступят в силу при следующем запуске tmux." fi