dszubov revised this gist . Go to revision
1 file changed, 15 insertions, 8 deletions
tmux_mouse.sh
| @@ -1,9 +1,13 @@ | |||
| 1 | + | #!/usr/bin/env bash | |
| 2 | + | # Скрипт: tmux_mouse.sh | |
| 3 | + | # Назначение: включить поддержку мыши в tmux + вставка буфера по Shift+ПКМ. | |
| 4 | + | ||
| 1 | 5 | set -euo pipefail | |
| 2 | 6 | ||
| 3 | 7 | # Файл конфигурации tmux | |
| 4 | 8 | CONFIG_FILE="${HOME}/.tmux.conf" | |
| 5 | 9 | ||
| 6 | - | # Создаём резервную копию существующего конфига (с меткой времени) | |
| 10 | + | # 1) Создаём резервную копию существующего конфига (с меткой времени) | |
| 7 | 11 | if [ -f "${CONFIG_FILE}" ]; then | |
| 8 | 12 | TIMESTAMP="$(date +'%Y%m%d%H%M%S')" | |
| 9 | 13 | BACKUP_FILE="${CONFIG_FILE}.bak.${TIMESTAMP}" | |
| @@ -11,25 +15,28 @@ if [ -f "${CONFIG_FILE}" ]; then | |||
| 11 | 15 | echo "Резервная копия конфигурации создана: ${BACKUP_FILE}" | |
| 12 | 16 | fi | |
| 13 | 17 | ||
| 14 | - | # Добавляем (или обновляем) настройки мыши | |
| 18 | + | # 2) Добавляем (или обновляем) настройки мыши и вставки | |
| 15 | 19 | cat >> "${CONFIG_FILE}" <<'EOF' | |
| 16 | 20 | # --- Начало настроек поддержки мыши для tmux --- | |
| 17 | 21 | # Включаем поддержку мыши (прокрутка, выбор окон, ресайз) | |
| 18 | 22 | set -g mouse on | |
| 19 | 23 | ||
| 20 | - | # Разрешаем прокрутку колесом мыши в копипейстрежиме | |
| 21 | - | bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up | |
| 24 | + | # Прокрутка в режиме копирования | |
| 25 | + | bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up | |
| 22 | 26 | bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down | |
| 23 | 27 | ||
| 24 | - | # При обычном режиме: колесо мыши включает копипейстрежим + прокрутка | |
| 25 | - | bind -n WheelUpPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "copy-mode -e; send-keys -M" | |
| 28 | + | # Обычная прокрутка колесом | |
| 29 | + | bind -n WheelUpPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "copy-mode -e; send-keys -M" | |
| 26 | 30 | bind -n WheelDownPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "send-keys -M" | |
| 31 | + | ||
| 32 | + | # Вставка содержимого буфера tmux по Shift + ПКМ (правой кнопке мыши) | |
| 33 | + | bind -n S-MouseDown2Pane paste-buffer | |
| 27 | 34 | # --- Конец настроек поддержки мыши для tmux --- | |
| 28 | 35 | EOF | |
| 29 | 36 | ||
| 30 | - | echo "Настройки поддержки мыши добавлены в ${CONFIG_FILE}." | |
| 37 | + | echo "Настройки поддержки мыши и вставки по Shift+ПКМ добавлены в ${CONFIG_FILE}." | |
| 31 | 38 | ||
| 32 | - | # Перезагружаем конфигурацию в запущенных сессиях tmux | |
| 39 | + | # 3) Перезагружаем конфигурацию в запущенных сессиях tmux | |
| 33 | 40 | if tmux info &>/dev/null; then | |
| 34 | 41 | tmux source-file "${CONFIG_FILE}" | |
| 35 | 42 | echo "Конфигурация tmux перезагружена." | |
dszubov revised this gist . Go to revision
1 file changed, 38 insertions
tmux_mouse.sh(file created)
| @@ -0,0 +1,38 @@ | |||
| 1 | + | set -euo pipefail | |
| 2 | + | ||
| 3 | + | # Файл конфигурации tmux | |
| 4 | + | CONFIG_FILE="${HOME}/.tmux.conf" | |
| 5 | + | ||
| 6 | + | # Создаём резервную копию существующего конфига (с меткой времени) | |
| 7 | + | if [ -f "${CONFIG_FILE}" ]; then | |
| 8 | + | TIMESTAMP="$(date +'%Y%m%d%H%M%S')" | |
| 9 | + | BACKUP_FILE="${CONFIG_FILE}.bak.${TIMESTAMP}" | |
| 10 | + | cp -- "${CONFIG_FILE}" "${BACKUP_FILE}" | |
| 11 | + | echo "Резервная копия конфигурации создана: ${BACKUP_FILE}" | |
| 12 | + | fi | |
| 13 | + | ||
| 14 | + | # Добавляем (или обновляем) настройки мыши | |
| 15 | + | cat >> "${CONFIG_FILE}" <<'EOF' | |
| 16 | + | # --- Начало настроек поддержки мыши для tmux --- | |
| 17 | + | # Включаем поддержку мыши (прокрутка, выбор окон, ресайз) | |
| 18 | + | set -g mouse on | |
| 19 | + | ||
| 20 | + | # Разрешаем прокрутку колесом мыши в копипейстрежиме | |
| 21 | + | bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up | |
| 22 | + | bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down | |
| 23 | + | ||
| 24 | + | # При обычном режиме: колесо мыши включает копипейстрежим + прокрутка | |
| 25 | + | bind -n WheelUpPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "copy-mode -e; send-keys -M" | |
| 26 | + | bind -n WheelDownPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "send-keys -M" | |
| 27 | + | # --- Конец настроек поддержки мыши для tmux --- | |
| 28 | + | EOF | |
| 29 | + | ||
| 30 | + | echo "Настройки поддержки мыши добавлены в ${CONFIG_FILE}." | |
| 31 | + | ||
| 32 | + | # Перезагружаем конфигурацию в запущенных сессиях tmux | |
| 33 | + | if tmux info &>/dev/null; then | |
| 34 | + | tmux source-file "${CONFIG_FILE}" | |
| 35 | + | echo "Конфигурация tmux перезагружена." | |
| 36 | + | else | |
| 37 | + | echo "Запущенных сессий tmux не найдено — настройки вступят в силу при следующем запуске tmux." | |
| 38 | + | fi | |
dszubov revised this gist . Go to revision
1 file changed, 2 insertions, 2 deletions
tmux_mouse
| @@ -1,7 +1,7 @@ | |||
| 1 | - | # Включаем поддержку мыши только для прокрутки | |
| 1 | + | # Enabling mouse support for scrolling only | |
| 2 | 2 | set -g mouse on | |
| 3 | 3 | ||
| 4 | - | # Разрешаем выделение текста при зажатой Shift | |
| 4 | + | # Allow text selection while holding down the Shift key | |
| 5 | 5 | bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up | |
| 6 | 6 | bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down | |
| 7 | 7 | bind -n WheelUpPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "copy-mode -e; send-keys -M" | |
dszubov revised this gist . Go to revision
1 file changed, 8 insertions
tmux_mouse(file created)
| @@ -0,0 +1,8 @@ | |||
| 1 | + | # Включаем поддержку мыши только для прокрутки | |
| 2 | + | set -g mouse on | |
| 3 | + | ||
| 4 | + | # Разрешаем выделение текста при зажатой Shift | |
| 5 | + | bind -T copy-mode-vi WheelUpPane send-keys -X scroll-up | |
| 6 | + | bind -T copy-mode-vi WheelDownPane send-keys -X scroll-down | |
| 7 | + | bind -n WheelUpPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "copy-mode -e; send-keys -M" | |
| 8 | + | bind -n WheelDownPane if-shell -F "#{mouse_any_flag}" "send-keys -M" "send-keys -M" | |