Asciinema: Tidak akan bertahan mengubah ukuran jendela

Dibuat pada 27 Jan 2016  ·  9Komentar  ·  Sumber: asciinema/asciinema

Ketika Anda memulai asciinema di jendela terminal besar, kemudian mengubah ukuran jendela (selama perekaman) ke ukuran yang lebih kecil, video keluar semua salah.

Yang cukup menarik, ia bertahan dengan baik dengan cara yang berlawanan.

Dalam contoh ini, saya menjalankan sl - program favorit saya - di jendela terminal besar, lalu mengubah ukuran jendela menjadi jendela kecil (itulah "jeda canggung" - saya mengubah ukuran jendela) dan menjalankan sl lagi. Putaran kedua terlihat baik-baik saja, tetapi yang pertama rusak.

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

Sebagai ilustrasi, ini adalah contoh sebaliknya. Mulai dari yang kecil, lalu ubah ukurannya menjadi besar. Kedua berjalan bekerja dengan baik.

http://asciinema.org/a/d9u278gcavlymvywrleh0kbup

bug

Komentar yang paling membantu

Masalah ini akan melarang penggunaan asciinema untuk merekam semua pekerjaan sehari-hari, menciptakan batasan yang menjengkelkan untuk tidak pernah mengecilkan jendela terminal.

Semua 9 komentar

asciinema tidak merekam layar tetapi aliran stdout. Ini juga menyimpan dimensi terminal saat ini di akhir sesi perekaman. Beberapa aplikasi terminal (seperti sl ) bergantung pada ukuran terminal sebenarnya. Mereka menghasilkan urutan pelarian yang cocok untuk lebar/tinggi terminal saat ini pada titik waktu tertentu. Karena pemutar asciinema benar-benar menafsirkan/mengeksekusi stdout yang direkam, urutan pelarian ini dijalankan terhadap ukuran terminal asciinema saat ini.

Dengan kata lain, untuk mengatasi masalah ini asciinema perlu menyimpan peristiwa pengubahan ukuran terminal (ini dapat dilakukan) dan kemudian menggunakannya untuk mengubah ukuran "terminal"-nya sendiri selama pemutaran. Namun, itu akan menyebabkan pengubahan ukuran pemutar itu sendiri, yang akan terlihat lucu (saat diputar ulang di asciinema.org) dan tidak praktis (saat disematkan di situs).

Saya mengerti tantangannya dan saya mengerti jika Anda tidak ingin memperbaikinya, saya hanya ingin memberi tahu Anda.

Itu bisa diselesaikan dengan membuat pemain lebar maksimal dari semua lebar dan tinggi maksimal dari semua ketinggian dan teks bisa di kiri atas - itu akan menjadi kasus yang sama seperti jika Anda mulai dengan terminal kecil dan diakhiri dengan terminal besar . Saya tidak tahu apakah itu layak diperbaiki :)

Bukannya saya tidak ingin memperbaikinya, tetapi ada lebih banyak kehalusan dengan ini (solusi yang Anda usulkan masih akan memberikan hasil yang buruk dalam beberapa kasus). Bagaimanapun, ini semacam kasus tepi, dan saya juga tidak yakin apakah itu layak untuk diperbaiki.

Aku akan membiarkan ini terbuka.

Masalah ini akan melarang penggunaan asciinema untuk merekam semua pekerjaan sehari-hari, menciptakan batasan yang menjengkelkan untuk tidak pernah mengecilkan jendela terminal.

Saya pikir harus ada fleksibilitas untuk dimensi. Saya telah merekam video ( di sini ) dan itu keluar dalam dimensi yang canggung, yaitu video yang disematkan membutuhkan lebih banyak dari ketinggian halaman. Sekarang, saya tidak punya pilihan selain merekam lagi.
Saya bahkan mencoba mengubah lebar dan tinggi di .json , yang tentu saja tidak berfungsi dengan baik, karena saya mengalami tumpang tindih ( this )

PS Meskipun ini di luar topik diskusi di atas, ini adalah masalah terdekat yang dapat saya temukan mengenai hal ini.

@xloem @mukkachaitanya Saya merancang format rekaman baru (https://github.com/asciinema/asciinema/pull/196). Mungkin kita bisa membuatnya mendukung acara "pengubahan ukuran terminal" ...

Saya memerlukan beberapa utilitas untuk "mencadangkan" aktivitas terminal saya. Dan, tentu saja, util ini harus "berfungsi" bahkan jika saya mengubah ukuran terminal. Mungkin ada program lain di luar sana, yang mendukung fitur tersebut?

bisakah Anda menjelaskan cara menangkap acara pengubahan ukuran terminal? Akan sangat berguna di cabang yang sedang saya kerjakan untuk asciicast realtime (dan case pengubahan ukuran selama perekaman saya yakin)

@jiangts inilah tempat perekam menangani pengubahan ukuran terminal (sinyal SIGWINCH): https://github.com/asciinema/asciinema/blob/develop/asciinema/pty_recorder.py#L108

Apakah halaman ini membantu?
0 / 5 - 0 peringkat