LINUX.ORG.RU

tmux size pane

 , ,


0

1

В запущенной сесси команда

tmux splitw -h -p 90
работает корректно

Как только это запускается скриптом, размер pane не соответствует дейтсвительности. То есть pane 0 занимает почти половину, если окно терминала сделать маленький, то pane 0 становится слишком мелким но никак не 1/10

tmux resize-pane
тоже не срабатывает в скрипте. Что я не так делаю? разные способы через selectp тоже пробовал, даже send-keys «tmux resize-pane» C-m всё равно не даёт нужный результат. Возможно нужно изначально указать размер будущего окна? Почему он не воспринимает 90 как 90% от размера окна? Пробовал в разных системах, результат одинаковый.

Скрипт такой

tmux start-server
tmux new-session -d -s work -n work
tmux splitw -h -p 90
tmux attach

Помог костыль [code] tmux start-server tmux new-session -d -s work -n work tmux send-keys «tmux splitw -h -p 90» C-m tmux attach [/code] Но это не совсем то что хотелось бы использовать на постоянной основе да и выглядит совсем криво..

vachicul
() автор топика

Кажется я понимаю почему. Смотри:

  1. Запускается tmux. Он по умолчанию считает, что у тебя стандартный 80x25 терминал.
  2. tmux делит окно в отношении 1:9, соотвественно где-то 7 колонок из 80 достается левой части, 72 — правой, еще одна уходит на разделитель.
  3. Теперь ты наверняка подключаешься к tmux’у из терминала с большим кол-вом колонок через tmux attach. Он видит, что терминал большой и ресайзит так: делит дополнительные колонки между панелями поровну. То есть если у тебя терминал в 200 колонок, то 200-80=120 дополнительных колонок делятся поровну и слева получается 7+60=67, а справа 72+60=132 колонки. Это ты и видишь.

Я пока не знаю, как это исправить, возможно надо как-то в start-server указать.

Как чинить не знаю, есть переменная default-size, может ее передать в начале как-то?

Edit: а, нет, похоже, все проще. в tmux new-session добавить опцию -x $COLUMNS или как-то так

squareroot ★★★★
()
Последнее исправление: squareroot (всего исправлений: 1)
Ответ на: комментарий от squareroot

Как определить количество колонок? Что будет происходить при attach из другого окна другого размера? Криво этот момент конечно реализован. Всё должно высчитываться в % а не в каких-то колонках

vachicul
() автор топика
Ответ на: комментарий от vachicul

Как определить количество колонок?

Везде по-разному, в bash’е есть переменная $COLUMNS, см мое исправление выше

Что будет происходить при attach из другого окна другого размера?

Хз, видимо, все будет продолжать непропорционально изменяться.

Криво этот момент конечно реализован. Всё должно высчитываться в % а не в каких-то колонках

Свободное ПО, код открыт, patches welcome, все как всегда.

squareroot ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.