Предпосылки и проблемы:
Я создал скрипт tmux, чтобы открыть несколько окон. Это прекрасно работает, но затем я хотел разместить вертикально разделенную панель в одном окне и изменить ее размер до 5 символов. Я не могу заставить мой bash-скрипт правильно изменить размер панели. В зависимости от команд, которые я пробую, он будет увеличивать или уменьшать размер, но при выполнении из bash он действует как ограниченный некоторым диапазоном.
Некоторые команды / варианты, которые я пробовал:
tmux split-window -v -l 5 -t 0
с и без-t 0
tmux split-window -v -p 5 -t 0
с и без-t 0
tmux split-window -v
за которым следуетtmux resize-pane -D 23 -t 1
с параметром -t и без него- Я также пробовал варианты:
tmux send-keys C-b '"' C-m
за которыми следуютtmux send-keys C-b ':resize-pane -D 20'
но обычно это сбрасывает кавычки и команду resize-pane в реальный буфер терминала вместо Выполнение команды с помощью tmux.
Наилучшим сценарием из любого числа из них является изменение размера панели с половины экрана (56 строк / 2 = 28 строк) до 20 строк в высоту (мой терминал имеет высоту 56 строк и, следовательно, половина - 20 = 8). Или, если я установлю для команды resize-pane значение -U для up, а затем установлю какое-то большое число, это сделает панель намного выше, но все равно будет только настолько большой, сохраняя панель 0 определенной высоты. Я просто не могу создать панель и изменить ее размер до 5 - 10 строк от bash-скрипта. Я могу запустить все из перечисленных команд внутри tmux с использованием Cb и (мой ключ по умолчанию префикс) , и они работают точно так же , как и ожидалось.
Мой скрипт tmux bash:
# the name of your primary tmux session
SESSION=$USER
# if the session is already running, just attach to it.
tmux has-session -t $SESSION
if [ $? -eq 0 ]; then
echo "Session $SESSION already exists. Attaching..."
sleep 1
tmux -2 attach -t $SESSION
exit 0;
fi
# create a new session, named $SESSION, and detach from it
tmux -2 new-session -d -s $SESSION
# Now populate the session with the windows you use every day
# 0 - VIM
tmux new-window -t $SESSION:0 -k -n VIM
tmux send-keys -t $SESSION:0 'cd /home/aDir/myDir/' C-m
tmux send-keys -t $SESSION:0 'vim .' C-m
tmux split-window -v -l 5 -t 0 <--- HERE IS WHERE I WAS SWAPPING/TRYING COMMANDS
# 1 - MySQL
tmux new-window -t $SESSION:1 -k -n MySQL 'mysql -u root -p******** mydb'
# 2 - Shell
tmux new-window -t $SESSION:2 -k -n Shell 'sudo -s'
tmux select-window -t $SESSION:0
tmux -2 attach -t $SESSION
Кроме того, я попытался удалить все, кроме начального окна создания нового, и попытался разбить и изменить размер, не отправляя другие команды (например, добавив дополнительные окна и открыв каталог в VIM).
Кроме того, при выполнении этого скрипта я получаю сообщение терминала, говорящее «не удалось подключиться к серверу: соединение отказано», но все мои окна работают и работают, как и ожидалось (MySQL и VIM открываются идеально, и мои команды sudo ждут мой пароль). Не уверен, к какому серверу пытаются подключиться (MySQL является локальным) и не работает, но, по-видимому, не влияет на какую-либо функциональность, которую я ищу.