Поэтому я просто создал несколько панелей в отдельном режиме. Теперь я хотел бы поместить часы во вторую панель (панель № 1).

вот мой код:

tmux new-session -d -s ssh_tmux
tmux splitw -v -p 30 -t ssh_tmux:1.0
tmux splitw -h -p 60 -t ssh_tmux:1.1
#required; otherwise pane numbering is bs
tmux select-pane -t ssh_tmux:1.0
tmux splitw -h -p 30 -t ssh_tmux:1.0
tmux send-keys -t ssh_tmux:1.2 htop Enter
tmux send-keys -t ssh_tmux:1.1 'tmux clock' Enter
tmux a -t ssh_tmux

Проблема в том, что, хотя «tmux clock» введено в правильной панели, часы фактически отображаются в активной панели. Единственный способ решения проблемы я смог найти это установить ssh_tmux:1.1 в качестве активного окна, создать часы с send-keys отправить sleep 0.1s (0,2 работал, 0,1 не было достаточно), а затем установите ssh_tmux:1.0 в качестве активной панели.

Этот обходной путь отстой. Конечно, есть что-то лучше?

1 ответ1

2

Проблема в том, что, хотя «tmux clock» введено в правильной панели, часы фактически отображаются в активной панели.

Да, вот как это должно работать.

Полное, не сокращенное название - tmux clock-mode . Это не отдельное приложение и не рисует часы, как ttyclock ; он просто подключается к серверу tmux и говорит ему перенастроить панель для отображения часов. (И сервер tmux в любом случае не знает, с какой панели вы его запускали.)

Вы можете заметить, что в этом отношении он похож на другие подкоманды tmux (например, tmux send-keys).

Этот обходной путь отстой. Конечно, есть что-то лучше?

Да, аналогично другим подкомандам tmux, вы можете напрямую указать, какую панель настраивать, запустив ваш скрипт tmux clock -t ssh_tmux:1.1 . Это задокументировано как:

clock-mode [-t target-pane]
        Display a large clock.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .