Asciinema: لن ينجو من تغيير حجم النافذة

تم إنشاؤها على ٢٧ يناير ٢٠١٦  ·  9تعليقات  ·  مصدر: asciinema/asciinema

عندما تبدأ Asciinema في نافذة طرفية كبيرة ، ثم قم بتغيير حجم النافذة (أثناء التسجيل) إلى حجم أصغر ، يظهر الفيديو بشكل خاطئ.

ومن المثير للاهتمام ، أنها تعيش بشكل جيد في الاتجاه المعاكس.

في هذا المثال ، قمت بتشغيل sl - برنامجي المفضل - في نافذة طرفية كبيرة ، ثم أغير حجم النافذة إلى نافذة صغيرة (هذا هو "التوقف المحرج" - أقوم بتغيير حجم النافذة) وتشغيل sl مرة أخرى. يبدو المدى الثاني جيدًا ، لكن الأول مشوه.

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

للتوضيح ، هذا هو المثال المعاكس. بدء صغير ، ثم تغيير الحجم إلى كبير. كلا الجريين يعملان بشكل جيد.

http://asciinema.org/a/d9u278gcavlymvywrleh0kbup

bug

التعليق الأكثر فائدة

ستحظر هذه المشكلة الاستخدام العرضي لـ Asiinema لتسجيل جميع الأعمال اليومية ، مما يخلق قيودًا مزعجة لعدم تقليص النوافذ الطرفية مطلقًا.

ال 9 كومينتر

لا تسجل asciinema الشاشة ولكن تيار stdout. كما أنه يحفظ الأبعاد الطرفية الحالية في نهاية جلسة التسجيل. تعتمد بعض التطبيقات الطرفية (مثل sl ) على حجم المحطة الفعلي. إنها تنتج تسلسلات هروب مناسبة لعرض / ارتفاع الطرف الحالي في أي نقطة زمنية معينة. نظرًا لأن مشغل Asciinema يفسر / ينفذ فعليًا stdout المسجل ، يتم تنفيذ تسلسلات الهروب هذه مقابل حجم طرف asciinema الحالي.

بمعنى آخر ، لحل هذه المشكلة ، ستحتاج Asiinema إلى حفظ أحداث تغيير حجم المحطة الطرفية (يمكن القيام بذلك) ثم استخدامها لتغيير حجم "المحطة الطرفية" الخاصة بها أثناء التشغيل. ومع ذلك ، قد يتسبب ذلك في تغيير حجم المشغل نفسه ، والذي سيبدو مضحكًا (عند إعادة عرضه على asciinema.org) ويكون غير عملي (عند تضمينه في أحد المواقع).

أتفهم التحديات وأتفهم ما إذا كنت لا تريد إصلاحها ، أردت فقط أن أخبرك بذلك.

يمكن حلها بجعل المشغل هو العرض الأقصى لجميع العروض والارتفاع الأقصى لجميع الارتفاعات ويمكن أن يكون النص في أعلى اليسار - ستكون الحالة نفسها كما لو كنت تبدأ بمحطة صغيرة وتنتهي بطرف كبير . لا أعرف ما إذا كان الأمر يستحق الإصلاح على الرغم من :)

لا يعني ذلك أنني لا أرغب في إصلاحه ، ولكن هناك المزيد من التفاصيل الدقيقة مع هذا (الحل المقترح الخاص بك لا يزال يعطي نتائج سيئة في بعض الحالات). على أي حال ، هذا نوع من حالة الحافة ، وأنا أيضًا لست متأكدًا مما إذا كان الأمر يستحق الإصلاح.

سأترك هذا مفتوحًا بالرغم من ذلك.

ستحظر هذه المشكلة الاستخدام العرضي لـ Asiinema لتسجيل جميع الأعمال اليومية ، مما يخلق قيودًا مزعجة لعدم تقليص النوافذ الطرفية مطلقًا.

أعتقد أنه يجب أن تكون هناك مرونة للأبعاد. لقد سجلت مقطع فيديو ( هنا ) وخرج بأبعاد غير ملائمة ، أي أن الفيديو المضمن استغرق أكثر من ارتفاع الصفحة. الآن ، ليس لدي خيار سوى التسجيل مرة أخرى.
حتى أنني حاولت تغيير العرض والارتفاع في .json ، وهو الأمر الذي لم ينجح بالطبع ، لأنني كنت أتداخل ( هذا )

ملاحظة: على الرغم من أن هذا خارج عن موضوع المناقشة أعلاه ، إلا أن هذه كانت أقرب مشكلة يمكن أن أجدها بخصوص هذا الموضوع.

xloemmukkachaitanya إنني تصميم شكل تسجيل جديد (https://github.com/asciinema/asciinema/pull/196). ربما يمكننا جعله يدعم حدث "تغيير الحجم الطرفي" ...

أحتاج إلى استخدام بعض "النسخ الاحتياطي" لنشاطي الطرفي. وبالطبع ، يجب أن "يعمل هذا الاستخدام" حتى لو قمت بتغيير حجم الجهاز. ربما هناك برامج أخرى تدعم هذه الميزة؟

هل يمكنك إلقاء بعض الضوء على كيفية التقاط حدث تغيير حجم المحطة الطرفية؟ سيكون مفيدًا حقًا في فرع أعمل عليه من أجل تصاعدي في الوقت الفعلي (وأنا متأكد من تغيير حجم الحالة أثناء التسجيل)

jiangts هنا هو المكان الذي يتعامل فيه المسجل مع تغيير الحجم الطرفي (إشارة SIGWINCH): https://github.com/asciinema/asciinema/blob/develop/asciinema/pty_recorder.py#L108

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات