Você escreveu:
tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"
Tente isso, escreva isso em tmux_mail.sh
ou o nome que você quiser:
#!/bin/bash
tmux \
-v \
new-session \
-d \
-s mail \
-n mutt \
mutt \
\; \
new-window \
-d \
-n offlineimap \
"offlineimap -c ~/.dotfiles/mutt/dev.offimap" \
\; \
split-window \
-d \
"offlineimap -c ~/.dotfiles/mutt/trash.offimap" \
\; \
attach
Depois de salvar e tornar executável, execute-o no prompt de comando para aproveitar sua nova sessão de email do tmux:
$ ./tmux_mail.sh
Explicação
-
\;
para tornar cada parte denew-window
ousplit-window
parte de um único comandotmux
contínuo - , então omitimos
-t
, já que você não precisa de-t
para especificar a sessão de destino quando tudo isso é especificado como parte de um único comandotmux
- todas as linhas, exceto as últimas, usam a continuação da linha de bash
\
(uma barra invertida seguida por um espaço, seguido por um retorno de linha) para continuar as linhas do comando que queremos que o bash execute, enquanto nos permite escrever o comando ainda com quase uma opção por linha, para facilitar a leitura e a clareza, o que pode ajudá-lo a manter esse script a longo prazo -
-v
para log detalhado precisa ser especificado no início, conforme a sinopse da sintaxe emman tmux
- o
-d
é desanexar para que não execute o comportamento padrão de anexar ao terminal atual imediatamente, até que tenhamos a chance de especificar totalmente as opções que queremos - assim, no final, quando terminar com todas as nossas opções que queremos que o tmux faça, temos que
attach
para realmente ver o resultado final em nosso terminal - observe que se um programa não é interativo, apenas executa e sai como
echo
, então isso ocorrerá de forma semelhante no tmux, ele apenas executaria o programa e fecharia a janela quando o programa sair
Assim, enquanto seus comandos mutt
e offlineimap
realmente funcionarem e não saiam de imediato normalmente, e funcionem bem fora do tmux, então com esses comandos eles devem funcionar no tmux, criando a sessão tmux que você queria .