Saindo do modo de cópia / rolagem ao desanexar em byobu / screen

7

Eu descobri que se eu entrar em "modo de cópia" ou "modo de rolagem" em uma tela de byobu, desconecte-o e deixe-o rodando, o buffer irá preencher e eventualmente bloquear o processo que estou rodando no tela. (Presumivelmente porque o processo é impedido de gravar para o stdout, já que não há ninguém para consumir os bytes.)

Esse comportamento é meio devastador. É possível, por exemplo,

  1. Saia automaticamente do modo de cópia / rolagem ao desanexar da tela,

    ou

  2. Deixe a posição da exibição que está no modo de cópia / rolagem avançar quando o buffer estiver cheio, para permitir que o processo continue executando

Feliz em saber de qualquer conselho sobre isso.

    
por aioobe 29.09.2013 / 16:15

1 resposta

4

Sua avaliação está correta, o programa em execução na janela do modo de rolagem está parando porque seu buffer de saída está cheio e está suspenso aguardando para gravar. Esse comportamento é correto e desejável; o usuário entrou no modo de rolagem para visualizar o conteúdo da tela, mas como você percebeu, isso não é conveniente nem óbvio quando a sessão é separada.

Infelizmente, parece ser um recurso ausente no gnu-screen e no tmux. Byobu não seria capaz de consertá-lo em um wrapper porque não pode detectar o estado de scrollback de uma determinada janela, nem pode quebrar uma janela usando comandos externos, embora possa enviar comandos para o terminal como o usuário seria, se fosse capaz de detectar ou lembrar o estado de rolagem. Nem a tela nem o tmux parecem incluir um recurso para ativar a reversão automática do modo de rolagem quando o terminal é desconectado. Um patch seria necessário.

    
por 11.03.2015 / 09:45