O título da tabulação está errado com o ssh / screen no osx

1

Estou fazendo

ssh -t host screen -D -RR

nas guias do terminal do OS X (10.9).

Meu ~/.screenrc é idêntico em todos os hosts remotos e contém a seguinte linha:

hardstatus string "%H(%n:%t)$USER %h"

Meu ~/.bashrc também é idêntico em todos os hosts.

Quando eu fizer login no host host_u ( Ubuntu 12.04.3 LTS ) executando Screen version 4.00.03jw4 (FAU) 2-May-06 , o título da guia no terminal OS X será host_u(1:bash)sds ~ , como esperado.

Quando eu fizer login no host host_c ( CentOS release 6.3 (Final) ) executando Screen version 4.00.03 (FAU) 23-Oct-06 , o título da guia no terminal OS X será ~/FooBar (que é o diretório local do OS X do qual executei o comando ssh/screen .

Problema : a linha hardstatus não funciona em host_c .

Informações adicionais :

.screenrc :

termcapinfo xterm* ti@:te@

Em host_c e host_u , TERM é xterm-256color (herdado do terminal OS X).

    
por sds 08.11.2013 / 16:47

1 resposta

1

Para definir o hardstatus, a tela precisa saber os códigos de escape corretos para enviar ao terminal (emulador); eles são encontrados via termcap / terminfo. As capacidades relevantes são:

  • hs - Se definido, o terminal suporta uma linha de hardstatus
  • ts - move o cursor para a linha de hardstatus ("begin")
  • fs - move o cursor de volta para onde estava antes ("finish")
  • ds - como limpar / redefinir o hardstatus ("default").

Ninguém tem mais uma linha "hardstatus" real. Para usar o título de um emulador xterm ou outro GUI, os recursos precisam ser definidos; para evitar programas confusos, eles não são definidos nos bancos de dados termcap / terminfo normais. Você poderia adicioná-los lá, ou você pode dizer a tela o que eles seriam se eles estivessem definidos, no seu .screenrc:

termcapinfo xterm* 'hs:ts=\E]0;:fs=07:ds=\E]0;screen\E]0;7'
(Isso define um título padrão de "screen", que é improvável que seja relevante. Os códigos de escape reais podem diferir dependendo do seu emulador de terminal - em particular, para algumas variantes xterm, o hs in %code% pode não ser necessário, ou pode precisar ser um valor diferente, verifique a página do seu emulador de terminal.)

Essas configurações serão usadas pela tela, mas não estarão disponíveis para nenhum outro aplicativo. por exemplo. se você tivesse um editor que quisesse substituir o hardstatus, ele procuraria o termcap real, encontraria %code% unset (ou qualquer que seja o padrão do sistema) e saberia não fazer isso.

    
por 14.11.2013 / 02:06