Tilda reclama do tamanho falso da tela na inicialização?

Tilda reclama do tamanho falso da tela na inicialização?

No Ubuntu 14.04, área de trabalho MATE. Acabei de instalar o terminal Tilda e adicionei-o aos aplicativos de inicialização, assim como o /usr/bin/tilda. Reinicializei, vi a inicialização do Tilda e percebi isso:

tilda

"O tamanho da sua tela 131072x1 é falso. Espere problemas"

Aí tentei killall tilda, comecei o tilda de novo, mesma mensagem.

Alguém sabe como posso corrigir esse problema falso de tamanho de tela?

Responder1

O que está gerando esta mensagem

Isso não é produzido pelo shell Bourne Again. Isso não é produzido pela Tilda.

Isso é produzido pelo pscomando deo conjunto de ferramentas procpsatuandoesta verificação em sua set_screen_size()função. O pscomando exige que seu dispositivo terminal tenha no mínimo 9 colunas por 2 linhas para que possa exibir as coisas de maneira razoável. Em algum lugar, possivelmente sem o seu conhecimento, você está invocando ps.

O pscomando obtém o tamanho do seu terminal diretamente (da disciplina de linha) do dispositivo terminal conectado aos seus descritores de arquivo de E/S padrão e permite que isso seja substituído por variáveis ​​de COLUMNSambiente LINESse seus valores forem numéricos corretamente. Você pode ver o que seu pscomando está vendo para determinar sua determinação executando:

tamanho médio; printenv LINHAS DE COLUNAS
Você pode experimentar puxar psa perna executando coisas como:

COLUNAS=65535 LINHAS=1 ps

Se você definiu as variáveis ​​de ambiente COLUMNSe LINEScom os valores idiotas de 131072×1, conforme mostrado pela saída de printenv, simplesmente não faça isso. ☺ É mais provável, entretanto, que o próprio dispositivo terminal esteja informando esse tamanho, que você verá na saída de stty. (Observe que tudo o que o shell Bourne Again faz checkwinsizeé definir os valores dessas variáveis ​​​​do shell, que se não forem exportadas, nem mesmo serão passadas para o pscomando em seu ambiente, para qualquer que seja o tamanho do dispositivo terminal. O mesmo checkwinsizeacontece com um vermelho arenque em que se as variáveis ​​de ambiente não fazem sentido, o dispositivo terminalestá reportandoabsurdo, e o último é o problema subjacente a ser abordado.)

É por isso que, embora não esteja produzindo a mensagem, Tilda pode ser a culpada. O tamanho do dispositivo terminal é um recurso compartilhado que qualquer coisa que tenha um descritor de arquivo aberto para o dispositivo terminal pode ser alterado arbitrariamente com uma ioctl()chamada do sistema. Mas isso éconvencionalmentedefinido, no cenário em que se está usando um softwareprograma emulador de terminalcomo Tilda, pelo programa emulador de terminal quando o tamanho da janela GUI na qual a emulação está sendo exibida muda. O programa emulador de terminal obtém um evento de redimensionamento da GUI, converte-o em colunas e linhas e define o tamanho do dispositivo com ioctl().

Isso não quer dizer que alguma outra coisa não tenha definido o tamanho desse absurdo. Afinal, você pode configurá-lovocê mesmopara um tamanho arbitrário e absurdo apenas executando, por exemplo, o comando:

colunas stty 1 linhas 65535

O que nos leva a…

Como redefinir o tamanho do dispositivo terminal

Se você se encontrar na posição em que o dispositivo terminal está relatando um tamanho absurdo:

  • Se você estiver usando um emulador de terminal GUI, redimensione a GUI em uma coluna/linha ou algo assim. Isso deve acionar ioctl()e definir o tamanho do terminal para algo razoável.
  • Defina o tamanho para algo mais razoável com (por exemplo):

    colunas stty 80 linhas 25
  • Use o resetcomando. Observe que isso resetdefine muitas outras coisas além do tamanho do dispositivo terminal.
  • Se o seu emulador de terminal for compatível com DEC VT340/VT420, emita diretamente as sequências de controle DECSCPP e DECSLPP/DECSNLS apropriadas ou useo conjunto de ferramentas noshdeconsole-resize(também conhecido comoresizecons) comando para emiti-los:

    redimensionar ícones 80x25

informação relacionada