TMUX — терминальный мультиплексор.

Установка, настройка, эксплуатация.

Модератор: ROOT

TMUX — терминальный мультиплексор.

Сообщение ROOT » 03 авг 2017, 15:49

Оглавление
Темы
 Установка TMUX 
 Автоматизация запуска при доступе по SSH 
 Некоторые клавиши данной конфигурации 


 Установка TMUX 
Tmux — терминальный мультиплексор. Он позволяет создавать несколько терминалов (или окон), каждый из которых выполняет отдельную программу, а так же управлять этими терминалами на одном экране. tmux может быть отвязан от экрана и продолжать свою работу в фоновом режиме, а позже — привязан вновь.
Установка TMUX
Код: выделить все
dnf install tmux

Пример конфигурационного файла для tmux (~/.tmux.conf)
Код: выделить все
#VER 1
#set-window-option -g mode-keys emacs
set -gw mode-keys emacs
set-option -g status-keys emacs
set-option -gq utf8 on
# Set ability to capture on start and restore on exit window data when running an application
setw -g alternate-screen on
# Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50
################################################
# Lengthen the amount of time status messages are displayed
set-option -g display-time 2000
set-option -g display-panes-time 3000

# Allow the arrow key to be used immediately after changing win$
set-option -g repeat-time 0

# Размер истории
set -g history-limit 10000

# Status Bar
set-option -g status-justify centre
#set-option -g status-utf8 on
set-option -g status-bg black
set-option -g status-fg cyan
set-option -g status-interval 5
set-option -g status-right-length 30
set-option -g status-left-length 30
set-option -g status-left '#[fg=magenta]Name Session:#S'
set-option -g status-right '#[fg=magenta]#(cut -d " " -f 1-3 /proc/loadavg)#[default]'
set-window-option -g monitor-activity on
set-window-option -g window-status-current-fg colour154
set-window-option -g window-status-fg colour243
set-option -g pane-border-fg green
set-option -g pane-active-border-fg green
set -g window-status-current-bg green
set -g window-status-current-fg black
set -g window-status-current-attr bold

# rename window
set-option -g set-titles on
set-option -g set-titles-string '#S:#I.#P #W' # window number,program name,active (or not)
set-window-option -g automatic-rename on

# terminal type
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g default-terminal "xterm-256color"
# No delay for escape key press
set -sg escape-time 0

# CLOCK
set-window-option -g clock-mode-colour cyan
set-window-option -g clock-mode-style 24

# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
set -g visual-bell off

# Сообщения
set-window-option -g mode-bg magenta
set-window-option -g mode-fg black
set-option -g message-bg magenta
set-option -g message-fg black

# Нумерация сеансов,окон и панелей начинается с нуля,
# если не указан параметр base-index со значением 1
set -g base-index 1
set-window-option -g pane-base-index 1
########################################################
unbind %
unbind '"'
unbind x
unbind C-o
unbind k
unbind j
unbind h
unbind l
################################################
# Mouse Mode
# привязать главный префикс на "`", по умолчанию находится на "ctrl-b"
set -g prefix `
bind ` send-prefix

# toggle mouse mode to allow mouse copy/paste
# set mouse on with prefix m
bind m \
    set-option -g mouse on \;\
        set-option -gq mouse-resize-pane on \;\
        set-option -gq mouse-select-pane on \;\
    set-option -gq mouse-select-window on \;\
    display 'Mouse: ON'

# set mouse off with prefix M
bind M \
    set-option -g mouse off \;\
    set-option -gq mouse-resize-pane off \;\
    set-option -gq mouse-select-pane off \;\
    set-option -gq mouse-select-window off \;\
    display 'Mouse: OFF'
################################################
# zoom this pane to full screen
bind + \
    new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
    swap-pane -s tmux-zoom.0 \;\
    select-window -t tmux-zoom
# restore this pane
bind - \
    last-window \;\
    swap-pane -s tmux-zoom.0 \;\
    kill-window -t tmux-zoom
###############################################
# перечитать конфигурационный файл, `r
unbind R
bind R source-file ~/.tmux.conf
bind-key R source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"
# Редактирование конфигурационного файла
bind-key E split-window -h "emacs ~/.tmux.conf"

bind-key H split-window -v
bind-key V split-window -h
bind-key a send-keys `
bind-key X kill-pane
bind-key K confirm-before kill-window
bind-key N rotate-window -U
bind-key P rotate-window -D
bind-key L clear-history

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Shift arrow to switch windows
bind -n S-Left  previous-window
bind -n S-Right next-window

bind-key F swap-pane -U
bind-key D swap-pane -D
# Double press <prefix> to move to last window
bind-key ` last-window



 Автоматизация запуска при доступе по SSH 
поместить следующую секцию в ~/.bashrc
Код: выделить все
...
########################################
function TMUX_CONNECTION() {
if [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then
    # Attempt to discover a detached session and attach it, else create a new session
    # -2 Force tmux to assume the terminal supports 256 colours.
    # -d Отключить сеанс от других экземпляров
    # -s Создать именованную сессию
    # -t прицепиться к сессии
    WHOAMI=$(whoami)
    if tmux has-session -t $WHOAMI 2>/dev/null; then
        tmux attach-session -t $WHOAMI
    else
        tmux new-session -s $WHOAMI -d
    fi
fi
}
TMUX_CONNECTION
########################################
...

Так же можно создать псевдоним для запуска TMUX вручную
Код: выделить все
alias tmx='tmux attach-session -t $(whoami) || tmux new-session -s $(whoami)'



 Некоторые клавиши данной конфигурации 
"`"главный префикс - клавиша или сочетание с префикс начинаются команды tmux (далее команды приведены без него)
`Последнее окно
Rперечитать конфигурационный файл,
MРедактирование конфигурационного файла
Hразделить окно по горизонтали
Vразделить окно по вертикали
aнабрать символ "`"
XУбить панель или Ctrl+d
KСпрашивает закрывать или нет панель
Nпереход по окнам
Pпереход по окнам
LОчистить историю
Alt + стрелкипереключения между панелями
Shift + стрелкипереключения между окнами
FПоменять панели местами
DПоменять панели местами
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
ROOT
Администратор
 
Сообщений: 136
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron