Asciinema: Ne survivra pas au redimensionnement de la fenêtre

Créé le 27 janv. 2016  ·  9Commentaires  ·  Source: asciinema/asciinema

Lorsque vous démarrez asciinema dans une grande fenêtre de terminal, puis redimensionnez la fenêtre (pendant l'enregistrement) à une taille plus petite, la vidéo sort tout faux.

Chose intéressante, il survit bien dans le sens inverse.

Dans cet exemple, j'exécute sl - mon programme préféré - dans une grande fenêtre de terminal, puis sl encore. La deuxième manche semble OK, mais la première est mutilée.

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

À titre d'illustration, voici l'exemple ci-contre. Commencer petit, puis redimensionner à grand. Les deux courses fonctionnent bien.

http://asciinema.org/a/d9u278gcavlymvywrleh0kbup

bug

Commentaire le plus utile

Ce problème interdirait l'utilisation occasionnelle d'asciinema pour enregistrer tout le travail quotidien, créant une limitation irritante pour ne jamais réduire les fenêtres du terminal.

Tous les 9 commentaires

asciinema n'enregistre pas l'écran mais le flux stdout. Il enregistre également les dimensions actuelles du terminal à la fin de la session d'enregistrement. Certaines applications de terminal (comme sl ) dépendent de la taille réelle du terminal. Ils produisent des séquences d'échappement adaptées à la largeur/hauteur actuelle du terminal à un moment donné. Étant donné que le lecteur asciinema interprète/exécute en fait la sortie standard enregistrée, ces séquences d'échappement sont exécutées par rapport à la taille actuelle du terminal asciinema.

En d'autres termes, pour résoudre ce problème, asciinema aurait besoin de sauvegarder les événements de redimensionnement du terminal (cela peut être fait), puis de les utiliser pour redimensionner son propre "terminal" pendant la lecture. Cependant, cela entraînerait le redimensionnement du lecteur lui-même, ce qui aurait l'air amusant (lorsqu'il serait rejoué sur asciinema.org) et serait peu pratique (lorsqu'il serait intégré à un site).

Je comprends les défis et je comprends que si vous ne voulez pas y remédier, je voulais juste vous le faire savoir.

Cela pourrait être résolu en faisant du lecteur la largeur maximale de toutes les largeurs et la hauteur maximale de toutes les hauteurs et le texte pourrait être en haut à gauche - ce serait le même cas que si vous commenciez avec un petit terminal et finissiez avec un grand terminal . Je ne sais pas si ça vaut le coup d'être corrigé :)

Ce n'est pas que je ne veuille pas le réparer, mais il y a plus de subtilités avec cela (votre solution proposée donnerait toujours de mauvais résultats dans certains cas). Quoi qu'il en soit, c'est une sorte de cas limite, et je ne sais pas trop si cela vaut la peine d'être réparé.

Je laisse cela ouvert cependant.

Ce problème interdirait l'utilisation occasionnelle d'asciinema pour enregistrer tout le travail quotidien, créant une limitation irritante pour ne jamais réduire les fenêtres du terminal.

Je pense qu'il doit y avoir une flexibilité pour les dimensions. J'avais enregistré une vidéo ( ici ) et elle est sortie dans des dimensions gênantes, c'est-à-dire que la vidéo intégrée a pris plus que la hauteur de la page. Maintenant, je n'ai pas d'autre choix que d'enregistrer à nouveau.
J'ai même essayé de changer la largeur et la hauteur dans le .json , ce qui n'a bien sûr pas bien fonctionné, car j'avais un chevauchement ( this )

PS Même si cela est hors sujet de la discussion ci-dessus, c'était le problème le plus proche que j'ai pu trouver à ce sujet.

@xloem @mukkachaitanya Je

J'ai besoin d'un utilitaire pour "sauvegarder" mon activité de terminal. Et, bien sûr, cet utilitaire devrait "fonctionner" même si je redimensionne le terminal. Peut-être existe-t-il d'autres programmes qui prennent en charge cette fonctionnalité ?

pourriez-vous nous éclairer sur la façon de capturer l'événement de redimensionnement du terminal ? Serait vraiment utile dans une branche sur laquelle je travaille pour les asciicasts en temps réel (et le cas de redimensionnement pendant l'enregistrement, j'en suis sûr)

@jiangts voici l'endroit où l'enregistreur gère le redimensionnement du terminal (signal SIGWINCH): https://github.com/asciinema/asciinema/blob/develop/asciinema/pty_recorder.py#L108

Cette page vous a été utile?
0 / 5 - 0 notes