Je viens d'avoir le même problème. Dans la dernière version de screen, vous pouvez spécifier le -q
indicateur d'écran silencieux et empêchez-le de s'afficher.
La source montre
if (rflag && (rflag & 1) == 0 && !quietflag)
donc je ne sais pas où Gilles a trouvé ça, ni quand ça a été changé.
Malheureusement, ce comportement est codé en dur dans la source :le même test est utilisé pour déterminer s'il faut émettre la notification "Nouvel écran..." et pour déterminer s'il faut s'attacher à une session en cours d'exécution. (Dans la source de l'écran 4.0.3, (rflag && (rflag & 1) == 0)
en attacher.c
et screen.c
— rflag
vaut 1 pour -r
plus 2 pour chaque -R
.)
Si vous êtes prêt à recompiler, le patch est trivial :supprimez la ligne qui affiche le message de screen.c
.
Vous pouvez faire disparaître le message en tapant quelque chose. Si vous ne voulez pas taper une clé qui atteindra l'application à l'intérieur de la fenêtre de l'écran, vous pouvez taper C-a `
ou une autre clé non liée.
Une sorte de solution de contournement simple consiste à détacher immédiatement la session d'écran (soit avec C-a d
ou avec le detach
commande dans le screenrc
dossier; -m
sur la ligne de commande ne fonctionne pas pour cela lorsque -R
est également spécifié), puis attachez-le à nouveau (par exemple en exécutant à nouveau la même commande).
Une solution de contournement vraiment kludgy mais entièrement automatisée consiste à inclure les lignes suivantes dans le screenrc
fichier pour ignorer les messages initialement et les réactiver une seconde plus tard :
msgwait 0
screen -t post_initialization 39 sh -c 'sleep 1; screen -X msgwait 5'
(39 est le numéro de fenêtre le plus élevé possible, c'est une option de compilation (MAXWIN
).)
Notez que les deux solutions de contournement masqueront tout message screen
choisit de s'afficher au démarrage, pas seulement l'inutile "Nouvel écran...".