je fais
ssh -t host screen -D -RR
sous OS X (10.9) onglets de terminal.
Mon ~/.screenrc
est identique sur tous les hôtes distants et contient la ligne suivante:
hardstatus string "%H(%n:%t)$USER %h"
Mon ~/.bashrc
est également identique sur tous les hôtes.
Lorsque je me connecte à host host_u
( Ubuntu 12.04.3 LTS
) en cours d'exécution Screen version 4.00.03jw4 (FAU) 2-May-06
, le titre de l'onglet sur le terminal OS X est host_u(1:bash)sds ~
comme prévu.
Lorsque je me connecte à host host_c
( CentOS release 6.3 (Final)
) en cours d'exécution Screen version 4.00.03 (FAU) 23-Oct-06
, le titre de l'onglet sur le terminal OS X est ~/FooBar
(qui est le répertoire local OS X à partir duquel j'ai exécuté la ssh/screen
commande.
Problème : la hardstatus
ligne ne fonctionne pas host_c
.
Informations complémentaires :
.screenrc
:
termcapinfo xterm* ti@:te@
host_c
Et à la fois host_u
, TERM
est xterm-256color
(hérité du terminal OS X).
screen
il y a quelques mois et j'ai juste mordu la balle et je suis passé àtmux
. Aucune promesse ne résoudra ce problème, mais un logiciel maintenu activement surpasse presque toujours un logiciel vieux de 7 ans.tput ts && echo -n OMG && tput fs
le titre est correctement défini? Votre.screenrc
contient-il des lignestermcap
/terminfo
/termcapinfo
?tput ts
->tput: unknown terminfo capability 'ts'
echo -e "\033];TITLE GOES HERE\007"
', essayez d’ajouter cette ligne à votre screenrc: "termcapinfo xterm* 'hs:ts=\E]2;:fs=\007'
". Je suppose que cela ou quelque chose de similaire est présent dans/etc/screenrc
(/usr/local/etc/screenrc
ou quoi que ce soit) sur host_u.termcapinfo xterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;\007'
àhost_c:~/.screenrc
résolu le problème. S'il vous plaît transformer vos commentaires en une réponse et je l'accepterai. Merci!Réponses:
Pour définir l'état fixe, l'écran doit connaître les codes d'échappement corrects à envoyer au terminal (émulateur). ils sont trouvés via termcap / terminfo. Les capacités pertinentes sont:
hs
- Si défini, le terminal supporte une ligne hardstatusts
- déplace le curseur sur la ligne hardstatus ("begin")fs
- ramène le curseur là où il se trouvait auparavant ("terminer")ds
- comment effacer / réinitialiser le hardstatus ("default").Personne n’a plus de véritable ligne "hardstatus". Pour utiliser le titre d'un xterm ou d'autres émulateurs d'interface graphique, les capacités doivent être définies. pour éviter toute confusion, les programmes ne sont pas définis dans les bases de données termcap / terminfo normales. Vous pouvez les ajouter ici, ou vous pouvez indiquer à l’écran ce qu’ils seraient si ils étaient configurés, dans votre .screenrc:
termcapinfo xterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'
(Ceci définit un titre par défaut « écran », ce qui est peu susceptible d'être pertinente Les codes d'échappement réels peuvent différer en fonction de votre émulateur de terminal -. En particulier pour certaines xterm variantes du
0
dans\E]0;
ne peut pas être nécessaire, ou peut - être besoin d'être valeur différente; consultez la page de manuel de votre émulateur de terminal.)Ces paramètres seront utilisés par écran, mais ne seront disponibles pour aucune autre application. Par exemple, si vous aviez un éditeur qui voulait remplacer le statut fixe, il rechercherait le termcap réel, trouverait
hs
non défini (ou quelle que soit la valeur par défaut du système) et ne le ferait pas.la source