Asciinema: Не выдержит изменения размера окна

Созданный на 27 янв. 2016  ·  9Комментарии  ·  Источник: asciinema/asciinema

Когда вы запускаете asciinema в большом окне терминала, а затем изменяете размер окна (во время записи) до меньшего размера, видео выходит совсем неправильно.

Что интересно, наоборот, он хорошо выживает.

В этом примере я запускаю sl - мою любимую программу - в большом окне терминала, затем изменяю размер окна до маленького (это «неловкая пауза» - я меняю размер окна) и запускаю sl снова. Второй прогон выглядит нормально, но первый испорчен.

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

Для иллюстрации это противоположный пример. Начиная с малого, затем увеличивая размер. Оба варианта работают хорошо.

http://asciinema.org/a/d9u278gcavlymvywrleh0kbup

Самый полезный комментарий

Эта проблема запрещает случайное использование asciinema для записи всей повседневной работы, создавая раздражающее ограничение никогда не сжимать окна терминала.

Все 9 Комментарий

asciinema записывает не экран, а поток stdout. Он также сохраняет текущие размеры терминала в конце сеанса записи. Некоторые терминальные приложения (как sl ) зависят от фактического размера терминала. Они создают escape-последовательности, которые подходят для текущей ширины / высоты терминала в любой момент времени. Поскольку asciinema player фактически интерпретирует / выполняет записанный стандартный вывод, эти escape-последовательности выполняются с учетом текущего размера терминала asciinema.

Другими словами, для решения этой проблемы asciinema необходимо сохранить события изменения размера терминала (это можно сделать), а затем использовать их для изменения размера своего собственного «терминала» во время воспроизведения. Однако это привело бы к изменению размера самого проигрывателя, что выглядело бы забавно (при воспроизведении на asciinema.org) и было бы непрактичным (при встраивании на сайт).

Я понимаю проблемы, и я понимаю, что если вы не хотите их исправлять, я просто хотел сообщить вам.

Это можно было бы решить, сделав игроку максимальную ширину всех ширин и максимальную высоту всех высот, и текст мог бы быть в верхнем левом углу - это будет тот же случай, как если бы вы начали с маленького терминала и закончили с большим терминалом. . Не знаю, стоит ли это исправлять :)

Дело не в том, что я не хочу это исправлять, но с этим есть несколько тонкостей (предложенное вами решение в некоторых случаях все равно будет давать плохие результаты). В любом случае, это своего рода крайний случай, и я тоже не уверен, стоит ли его исправлять.

Но я оставляю это открытым.

Эта проблема запрещает случайное использование asciinema для записи всей повседневной работы, создавая раздражающее ограничение никогда не сжимать окна терминала.

Я думаю, что должна быть гибкость для размеров. Я записал видео ( здесь ), и оно получилось в неудобном размере, т.е. встроенное видео занимало больше высоты страницы. Теперь у меня нет другого выбора, кроме как снова записывать.
Я даже попытался изменить ширину и высоту в .json , что, конечно, не сработало, так как у меня было перекрытие ( это )

PS Несмотря на то, что это не по теме вышеупомянутого обсуждения, это была самая близкая проблема, которую я мог найти по этому поводу.

@xloem @mukkachaitanya Я разрабатываю новый формат записи (https://github.com/asciinema/asciinema/pull/196). Может быть, мы могли бы сделать так, чтобы он поддерживал событие "изменение размера терминала" ...

Мне нужна утилита для "резервного копирования" активности моего терминала. И, конечно же, эта утилита должна «просто работать», даже если я изменю размер терминала. Может быть, есть другие программы, которые поддерживают эту функцию?

не могли бы вы пролить свет на то, как зафиксировать событие изменения размера терминала? Было бы действительно полезно в ветке, над которой я работаю для asciicasts в реальном времени (и случай изменения размера во время записи, я уверен)

@jiangts вот место, где рекордер обрабатывает изменение размера терминала (сигнал SIGWINCH): https://github.com/asciinema/asciinema/blob/develop/asciinema/pty_recorder.py#L108

Была ли эта страница полезной?
0 / 5 - 0 рейтинги