Acabo de tener el mismo problema. En la última versión de screen, puede especificar el -q
bandera para silenciar la pantalla y evitar que se muestre.
La fuente muestra
if (rflag && (rflag & 1) == 0 && !quietflag)
así que no sé dónde lo encontró Gilles o cuándo se cambió.
Desafortunadamente, este comportamiento está codificado en la fuente:la misma prueba se usa para determinar si se emite la notificación "Nueva pantalla..." y para determinar si se adjunta a una sesión en ejecución. (En la pantalla 4.0.3 fuente, (rflag && (rflag & 1) == 0)
en attacher.c
y screen.c
— rflag
es 1 para -r
más 2 por cada -R
.)
Si está dispuesto a recompilar, el parche es trivial:elimine la línea que muestra el mensaje de screen.c
.
Puede hacer que el mensaje desaparezca escribiendo algo. Si no desea escribir una tecla que llegue a la aplicación dentro de la ventana de la pantalla, puede escribir C-a `
o alguna otra clave no enlazada.
Una especie de solución simple es desconectar inmediatamente la sesión de pantalla (ya sea con C-a d
o con el detach
comando en el screenrc
expediente; -m
en la línea de comando no funciona para esto cuando -R
también se especifica), luego conéctelo nuevamente (por ejemplo, ejecutando el mismo comando nuevamente).
Una solución realmente complicada pero completamente automatizada es incluir las siguientes líneas en el screenrc
para omitir mensajes inicialmente y volver a habilitarlos un segundo después:
msgwait 0
screen -t post_initialization 39 sh -c 'sleep 1; screen -X msgwait 5'
(39 es el número de ventana más alto posible, es una opción de tiempo de compilación (MAXWIN
).)
Tenga en cuenta que ambas soluciones ocultarán cualquier mensaje screen
elige mostrar cuando se inicia, no solo la inútil "Nueva pantalla...".