Como iniciar o tmux com vários painéis abertos ao mesmo tempo?

23

Suponha que eu inicie tmuxe execute imediatamente Ctrl+ b+ %e Ctrl+ b+ ".

Isso me dá um painel alto no lado esquerdo da tela; o lado direito da tela tem um painel superior e inferior.

Como posso configurar o tmux para iniciar nesta configuração sem precisar digitar esses comandos?

Mark Harrison
fonte
Se o seu requisito é abrir alguns terminais de uma só vez em um único clique, você pode fazê-lo com o terminador . Instale-o no centro de software.
SAGAR Nair 27/09/16
Obrigado, é um bom comando para saber! No meu caso particular, isso é para uma sessão ssh em um computador remoto.
Mark Harrison

Respostas:

15

Você pode usar o seguinte script de shell para sua configuração:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

Isso fornecerá a configuração necessária da tela com os seguintes comandos, como você mencionou. tmux -> Ctrl+ b+ %-> Ctrl+ b+"

Para referência, use a página de manual tmux .

Harshit
fonte
4

Pode ser fácil ativar e desativar tmuxsessões automáticas no login usando o aplicativo Byobu . Você pode usar o Byobu como uma interface para tmuxatender a essa necessidade, simplificando o que você está pedindo. Em um terminal, execute os seguintes comandos:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

Quando o usuário root efetua login pelo console, SSH ou com sudo -i, o Byobu se conecta a uma tmuxsessão existente ou cria uma nova se ainda não estiver em execução. Use em sudo -ivez de sudo -s. A -sopção inicia apenas um shell, não um shell de logon. Você deve sudo -iemular um logon completo, que também carrega roots ~/.profile, e é aqui que o byobu se instalará quando você executar

byobu-enable.

Você pode configurar diferentes sessões .tmux.confcomo abaixo:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

E então você pode formatar as sessões conforme necessário:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

Isso abriria duas janelas, a segunda com o nome foo / bar e seria dividida verticalmente ao meio (50%) com o foo correndo acima da barra. O foco estaria na janela 2 (foo / bar), painel superior (foo).

O Byobu simplifica muito a configuração e a inicialização do tmux.

Abhishek Tandon
fonte
11
por que bind S vs bind s? (primeiro grande S, então pequena s?)
knb
3

O plugin tmux-ressurrect permitirá configurar a persistência da sessão, além de fornecer funcionalidade adicional para salvar e restaurar configurações nas sessões do tmux.

Muitos recursos adicionais estão disponíveis. Na página da web do plug-in:

" Este plugin faz o possível para salvar e restaurar todos os detalhes do seu ambiente tmux. Veja o que foi resolvido:

  • todas as sessões, janelas, painéis e sua ordem
  • diretório de trabalho atual para cada painel
  • layouts exatos do painel nas janelas (mesmo quando ampliados)
  • sessão ativa e alternativa
  • janela ativa e alternativa para cada sessão
  • janelas com painel ativo de foco para cada janela
  • programas "sessões agrupadas" (recurso útil ao usar o tmux com vários monitores) em execução em um painel! "

Instalação:

  1. No terminal, navegue até o diretório do plugin tmux (no meu caso ~/dotfiles/tmux/plugins).
  2. Clonar o repositório com o comando: git clone https://github.com/tmux-plugins/tmux-resurrect.

  3. Edite seu .tmux.confarquivo e adicione a linha set -g @plugin 'tmux-plugins/tmux-resurrect'.

  4. Atualizar o meio ambiente tmux com o comando: tmux source-file ~/dotfiles/tmux/tmux.conf.
  5. Digite o layout que você deseja. Neste caso Ctrl- b %e Ctrl- b ".
  6. Salve sua sessão do tmux digitando o comando Ctrl- b+ Ctrl- s.
  7. Quando você iniciar sua sessão tmux, digite o comando Ctrl- b+ Ctrl- rpara restaurar sua sessão tmux.

Como mencionado anteriormente, além de configurar o layout do painel da sessão tmux, este plug-in também pode configurar diretórios de trabalho persistentes, além de reiniciar seus aplicativos em execução a cada sessão.

Kevin Bowen
fonte
2

Eu escrevi para mim um pequeno script bash :

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

e colocar um alias no meu ~ / .bash_aliases

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

Então agora eu posso simplesmente digitar tmuxv PYTHONe tenho uma sessão tmux dividida verticalmente com uma janela chamada PYTHON, o que é legal porque o nome da janela é refletido no nome da guia do meu gnome-terminals.

anarchist912
fonte
11
Boa resposta, mas remova a pergunta no final. Tente fazer isso como uma nova pergunta, o que garantirá que mais pessoas o vejam.
Tom Brossman