Qual é o “modo de controle” no tmux?

0

De acordo com man tmux para verificar a opção de lançamento:

-C: Start in control mode (see the CONTROL MODE section). Given twice (-CC) disables echo.

Em seguida, na seção do modo de controle do man tmux , há a seguinte descrição:

CONTROL MODE
     tmux offers a textual interface called control mode.  This allows
     applications to communicate with tmux using a simple text-only protocol.

     In control mode, a client sends tmux commands or command sequences
     terminated by newlines on standard input.  Each command will produce one
     block of output on standard output.  An output block consists of a %begin
     line followed by the output (which may be empty).  The output block ends
     with a %end or %error.  %begin and matching %end or %error have two
     arguments: an integer time (as seconds from epoch) and command number.
     For example:

           %begin 1363006971 2
           0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active)
           %end 1363006971 2

     The refresh-client -C command may be used to set the size of a client in
     control mode.

     In control mode, tmux outputs notifications.  A notification will never
     occur inside an output block.

Não sei ao certo o que isso significa, mas pelo menos até onde eu experimento alguns comandos e tento ver a aparência e aparência dele via ( tmux -CC ), parece o mesmo de quando eu inicio via tmux new-session .

Então, qual é o "modo de controle" e o que o diferencia do modo normal?

EDITAR

Descobri que a sessão e a janela que foi iniciada por meio do modo de controle ( -CC ) não reagem ao atalho de teclado dos comandos do tmux, como a divisão de janelas. Então, qual é o ponto de usar o modo de controle em primeiro lugar?

    
por Blaszard 04.07.2018 / 15:34

2 respostas

1

O aspecto interessante do modo de controle é que você pode escrever um processo em segundo plano que ouve um processo real do tmux. Recebe notificações de coisas acontecendo no tmux real, e ele pode enviar comandos. Se você usa 2 terminais e executar uma sessão normal em um

tmux new -s mysession

e no outro

tmux -C attach -t mysession

quando você divide janelas, adiciona novas ou fecha-as no tmux normal você receberá linhas como

%layout-change @2 91a8,80x23,0,0[80x11,0,0,5,80x11,0,12,7]
%window-add @3
%window-close @1

no controle tmux, para o qual você pode reagir escrevendo um programa. Ajudar existe uma biblioteca python para explorar esse mecanismo. Veja os exemplos lá.

    
por 04.07.2018 / 19:59
0

Você está vendo resultados semelhantes de tmux -CC , como faria com tmux new-session , porque você não especificou um comando, então tmux usa o padrão, que é new-session :

command [flags]

This specifies one of a set of commands used to control tmux, as described in the following sections. If no commands are specified, the new-session command is assumed.

Adicionar -CC não parece mudar isso. Para controlar a sessão existente, você deve se conectar a ela no modo de controle:

tmux -C attach
    
por 04.07.2018 / 20:05

Tags