Como detectar o nível do TMux

5

Existe alguma maneira de detectar quantos níveis de tmux estou atualmente? Eu consegui hackear com 2 níveis, simplesmente verificando [[ -n "$SSH_CLIENT" && -n "$TMUX" ]] , para que eu possa ter um nível no cliente e outro no servidor. Eu uso essa verificação para configurar um prefixo diferente (ctrl-a, ctrl-b).

Mas agora eu estou achando que eu quero ssh dentro do shell do servidor, então gostaria de ter um terceiro nível, exigindo assim que uma terceira combinação de prefixo seja configurada.

    
por mahemoff 22.02.2014 / 23:00

1 resposta

2

Aparentemente, não há como verificar em que profundidade você está atualmente. No entanto, você pode facilmente preparar sua própria solução. Basta criar uma variável em .bashrc / .bash_profile / .profile da seguinte forma:

if [[ ! -n "${LC_NESTING_DEPTH}" ]]; then
    export LC_NESTING_DEPTH=1
else
    export LC_NESTING_DEPTH=$(expr 1 + $LC_NESTING_DEPTH)
fi

Como o .bashrc é carregado toda vez que você entra no tmux, a variável é incrementada em dois. Você pode até passar a variável sobre ssh adicionando SendEnv LC_NESTING_DEPTH à ~/.ssh/config em sua máquina e AcceptEnv LC_NESTING_DEPTH na /etc/ssh/sshd_config na máquina em que você está ssh-ing (veja man ssh_config e man sshd_config para mais informações sobre isso). Eu não pude testar o ssh-ing de uma sessão ssh em execução, mas eu suponho que você possa passar a variável de lá também.

    
por 13.03.2016 / 23:20

Tags