Инструменты пользователя

Инструменты сайта


subjects:administration:tmux

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
subjects:administration:tmux [2023/05/05 22:15]
[Автозапуск]
subjects:administration:tmux [2023/05/09 15:36] (текущий)
[Пример конфигурации]
Строка 8: Строка 8:
   * __github.com/​samoshkin/​tmux-config__   * __github.com/​samoshkin/​tmux-config__
   * __github.com/​aleclearmind/​nested-tmux__   * __github.com/​aleclearmind/​nested-tmux__
 +  * __stackoverflow.com/​questions/​35016458/​how-to-write-if-statement-in-tmux-conf-to-set-different-options-for-different-t__
 +  * __stahlke.org/​dan/​tmux-nested__
   * **The Tao of tmux** by //Tony Narlock//:   * **The Tao of tmux** by //Tony Narlock//:
     * __tao-of-tmux.readthedocs.io/​en/​latest__     * __tao-of-tmux.readthedocs.io/​en/​latest__
Строка 37: Строка 39:
 |''​Ctrl+d''​|отключение| |''​Ctrl+d''​|отключение|
  
-==== Choosing sessions, windows and panes ====+==== Закрыть ==== 
 + 
 +  - Войти в режим выбора:​ ''​Ctrl+b''​ ''​w''​ или ''​Ctrl+b''​ ''​s''​. 
 +  - Выбрать стрелочками. 
 +  - Запросить принудительное закрытие:​ ''​Ctrl+b''​ ''​Ctrl+x''​. 
 +  - Согласиться. 
 + 
 +++++ ☛ [EN] sessions, windows, panes and Detaching| 
 + 
 +=== Choosing sessions, windows and panes ===
 There are two key bindings to enter tree mode: There are two key bindings to enter tree mode:
   * ''​Ctrl+b''​ ''​s''​ starts showing only sessions and with the attached session selected;   * ''​Ctrl+b''​ ''​s''​ starts showing only sessions and with the attached session selected;
Строка 67: Строка 78:
  
  
-==== Detaching other clients ​====+=== Detaching other clients ===
 :!: Принудительный разрыв соединений **других** клиентов:​ \\ :!: Принудительный разрыв соединений **других** клиентов:​ \\
 ''​Ctrl+b''​ ''​Shift+d''​ → стрелками выбрать →''​Enter''​. ''​Ctrl+b''​ ''​Shift+d''​ → стрелками выбрать →''​Enter''​.
Строка 82: Строка 93:
  
 Other than using client mode, the ''​detach-client''​ command has a ''​-a''​ flag to detach all clients other than the attached client. Other than using client mode, the ''​detach-client''​ command has a ''​-a''​ flag to detach all clients other than the attached client.
 +
 +
 +++++
  
 ==== Другое ==== ==== Другое ====
Строка 126: Строка 140:
 ==== Автозапуск ==== ==== Автозапуск ====
 Чтобы автоматически запускать ''​tmux'',​ отредактируйте ''​~./​bashrc''​. Чтобы автоматически запускать ''​tmux'',​ отредактируйте ''​~./​bashrc''​.
- 
-=== Расшифровка условий === 
- 
-  * ''​[ -z "​$TMUX"​ ]''​ --- если сессия ''​tmux''​ 
-  * ''​[ -n "​$SSH_TTY"​ ]''​ --- если ''​SSH''​ 
-  * ''​[ "​$EUID"​ -ne 0 ]''​ --- если **не** ''​root''​. 
-  * ''​[ $- =~ i ]''​ -- test for interactive terminal to allow tools like Ansible to work. 
- 
-=== Автозапуск на сервере === 
-Для запуска ''​tmux''​ на удаленном сервере при входе в систему через **SSH** (''​и только **SSH**''​):​ 
-<code bash>if [ -z "​$TMUX"​ ] && [ -n "​$SSH_TTY"​ ] && [ $- =~ i ]; then 
-    tmux attach-session -t ssh || tmux new-session -s ssh 
-    exit 
-fi</​code>​ 
-Необходимо проверять ''​$SSH_TTY''​ вместо ''​$SSH_CONNECTION'',​ что бы работал ''​SFTP''​. 
- 
-=== Автозапуск на Desktop === 
-При любом входе: 
-<code bash>if [ -z "​$TMUX"​ ] && [ "​$EUID"​ -ne 0 ] && [ $- =~ i ]; then 
-    tmux attach-session -t default || tmux new-session -s default 
-    exit 
-fi</​code>​ 
  
 === Автозапуск на Linux (универсальный) === === Автозапуск на Linux (универсальный) ===
Строка 165: Строка 157:
 ################################################################################</​code>​ ################################################################################</​code>​
  
 +== Расшифровка условий ==
 +  * ''​[ -z "​$TMUX"​ ]''​ --- если сессия ''​tmux''​
 +  * ''​[ -n "​$SSH_TTY"​ ]''​ --- если ''​SSH''​
 +  * ''​[ "​$EUID"​ -ne 0 ]''​ --- если **не** ''​root''​.
 +  * ''​[ $- =~ i ]''​ -- test for interactive terminal to allow tools like Ansible to work.
 +Для запуска ''​tmux''​ на удаленном сервере при входе в систему через **SSH** (''​и только **SSH**''​):​
 +Необходимо проверять ''​$SSH_TTY''​ вместо ''​$SSH_CONNECTION'',​ что бы работал ''​SFTP''​.
 ===== Конфигурация ===== ===== Конфигурация =====
 ''​~/​.tmux.conf''​ ''​~/​.tmux.conf''​
Строка 183: Строка 182:
  
 ==== Пример конфигурации ==== ==== Пример конфигурации ====
 +**Нюанс конфигурации** --- префих по-умолчанию стандартный:​ ''​C-b''​ (''​Ctrl+b''​),​ но если определяется,​ что работа идёт через SSH (''​$SSH_CLIENT''​),​ то префикс меняется на ''​C-a''​ (''​Ctrl+a''​),​ также меняется цвет статусбара и справа проступает надпись ''​C-a''​.
 +
 +Проверено на tmux 1.8 и tmux 2.1 .
 +
 <file bash .tmux.conf>​ <file bash .tmux.conf>​
 +###############################################################################​
 +## (Re) Bind keys
 +# Reload tmux config
 +bind r source-file ~/​.tmux.conf
 +###############################################################################​
 +
 +###############################################################################​
 # Automatically set window title # Automatically set window title
 set-window-option -g automatic-rename on set-window-option -g automatic-rename on
 set-option -g set-titles on set-option -g set-titles on
 +
 +set-option -g allow-rename off # prevent window-status-format show very long path 
 +set-option -g automatic-rename on 
 +set-window-option -g automatic-rename on # rename window to reflect current program 
 +###############################################################################​
 ## set the default TERM ## set the default TERM
 #set -g default-terminal "​xterm"​ #set -g default-terminal "​xterm"​
Строка 194: Строка 208:
 set -g terminal-overrides '​xterm*:​smcup@:​rmcup@'​ set -g terminal-overrides '​xterm*:​smcup@:​rmcup@'​
 set -g history-limit 10000 set -g history-limit 10000
 +
 +#~ set-option -g default-command bash 
 +set-option -g default-command bash 
 +
 +set -g display-time 1500 # Время в миллисекундах,​ сколько будут отображаться сообщения (в статусбаре к примеру) 
 +
 +setw -g monitor-activity on 
 +###############################################################################​
 # If either of the VISUAL or EDITOR environment variables are set to something containing vi (such as vi, vim, nvi) when the tmux server is first started, both of these options are set to vi. # If either of the VISUAL or EDITOR environment variables are set to something containing vi (such as vi, vim, nvi) when the tmux server is first started, both of these options are set to vi.
 set -g status-keys vi set -g status-keys vi
 set -g mode-keys vi set -g mode-keys vi
 setw -g mode-keys vi setw -g mode-keys vi
- +###############################################################################​ 
-# Мышь +## Мышь 
-До версии 2.1+## tmux 1.8
 #set -g mouse-resize-pane on #set -g mouse-resize-pane on
 #set -g mouse-select-pane on #set -g mouse-select-pane on
 #set -g mouse-select-window on #set -g mouse-select-window on
 #set -g mode-mouse on #set -g mode-mouse on
-# С версии 2.1+## С версии 2.1
 #setw -g mouse on #setw -g mouse on
 set -g mouse on set -g mouse on
-# +###############################################################################​
-setw -g monitor-activity on +
- +
-Reload tmux config +
-bind r source-file ~/​.tmux.conf +
- +
-# +
-set-option -g allow-rename off prevent window-status-format show very long path +
-set-option -g automatic-rename on +
-set-window-option -g automatic-rename on rename window to reflect current program +
-set-option -g default-command bash +
- +
-# +
-set -g display-time 1500 Время в миллисекундах,​ сколько будут отображаться сообщения (в статусбаре к примеру) +
- +
-THEME+
  
-# The colors available to tmux are:+###############################################################################​ 
 +## THEME - help 
 +###############################################################################​ 
 +# https://​github.com/​jimeh/​tmux-themepack 
 +###############################################################################​ 
 +## The colors available to tmux are:
 # * black, red, green, yellow, blue, magenta, cyan, white. # * black, red, green, yellow, blue, magenta, cyan, white.
 # * bright colors, such as brightred, brightgreen,​ brightyellow,​ brightblue, brightmagenta,​ brightcyan. # * bright colors, such as brightred, brightgreen,​ brightyellow,​ brightblue, brightmagenta,​ brightcyan.
Строка 234: Строка 245:
 # #
 # You can use [bg=color] and [fg=color] to adjust the text color and background within for status line text. This works on status-left and status-right. # You can use [bg=color] and [fg=color] to adjust the text color and background within for status line text. This works on status-left and status-right.
 +# Мои примечания:​ Для лучшей совместимости рекомендую использовать только основные 7 цветов,​ причём светлым по тёмному (желательно чёрному).
 +# Для поддержки прозрачности термиинала,​ необходимо использовать bg=default
 +###############################################################################​
 +## Задание опций
 +# Глобальное:​
 +# set -g [имя] [значение]
 +# Для окна - следующие две строчки равнозначны:​
 +# set-window-option -g window-* [зачение]
 +# set -gw window-* [зачение]
 +# Разобраться:​ помимо опций "​g"​ и "​w"​ есть "​o"​ (кэширование?​),​ "​q"​ (значение?​),​ "​F"​ (распарсить q?) примеры:​ -goq; -gqF; -goqF; -gwF;
 +# set, setw, set-option, set-window-option
 +###############################################################################​
 +## Перечень основных элементов:​
 +#g display-panes-active-colour display-panes-colour
 +#g message-command-style message-style
 +#set -g status-utf8 on # tmux 1.8
 +#g status [on/​off] status-interval [int] status-position [top/​bottom] status-justify [centre] status-style
 +#g status-left status-left-length [int] status-left-style
 +#g status-right status-right-length [int] status-right-style
 +#gw clock-mode-colour clock-mode-style [24]
 +#gw mode-style
 +#gw pane-active-border-style pane-border-style
 +#gw ?? window-status-activity-style window-status-style
 +#gw window-status-current-style window-status-current-format ["#​I:#​W#​F"​] window-status-format ["#​I:#​W#​F"​] window-status-separator
 +## Примечания:​
 +# Простые значения "​-g"​ пишутся одним словом без ковычек.
 +# У всего, что заканчивается на "​*-style"​ и не только есть возможность его расписать цвета как 3 компонента:​ "​*-fg";​ "​*-bg";​ "​*-attr"​ (dim, bright). Ну или как строку:​ "​fg=[color],​ bg=[color], [attr]"​. При этом, опции "​*-style"​ нет в tmux 1.8.
 +# "​*-length"​ означает не строго длину, а максимальную длину, int.
 +###############################################################################​
 +## Пред-установленные значения,​ внутри кавычек,​ перед символ #
 +# status
 +# "#​S"​ "#​I"​ "#​P"​ "#​H"​ "​%H:​%M:​%S"​ "​%d-%b-%y"​
 +# window-status
 +# "#​I:#​W#​F"​ "#​I:#​W#​F"​
 +# Вызов значения из bash:
 +# '#(cut -d " " -f 1-3 /​proc/​loadavg)'​ '#​(tmux ls|wc -l)'
 +###############################################################################​
 +
 +###############################################################################​
 +# THEME
 +###############################################################################​
 +## Предустановки:​
  
 # Настройки стутусбара # Настройки стутусбара
-#set -g status-utf8 on+#set -g status-utf8 on # tmux 1.8
 set -g status on set -g status on
-set -g status-interval ​30 +set -g status-interval ​3 # sec 
-set -g status-position bottom # Позиция стутусбара+set -g status-position bottom 
 +set -g status-justify centre 
 +set -g status-bg default ​tmux 1.8-2.1
  
-Цвета статусбара +#set -g status-left "#​[bg=yellow,​fg=black]#​S#​[fg=black,​bg=white]#(tmux ls|wc -l)#​[default] #​[fg=green]#​(whoami)#​[fg=yellow]@#​[fg=green]#​H#​[default]┇#​I:#​P┇"​ 
-set -g status-fg white +#~ set -g status-left "#​[fg=yellow,​bg=default]#​S#​[fg=black,​bg=white]#​(tmux ls|wc -l)#​[default] #​[fg=green]#​(whoami)#​[fg=yellow]@#​[fg=green]#​H#​[fg=white]┇#​I:#​P┇#​[default]"​ 
-set -g status-bg default +set -g status-left "#[fg=yellow,​bg=default]#​S#​[fg=black,​bg=white]#​(tmux ls|wc -l)#​[default] #​[fg=green]#​(whoami)#​[fg=yellow]@#​[fg=green]#​H#​[fg=white]┇#​I:#​P┇#​[default]"​
- +
-#+
 set -g status-left-length 40 # max-size set -g status-left-length 40 # max-size
-set -g status-left-fg yellow +set -g status-left-bg black
-set -g status-left-bg ​default +
-#set -g status-left '(#S) #​[fg=green]#​(whoami)#​[fg=yellow]@#​[fg=green]#​H ' +
-#set -g status-left '​(#​S)#​[fg=white]:#​[fg=red]#​(tmux ls|wc -l)#​[default] #​[fg=green]#​(whoami)#​[fg=yellow]@#​[fg=green]#​H#​[default]┇'​ +
-set -g status-left '#​[bg=yellow,​fg=black]#​S#​[fg=red,​bg=white]#​(tmux ls|wc -l)#​[default] #​[fg=green]#​(whoami)#​[fg=yellow]@#​[fg=green]#​H#​[default]┇'​ +
-+
-set -g status-right-length 30 # max-size +
-set -g status-right-fg green +
-set -g status-right-bg default +
-# set -g status-right ' #(cut -d " " -f 1-3 /​proc/​loadavg)#​[default] #​[fg=yellow]%H:​%M#​[default] ' +
-set -g status-right '#​[fg=yellow]┇#​[default]#​(cut -d " " -f 1-3 /​proc/​loadavg)#​[default]#​[fg=black,​bg=white,​dim]%H:​%M#​[default]'​+
  
-Цвета активных окон +#set -g status-right "#​[default]┇#​[fg=yellow]#​(cut ​-d ' ' -f 1-3 /​proc/​loadavg)#​[default] #[fg=black,​bg=white,​dim]%H:​%M#​[default]"​ 
-set-window-option ​-g window-status-current-fg black +#~ set -g status-right "#​[fg=white]┇#​[fg=green]#​(cut ​-d ' ' ​-f 1-3 /​proc/​loadavg)#​[default] #​[fg=yellow,​bg=default]%H:​%M#​[default]"​ 
-set-window-option ​-g window-status-current-bg brightyellow +set -g status-right "#​[fg=white]┇#​[fg=default]C-a┇#​[fg=green]#​(cut -d ' ' -f 1-3 /​proc/​loadavg)#​[default] #​[fg=yellow,​bg=black]%H:​%M#​[default]"​ 
-set-window-option ​-g window-status-current-attr bright+set -g status-right-length 40 # max-size 
 +set -g status-right-bg black
  
-Цвета заголовков окон ​ГЛЮЧИТ +set -gw window-status-activity-fg black tmux 1.8-2.1 
-set-window-option ​-window-status-fg ​blue +set -gw window-status-activity-bg white # tmux 1.8-2.1 
-set-window-option ​-window-status-bg white +set -gw window-status-fg ​green # tmux 1.8-2.1 
-set-window-option ​-window-status-attr dim+set -gw window-status-bg white # tmux 1.8-2.1 
 +set -gw window-status-current-fg ​white # tmux 1.8-2.1 
 +set -gw window-status-current-bg green # tmux 1.8-2.1 
 +set -gw window-status-current-attr bright # tmux 1.8-2.1 
 +set -gw window-status-separator "​┇"​ 
 +###############################################################################​ 
 +## local and remote sessions 
 +# if-shell "​shell_command"​ "​true"​ "​false"​ 
 +if-shell "test -n '​$SSH_CLIENT'"​ \ 
 + "set -g status-bg blue; set -g status-left-bg blue; set -g status-left-attr bright; set -g status-right-bg white; set -g status-right-fg brightred; set -g status-right-attr dim; unbind C-b; set -g prefix C-a; bind C-a send-prefix;"​ # Ctrl+a for Remote session, Ctrl+b (default) for local 
 +###############################################################################​
  
-# Цвета командной строки 
-set -g message-fg default 
-set -g message-bg default 
-set -g message-attr bright 
-# 
 </​file>​ </​file>​
subjects/administration/tmux.1683314105.txt.gz · Последние изменения: 2023/05/05 22:15 —

На главную страницу Обучение Wikipedia Тестирование Контакты Нашли ошибку? Справка

Записаться на занятия

Ошибка Записаться на занятия к репетитору

Телефоны:

  • +7 (910) 874 73 73
  • +7 (905) 194 91 19
  • +7 (831) 247 47 55

Skype: eduVdom.com

закрыть[X]
Наши контакты