Adicionar dinamicamente nova seção Terminator para novo programa

1

Estou usando algo semelhante a um script de shell que lança vários softwares, cada peça precisando de seu próprio terminal para saída (especificamente, eu sou lançando vários nós ROS a partir de um comando roslaunch ). Atualmente, ele é executado da seguinte forma:

xterm -e ./startProgram1
xterm -e ./startProgram2
xterm -e ./startProgram3

Que abrirá cada um dos programas em um novo terminal. Eu gostaria de manter essa funcionalidade, mas em vez de ter um novo terminal separado para cada um, gostaria de uma nova seção em um gerenciador como o Terminator (ou seja, em vez de abrir um novo terminal, ele cria uma nova seção na janela do Terminator existente) e coloca a saída nessa nova seção). Isso seria possível? Por causa das especificidades do ROS (veja o link acima), eu só posso especificar um "terminal prefixo", ou seja, a parte "xterm -e" do comando que vem antes do comando para iniciar o programa.

    
por Jordan 07.05.2015 / 22:25

1 resposta

1

Você pode usar tmux . Aqui eu descrevo como iniciar o tmux com quatro painéis.

No seu caso, você pode usar e adaptar este script.

#!/bin/bash

session="mysession"

if tmux has-session -t "$session"; then
  "Session $SESSION already exists."
  exit 0
fi

# start ./startProgram1 here
tmux new-session -d -s "$session" mc

# start all other applications
# use -v for vertical split and -h for horizontal

tmux select-window -t "$session":0

# start ./startProgram2 here
tmux split-window -v nano

tmux select-window -t "$session":0

# start ./startProgram3 here
tmux split-window -h vi

tmux attach -t "$session"

O comportamento atual é

    
por A.B. 08.05.2015 / 08:39