Я использую две отдельные сессии tmux
, и у меня есть следующие записи в /etc/tmux.conf
:
set -g base-index 1
new -s logi -n cmd
neww -n logi "cat /dev/logi | ccze -m ansi -p syslog -C"
splitw -t 1 -v -p 50
selectw -t 2
selectp -t 0
new -s standard -n htop "htop"
neww -n cmd
splitw -t 2 -v -p 50
selectw -t 2
selectp -t 1
Я начинаю сессию standard
, вызывая следующую команду:
urxvtc -name 'tmux' -e bash -c 'tmux attach-session -t standard'
Если сеанса нет, он создает его, если он есть, он присоединяется. Как видите, у меня есть два окна, одно из которых разделено на 2 панели. Когда я перезагружаю файл конфигурации, я получил 2 дополнительных окна из другого сеанса, и оба были добавлены к уже существующим. Кроме того, предыдущие окна получили одну дополнительную панель. Две дополнительные панели понятны, ни в одной из них нет выполненных команд (htop).
Есть ли способ перезагрузить конфигурационный файл так, чтобы он применялся только к присоединенному сеансу? Или я должен забыть о перезагрузке файла конфигурации, когда я использую сеансы, и чтобы применить новые настройки, я должен использовать tmux kill-server
и начать сеансы заново?
[[: not found
(7-я строка)#!/bin/bash
.Вам не нужно использовать скрипт-обертку, вы можете сделать это с помощью
source-file
команды.Я разделил мою
.tmux.conf
на две части, и это только источник тех:Затем
session.conf
содержит определения панели:И
options.conf
содержит только определения параметров:Таким образом,
bind R
источник может быть только источникомoptions.conf
и все будет перезагружено, но новые панели не будут созданы.Один небольшой недостаток заключается в том, что если вы хотите изменить расположение окон, вам нужно выйти и начать новый сеанс.
источник
Я создал этот скрипт . Для этого не нужен tmuxinator, ruby или другие. Это просто скрипт bash, настраиваемый.
Я настраиваю конфигурационный файл mi как:
Я могу настроить все свои проекты. Остальное делается скриптом:
источник