Asciinema: التقاط الألوان الطرفية الأصلية

تم إنشاؤها على ٨ أغسطس ٢٠١٢  ·  25تعليقات  ·  مصدر: asciinema/asciinema

يمكنك الحصول على الألوان ببعض رموز وحدة التحكم .. لقد كتبت مثالاً هنا https://github.com/oblique/configs/blob/master/.zsh.d/get_term_rgb_color.py
لا تدعم الشاشة و tmux ووحدة التحكم الافتراضية هذه العملية.

feature request help wanted

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

timofonic من فضلك لا تذكر مرة أخرى حرفيًا كل من كان على اتصال بالمستودع. أنا لست حتى مساهمًا هنا ولن يكون لدي أي "أخبار" لك.

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

ال 25 كومينتر

كما يمكن لبعض البرامج تغيير الألوان هناك ، على سبيل المثال cmatrixreloaded
هذا مثال على كيفية القيام بذلك https://github.com/oblique/configs/blob/master/.zshrc#L160
أرى في الواقع وظائف ncmpcpp () و wicd-curses ()

لقد جربت البرنامج النصي الخاص بك ولكني تلقيت الخطأ التالي:

~ % get_term_rgb_color.py 1
Traceback (most recent call last):
  File "/home/kill/bin/get_term_rgb_color.py", line 30, in <module>
    os.write(fd, bytes("\033]4;%d;?\033\\" % int(x), "UTF-8"))
TypeError: str() takes at most 1 argument (2 given)

البرنامج النصي يعمل في python3.

بالنسبة إلى python2 ، غيّر الخط إلى:
os.write (fd، "\ 033] 4؛٪ d؛؟ \ 033 \"٪ int (x))

كنت أفكر في شيء مثل هذا لبعض الوقت. شكرا لجلب هذا.
للأسف هذا يعمل فقط تحت (u) rxvt و xterm. على gnome-terminal ، شاشة ، tmux لا يفعل ذلك. لذلك لن يكون لها فائدة كبيرة. إذا كانت هناك طريقة أخرى (أو إضافية) للحصول على هذه المعلومات ، فسيسعدني استخدامها.
أو ربما هناك طريقة ما للحصول على المعلومات فقط "هل نحن تحت طرف fg / dark bg أو تحت dark fg / light bg".

أنا لم أنظر فيه ... لكن ربما شيء من هنا ؟ (في الأصل تشكل هذه الإجابة المتراكمة )

إنه يعمل في gnome-terminal لكنه لا يعمل في konsole.
سأحاول أن أجد أي طريقة أخرى.

لقد وجدت أنه باستخدام tmux يمكنك إعادة توجيه رموز وحدة التحكم إلى الجهاز الطرفي وقمت بتعديل البرنامج النصي الخاص بي https://github.com/oblique/configs/blob/master/.zsh.d/get_term_rgb_color.py
لم أتمكن من القيام بذلك مع الشاشة.
إذا كان لديك أي أسئلة، يرجى طرحها.

عذرًا ، لقد نسيت دفع التغييرات في وظائف ncmpcpp () و wicd-curses () ، الآن تم تحديثها.

لقد فحصته للتو ضمن urxvt و xterm و gnome-terminal و tmux. فقط تحت gnome-terminal لا يعمل.
هل تعتقد أن هذا يمكن أن يعمل أيضًا على بعض محطات OSX مثل Terminal.app أو ITerm2؟

في الوقت الحالي ، أقوم بإعادة هيكلة المُسجل قليلاً (هنا: https://github.com/sickill/ascii.io-cli/tree/split). بمجرد أن أنتهي من إعادة البناء ، سأحاول استخدام الكود الذي قدمته هنا.

شكرا!

لا أعرف شيئًا عن Terminal.app أو ITerm2 ، إذا كانا يدعمان تغيير اللون ، فسيعمل ..

للإشارة فقط ، لقد وجدت هذا أيضًا: https://github.com/dranjan/termcolors
لست متأكدًا مما إذا كان يعطينا أي شيء أكثر من رمز oblique .

يبدو أن https://github.com/dranjan/termcolors يعتمد على select.poll ، والذي لا يبدو أنه يعمل في OSX.

خدش ذلك ، لقد كنت مخطئا. اكتشف @ sigmavirus24 وجود مشكلة في تمرير الأداة -1 * 2 كقيمة مهلة بدلاً من -1 فقط. مطلوب المزيد من التحقيق ... ولكن هذا قد ينتهي به الأمر.

لاحظ أيضًا أنه عندما جربت هذا على OSX + iTerm2 ، لم يلتقط مصطلح الألوان بشكل صحيح. لذلك ، حتى مع هذا الإصلاح ، فإنه لا يزال ليس هو الأفضل نظرًا لأن واجهة برمجة تطبيقات C الأساسية التي تستخدمها ألوان المصطلحات ( select / select.poll ) ليست مرنة مثل النكهات الأخرى * nix التي ستقبل أي سلبي القيمة.

لذلك عملت على هذا مع @ sigmavirus24 وتوصلت إلى هذا: https://gist.github.com/joshuarh/7904813. لا يزال يتعين القيام / التحقق مما يلي:

  1. أرسل معلومات اللون إلى الخادم
  2. هل تريد إزالة الألوان الافتراضية؟ أو استخدامها كبديل؟
  3. تأكد من صحة ألوان الخلفية / المقدمة. نحن نستخدم "الأرقام السحرية" هنا ، لكنني أعتقد أنها ثابتة ، على الأقل بالنسبة لمخططات الألوان xresources / xdefaults.
  4. تأكد من أن مشغل الويب يمكنه التعامل مع ما تم تسجيله.

    • اعتقدت أنني قرأت أن المشغل الذي يستخدمه الموقع متوافق مع vt100 ، أو شيء من هذا القبيل. فهل يمكننا إرسال رموز الهروب إليه وجعله "يعمل فقط"؟ أم أننا بحاجة إلى تحويل الألوان إلى سداسي عشري أولاً؟ إذا كان هذا هو الأخير ، فلدينا بعض العمل الذي يتعين علينا القيام به. أعلم أن بعض الألوان قد تم وضعها مع معلومات rgb هناك ، لذلك ليس من الصعب تحليلها ، ولكن يبدو لي على urxvt كما يلي: '\x1b[30m' ، لذلك لست متأكدًا من كيفية تحويل ذلك إلى شيء نحن يمكن استخدامها على الويب.

  5. اختبرها في محطات مختلفة. أعلم أن بعض الحلول الأخرى لا تعمل على العديد من المحطات الطرفية (تلك المستندة إلى VTE ، Terminal.app ، iTerm ، rxvt ، إلخ) ، لذلك يجب أن نتأكد من أن هذا يعمل قبل استخدامه بكثافة.

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

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

OTOH ، إذا سمحنا للمستخدمين بتحديد الألوان التي يريدونها ، فسيظهر ذلك ميزات وأخطاء محتملة مثيرة للاهتمام. يمكننا السماح للأشخاص باختيار النظام الذي يريدون رؤيته عند التصفح ، ولكن اعتمادًا على ألوان المقدمة التي تم تسجيلها ، قد تكون هذه مشكلة (على سبيل المثال ، إليك السمة الافتراضية بألوان مقدمة مشمسة في الوضع الاحتياطي: https: // asciinema .org / أ / 2214).

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

losingkeys نحن بالفعل

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

mrabault الحل المثالي هو استخدام المسجل لاكتشاف وتحميل مخطط المحطة الطرفية ، نعم. لكننا لم نعثر (حتى الآن) على حل جيد بما يكفي من شأنه أن يعمل مع غالبية المحاكيات الطرفية عبر أنظمة تشغيل مختلفة.

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

blueyed لا يوجد تقدم حتى الآن.

الاستعلام عن xrdb سيكون مفيدًا فقط لـ xterm / rxvt / other-terminal-using-x-resources. يستخدم الأشخاص المصطلحات القائمة على libvte (Gnome Terminal ، XFCE Terminal ، Terminator ، ...) ومحطات غير تابعة لـ Linux (iTerm ، Terminal.app على OS X) أيضًا.

blueyed btw ، يمكنك تغيير سمة لصعودك ، إما على مستوى الحساب (في صفحة إعدادات حسابك) أو لكل إرسال (في صفحة تحرير تصاعدي). على سبيل المثال ، هذا هو الإرسال الخاص بك في الظلام الشمسي: https://asciinema.org/a/13855؟

ستكون هذه ميزة قاتلة!

نحن نناقش الإصدار 2 من تنسيق asciicast في # 196 ، وأعتقد أن إضافة عنصر اختياري colors إلى البيانات الوصفية ، والذي يحتوي على لون المقدمة / الخلفية للنص ولوحة الألوان لجميع الألوان الثمانية (16) سيكون أمرًا رائعًا إضافة. كما قال mrabault ، يمكننا استخدام وتحديث تقنية للحصول على الألوان ، طالما ظل تمثيل اللوحة في JSON كما هو / متوافق مع مشغل الويب.

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

أي شخص لديه شيء يعمل على Python 3.3+؟

timofonic من فضلك لا تذكر مرة أخرى حرفيًا كل من كان على اتصال بالمستودع. أنا لست حتى مساهمًا هنا ولن يكون لدي أي "أخبار" لك.

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

تضمين التغريدة

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