Como abrir o terminal, dividir em 9 terminais e alternar entre eles usando um script?

Como abrir o terminal, dividir em 9 terminais e alternar entre eles usando um script?

Eu gostaria de abrir um terminal, dividi-lo em, digamos, 9 partes (3x3) e executar algum script bash. Mas para cada parte do terminal um script diferente.

Isso pode ser feito usando perl, python ou até mesmo bash?

Como posso alternar entre esses pequenos terminais sem usar atalhos de teclado?

Ah, a propósito, estou usando terminator. E se existe algum outro emulador de terminal que habilite tal funcionalidade, qual é?

Responder1

Para me plagiar, você pode configurar um perfil com as configurações desejadas (instruções adaptadas deaqui):

  1. Execute terminatore configure o layout desejado. Você pode usar Ctrl+ Shift+ Epara dividir janelas verticalmente e Ctrl+ Shift+ O(que é O como em oodles, não zero) para dividir horizontalmente. Para este exemplo, criei um layout com 6 painéis:

    insira a descrição da imagem aqui

  2. Clique com o botão direito na terminatorjanela e escolhaPreferências. Uma vez oPreferênciasjanela está aberta, vá paraLayoutse cliqueAdicionar:

    insira a descrição da imagem aqui

  3. Isso irá povoar oLayoutslist com seu novo layout:

    insira a descrição da imagem aqui

  4. Encontre cada um dos terminais que você criou no layout e clique neles. Em seguida, à direita, digite o comando que deseja executar na inicialização:

    insira a descrição da imagem aqui

    IMPORTANTE:Observe que o comando é seguido por ; bash. Caso contrário, os terminais não ficarão acessíveis, pois executarão o comando que você der e sairão. Você precisa iniciar um shell após cada comando para poder usar os terminais.

    Depois de definir todos os comandos, clique emFechare então saia terminator.

  5. Abra o terminatorarquivo de configuração ~/.config/terminator/confige exclua a seção em layouts da configuração padrão. Em seguida, altere o nome do layout que você criou para o padrão. Deve ser algo assim:

     [global_config]
     [keybindings]
     [profiles]
       [[default]]
     [layouts]
       [[default]]
         [[[child0]]]
           position = 446:100
           type = Window
           order = 0
           parent = ""
           size = 885, 550
         [[[child1]]]
           position = 444
           type = HPaned
           order = 0
           parent = child0
         [[[child2]]]
           position = 275
           type = VPaned
           order = 0
           parent = child1
         [[[child5]]]
           position = 219
           type = HPaned
           order = 1
           parent = child1
         [[[child6]]]
           position = 275
           type = VPaned
           order = 0
           parent = child5
         [[[child9]]]
           position = 275
           type = VPaned
           order = 1
           parent = child5
         [[[terminal11]]]
           profile = default
           command = 'df -h; bash'
           type = Terminal
           order = 1
           parent = child9
         [[[terminal10]]]
           profile = default
           command = 'export foo="bar" && cd /var/www/; bash'
           type = Terminal
           order = 0
           parent = child9
         [[[terminal3]]]
           profile = default
           command = 'ssh -Yp 24222 [email protected]'
           type = Terminal
           order = 0
           parent = child2
         [[[terminal4]]]
           profile = default
           command = 'top; bash'
           type = Terminal
           order = 1
           parent = child2
         [[[terminal7]]]
           profile = default
           command = 'cd /etc; bash'
           type = Terminal
           order = 0
           parent = child6
         [[[terminal8]]]
           profile = default
           command = 'cd ~/dev; bash'
           type = Terminal
           order = 1
           parent = child6
     [plugins]
    

O resultado final é que quando você executa terminatorele será aberto com 6 painéis, cada um dos quais executou ou está executando os comandos que você especificou:

insira a descrição da imagem aqui

Além disso, você pode configurar quantos perfis diferentes desejar e iniciar o terminador com o -pswitch fornecendo um nome de perfil ou alternar manualmente para o perfil desejado após o lançamento.

Responder2

Você está procurando por multiplexador de terminal tmux.

https://github.com/tmux/tmux

Responder3

Quando eu estava usando terminatoreste é o arquivo rc que usei para abrir vários terminais e executar aplicativos. Salve-o em .config/terminator/config.

[global_config]
  title_hide_sizetext = True
  enabled_plugins = LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
[keybindings]
[profiles]
  [[default]]
    font = DejaVu Sans Mono 9
    cursor_blink = False
    scrollback_infinite = True
[layouts]
  [[default]]

    [[[root]]]
      position = -4:0
      type = Window
      order = 0 
      parent = ""
      size = 1072, 1884

    [[[grand]]]
      position = 536 
      type = HPaned
      order = 0 
      parent = root
    [[[left]]]
      position = 942 
      type = VPaned
      order = 0 
      parent = grand
    [[[right]]]
      position = 942 
      type = VPaned
      order = 1 
      parent = grand



    [[[terminal1]]]
      profile = default
      type = Terminal
      order = 0 
      parent = left
      command = "cd ~/code/foo; bash"
    [[[terminal2]]]
      profile = default
      type = Terminal
      order = 1 
      parent = left
      command = "cd ~/bar/baz; bash"



    [[[terminal3]]]
      profile = default
      type = Terminal
      order = 1 
      parent = right
      command = ""
    [[[terminal4]]]
      profile = default
      type = Terminal
      order = 0 
      parent = right
      command = "cmus; bash"



[plugins]

EDITAR:Observe que esta informação provavelmente veio da postagem de Terdon em um tópico muito anterior. Estou usando essa configuração há alguns meses, mas a postagem do Terdon aqui parece muito familiar!

Responder4

Script wrapper para dividir o emulador de terminal Terminator https://github.com/AlekseyChudov/terminator-split

informação relacionada