Asciinema: No sobrevivirá al cambio de tamaño de la ventana

Creado en 27 ene. 2016  ·  9Comentarios  ·  Fuente: asciinema/asciinema

Cuando inicia asciinema en una ventana de terminal grande, luego cambia el tamaño de la ventana (durante la grabación) a un tamaño más pequeño, el video sale mal.

Curiosamente, sobrevive bien al revés.

En este ejemplo, ejecuto sl - mi programa favorito - en una ventana de terminal grande, luego cambio el tamaño de la ventana a una ventana pequeña (esa es la "pausa incómoda" - yo cambiando el tamaño de la ventana) y ejecuto sl nuevo. La segunda carrera se ve bien, pero la primera está destrozada.

https://asciinema.org/a/5wvarzb4545pohhfqnj8g9fta

A modo de ilustración, este es el ejemplo opuesto. Empezando con algo pequeño, luego cambiando de tamaño a grande. Ambas carreras funcionan bien.

http://asciinema.org/a/d9u278gcavlymvywrleh0kbup

bug

Comentario más útil

Este problema prohibiría el uso casual de asciinema para registrar todo el trabajo diario, creando una limitación irritante para nunca reducir las ventanas de la terminal.

Todos 9 comentarios

asciinema no graba la pantalla sino el flujo stdout. También guarda las dimensiones actuales del terminal al final de la sesión de grabación. Algunas aplicaciones de terminal (como sl ) dependen del tamaño real del terminal. Producen secuencias de escape que se adaptan al ancho / alto actual del terminal en cualquier momento dado. Debido a que el reproductor asciinema realmente interpreta / ejecuta la salida estándar grabada, estas secuencias de escape se ejecutan contra el tamaño actual de la terminal asciinema.

En otras palabras, para resolver este problema, asciinema necesitaría guardar los eventos de cambio de tamaño del terminal (esto se puede hacer) y luego usarlos para cambiar el tamaño de su propio "terminal" durante la reproducción. Sin embargo, eso provocaría el cambio de tamaño del reproductor en sí, lo que se vería divertido (cuando se reproduce en asciinema.org) y no sería práctico (cuando se incrusta en un sitio).

Entiendo los desafíos y entiendo que si no quiere solucionarlo, solo quería hacérselo saber.

Se podría resolver haciendo que el reproductor tenga el ancho máximo de todos los anchos y la altura máxima de todas las alturas y el texto podría estar en la parte superior izquierda; sería el mismo caso que si comenzaras con un terminal pequeño y terminaras con un terminal grande. . Aunque no sé si vale la pena arreglarlo :)

No es que no quiera arreglarlo, pero hay más sutilezas con esto (su solución propuesta aún daría malos resultados en algunos casos). De todos modos, este es un caso marginal, y no estoy muy seguro de si vale la pena arreglarlo.

Aunque dejo esto abierto.

Este problema prohibiría el uso casual de asciinema para registrar todo el trabajo diario, creando una limitación irritante para nunca reducir las ventanas de la terminal.

Creo que debe haber flexibilidad para dimens. Había grabado un video ( aquí ) y salió en dimensiones incómodas, es decir, el video incrustado tomó más que la altura de la página. Ahora, no tengo más remedio que volver a grabar.
Incluso intenté cambiar el ancho y la altura en .json , lo que por supuesto no funcionó bien, ya que tenía superposición ( esto )

PD Aunque esto está fuera del tema de la discusión anterior, este fue el problema más cercano que pude encontrar con respecto a esto.

@xloem @mukkachaitanya Estoy diseñando un nuevo formato de grabación (https://github.com/asciinema/asciinema/pull/196). Tal vez podríamos hacer que admita el evento "terminal resize" ...

Necesito algo de utilidad para "hacer una copia de seguridad" de la actividad de mi terminal. Y, por supuesto, esta utilidad debería "simplemente funcionar" incluso si cambio el tamaño de la terminal. ¿Quizás hay otros programas por ahí que sean compatibles con la función?

¿Podría arrojar algo de luz sobre cómo capturar el evento de cambio de tamaño del terminal? Sería realmente útil en una rama en la que estoy trabajando para asciicasts en tiempo real (y el caso de cambio de tamaño durante la grabación, estoy seguro)

@jiangts, este es el lugar donde la grabadora maneja el cambio de tamaño del terminal (señal SIGWINCH): https://github.com/asciinema/asciinema/blob/develop/asciinema/pty_recorder.py#L108

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

ethanboxx picture ethanboxx  ·  6Comentarios

lukehinds picture lukehinds  ·  5Comentarios

yuvalif picture yuvalif  ·  10Comentarios

TyrfingMjolnir picture TyrfingMjolnir  ·  7Comentarios

abaykan picture abaykan  ·  10Comentarios