टीटीवाई 256 रंगों के साथ?


25

URxvt और xterm के साथ केवल आठ के बजाय 256 रंगों का समर्थन करने वाले वर्चुअल टर्मिनल का उपयोग करना संभव है। चूंकि मेरा इंटेल GMA ग्राफिक्स कार्ड KMS फ्रेमबफ़र ड्राइवर द्वारा अच्छी तरह से समर्थित है, मैं विशेष रूप से TTY पर काम कर रहा हूं। दुर्भाग्य से यह केवल आठ रंगों का समर्थन करता है, हालांकि MPlayer (-vo fbdev / fbdev2) और अन्य फ्रेमबफ़र उपकरण के साथ कहीं अधिक संबोधित किया जा सकता है। क्या टीटीवाई को आठ से अधिक रंगों का उपयोग करने के बारे में बताने का कोई तरीका है?

जवाबों:


10

मैं अब अपने उत्तर को संशोधित कर रहा हूं कि मुझे चीजों पर यकीन है।

यह निष्कर्ष निकालना गलत था कि एएनएसआई दृश्यों को BIOS के माध्यम से या अन्यथा कर्नेल के बाहर संभाला जा रहा था; वास्तव में, वे कर्नेल में संभाले हुए हैं। मैंने पाया कि LinuxNewbies IRC चैनल पर hnaz_ के लिए धन्यवाद से पहले मुझे क्या याद था: drivers/char/vt.cएक डिजिटल उपकरण VT102 टर्मिनल का एक अनुकरण करता है जो आभासी टर्मिनल चालक द्वारा उपयोग किया जाता है।

तो ... एक निश्चित उत्तर के रूप में, वर्चुअल टर्मिनलों के लिए भागने के अनुक्रम को संभालने वाले स्रोत कोड की समीक्षा करने के बाद: यदि आप आभासी टर्मिनलों पर 256 रंग का समर्थन चाहते हैं, तो आपको उस कोड को निकालने के बाद खुद का कर्नेल बनाना होगा जो भागने के क्रम को पार्स करता है व्यापक रंग-विनिर्देश को संभालने के लिए।

फ़ंक्शन को csi_m () कहा जाता है। परिवर्तनों को उन लोगों के समान होना चाहिए जो अमीर रंग कोड को निर्दिष्ट करने वाले एस्केप अनुक्रम को संभालने के लिए एक्स-आधारित टर्मिनल एमुलेटर का विस्तार करते हैं। संभवतः अन्य परिवर्तनों की भी आवश्यकता होगी, लेकिन यह वह जगह है जहाँ आप शुरू करेंगे।


1
ये सही है। मैं इन "निम्न-स्तरीय आभासी टर्मिनलों" के बारे में बात कर रहा हूं। लेकिन जब से मैं फ्रेमबफ़र का उपयोग कर रहा हूं, यह fbcon कर्नेल मॉड्यूल है जिसे नियोजित किया जा रहा है मुझे लगता है। प्रलेखन / fb / fbcon.txt देखें। या fbcon सिर्फ कुछ अतिरिक्त सुविधाओं को जोड़कर n_tty के आसपास एक आवरण है? URxvt पैच ( cvs.schmorp.de/rxvt-unicode/doc/… ) को देखते हुए, 256-रंग समर्थन को विस्तारित करना काफी आसान प्रतीत होता है। मैं बिल्कुल निश्चित नहीं हूं कि क्या n_tty सही कर्नेल मॉड्यूल है क्योंकि मुझे वहां कोई रंग परिभाषा नहीं दिखती है।
22

मुझे लगता है कि फ्रेमबफ़र एक उपकरण है, और ट्टी एक और है - वर्चुअल टर्मिनल को ट्टी डिवाइस की आवश्यकता होती है, और वे फ़्रेमबफ़र को डिस्प्ले डिवाइस के रूप में उपयोग करते हैं, लेकिन फ़्रेमबफ़र केवल संभव डिस्प्ले डिवाइस नहीं है।
क्वैक क्वोटोटे

+1 यह अधिक संभावना है (vt102 विस्तारित रंगों का समर्थन नहीं करता है, और टर्मिनल चालक vt102 अनुकरण के लिए हार्ड-कोडित है)। अनुसंधान का अच्छा सा।
क्वैसी क्विकोट

1
2017 में भी यही स्थिति है। मेरा मानना kmsconहै कि एक यूजरलैंड टर्मिनल है जो टर्मिनल (24-बिट रंग सहित) को बेहतर बनाने की कोशिश करता है। यद्यपि इसके विकास ने एक प्रणालीगत विकल्प के पक्ष में ठहराव किया है।
जिगुनगंज

kmscon को फोर्क किया गया है और इस पोस्ट को सक्रिय रूप से विकसित किया जा रहा है: github.com/Aetf/kmscon
user3751385

7

आपके 256-रंग वाले RXVT / xterm / URXVT / etc को टर्मऑफ़ और TERMचर की सेटिंग द्वारा परिभाषित किया गया है। अधिकांश लिनक्स वितरण में आपके वर्चुअल टर्मिनल परिभाषित होते हैं /etc/inittab, और डिफ़ॉल्ट टर्मिनल प्रकार का उपयोग करते हैं जो परिभाषित करता है कि टर्मिनल कितने रंगों का उपयोग कर सकता है।

क्या टीटीवाई को आठ से अधिक रंगों का उपयोग करने के बारे में बताने का कोई तरीका है?

हाँ।

  • सुनिश्चित करें कि आपका फ़्रेमबफ़र सही रिज़ॉल्यूशन / बिट गहराई का उपयोग कर रहा है। vga=773उदाहरण के लिए, कर्नेल विकल्पों में जोड़ने का प्रयास करें, 1024x768 और 256-रंग (8-बिट रंग गहराई) प्राप्त करने के लिए।

  • एक अलग TERM (जैसे, export TERM=foo) सेट करें । आपको सही खोजने के लिए प्रयोग करने की आवश्यकता होगी। यदि आपको कोई ऐसा काम मिलता है, तो आप उसे संशोधित कर सकते हैं /etc/inittabताकि आपके वर्चुअल टर्मिनल इसे डिफ़ॉल्ट रूप से चलाएं (अगला भाग देखें)।

  • यह आलेख अन्य विकल्पों पर चर्चा करता है जो आपके लिए काम कर सकते हैं। यह गुंटी प्रतिस्थापन के रूप में Qingy (Qingy GettY नहीं है) की सिफारिश करता है, और आपको यह दे सकता है कि आप क्या देख रहे हैं यदि TERM चर को स्विच करना एक विकल्प नहीं है।

  • गेटी रिप्लेसमेंट की बात करते हुए, मैं कसम खाता हूं कि मैंने GNU screenरास्ते में कहीं के साथ गेटी को बदलने के निर्देश देखे हैं । मुझे इस समय लिंक नहीं मिल रहा है, लेकिन चूंकि इसमें 256-रंग की अवधि है screen, इसलिए आप इसे देख सकते हैं।


/etc/inittab वर्चुअल टर्मिनल सेटअप करने के लिए इस तरह की लाइनों का उपयोग करता है:

# Format:
#  <id>:<runlevels>:<action>:<process>
#
1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3

यहाँ पर /sbin/gettyमेरा पृष्ठ है (मेरे डेबियन सिस्टम से, इसलिए यह तकनीकी रूप से agettyकार्यक्रम है):

SYNOPSIS
       agetty [-8ihLmnw] [-f issue_file] [-l login_program] [-I init]
       [-t timeout] [-H login_host] baud_rate,...  port [term]

baud_rate,... port [term]वहाँ अंत में ध्यान दें । यह /etc/inittabलाइन में कमांड के साथ मेल खाता है ( /sbin/getty 38400 ttyN) - ध्यान दें कि कोई [term]तर्क नहीं है, इसलिए हमें एक डिफ़ॉल्ट मिलता है ( echo $TERMआपके द्वारा सिस्टम का उपयोग करने के लिए वर्चुअल कंसोल पर लॉग इन करने के तुरंत बाद चलाएं )। फिर से मैनपेज से:

ARGUMENTS
       term   The value to be used for the TERM environment variable.  This  over‐
              rides  whatever  init(8) may have set, and is inherited by login and
              the shell.

यदि आपको एक TERM मिलता है जो काम करता है, तो अपने inittab में गेटी लाइनों को संशोधित करें और अंत में उचित TERM जोड़ें:

1:2345:respawn:/sbin/getty 38400 tty1 TERM-with-256-colors
2:2345:respawn:/sbin/getty 38400 tty2 TERM-with-256-colors

1
~ यह सब बहुत बढ़िया जानकारी है, लेकिन मुझे यकीन है कि यह सफलता के लिए नेतृत्व करेंगे। आप "हां" कहते हैं, लेकिन फिर "प्रयोग" और "यदि आप एक पाते हैं" कहते हैं। मैंने अधिक प्रत्यक्ष मार्ग लिया; मैंने कर्नेल कोड खोजा। मैं किसी भी कोड को खोजने में सक्षम नहीं हूं जो कि रंग के लिए एस्केप सीक्वेंस को संभालता है - कर्नेल में कहीं भी। Fb कोड में नहीं, tty कोड में नहीं ... कहीं नहीं। इस प्रकार मेरा निष्कर्ष है कि यह BIOS में संभाला है। यह डॉस के तहत सटीक एएनएसआई से बचने के क्रम का उपयोग करने की मेरी यादों द्वारा समर्थित है। मेरा मानना ​​है कि विभिन्न एएनएसआई से बचने के क्रम को दोनों मामलों में BIOS द्वारा नियंत्रित किया जा रहा है।
pbr

@pbr: मैंने कर्नेल कोड को भी देखा। TTY कोड रंगों की संख्या पर कोई सीमा नहीं रखता है । BIOS इसमें प्रवेश नहीं करता है - आप फ्रेमबफ़र के साथ काम कर रहे हैं, जो विभिन्न बिटडिप्ट ले सकता है (यदि आप फ्रेमबफ़र को अक्षम कर चुके हैं तो विनिर्देश निर्भर हैं, यद्यपि ...)। 16-रंग की सीमा GeTTY में हो सकती है, इस प्रकार Qingy की जांच करने की सिफारिश की जा सकती है, या टर्मोफ सामान में हो सकती है, इस प्रकार विभिन्न वैकल्पिक TERM परिभाषाओं को आजमाने की सिफारिश की जा सकती है। मैं उससे आगे की सलाह नहीं दे सकता, लेकिन आपका BIOS रेंटिंग ऑफ-बेस है और सहायक नहीं है
क्वैक क्विक्सोटे

1
~ quack - आप सही कह रहे हैं कि यह BIOS में नहीं है (नीचे मेरा संशोधित उत्तर देखें) लेकिन Qingy एट अल की जांच करने की सिफारिश करने में अभी भी बंद है। वर्चुअल टर्मिनल कोड vt102 एमुलेशन के साथ हार्ड-कोडेड है।
17:15 बजे pbr

6

Fbterm पर एक नज़र डालें - यह एक प्रतिस्थापन फ़्रेमबफ़र है जो 256-रंग मोड में चल सकता है (आप इसे बस TTY से रूट के रूप में चलाते हैं)

मुझे इसके साथ मिश्रित सफलता मिली है - कुछ एप्लिकेशन ठीक काम करते हैं, और 256 रंगों की रिपोर्ट करते हैं; हालांकि Emacs (मुख्य कारण जिसे मैं TTY पर 256 रंग चाहता था) काम नहीं करता है; यहाँ इसके बारे में थोड़ी चर्चा है, लेकिन यह वास्तव में हल नहीं होती है:

http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00989.html

हालांकि, mplayer काम करना चाहिए!


एक्स टर्मिनल ग्राहकों में से किसी की तुलना में भयानक लग रहा है।
फिल पिरोज्कोव

1
यह एक फ़्रेमबफ़र में चल रहा है, इसलिए आपके पास फ़्रेमबफ़र के लिए वैसे भी केवल 256 रंग उपलब्ध हैं।
एसईबी

आश्चर्य है कि अगर आप इस fbterm समस्या में कोई अंतर्दृष्टि है? superuser.com/questions/892028/…
dtmland

emacsअंदर दौड़ना tmuxमदद कर सकता है क्योंकि यह आसपास के टर्मिनल के लिए भागने के दृश्यों का अनुवाद करना चाहिए।
टॉम हेल

1

kmscon

kmscon आपको 256 रंग और वीडियो प्राप्त करने का एक तरीका है, जिसमें बिना विंडोज़ सिस्टम (X, Wayland) स्थापित किए।

इसे छोड़ दिया गया था, लेकिन वर्तमान में एक कांटा के माध्यम से बनाए रखा गया है

इंस्टॉलेशन पर डॉक्यूमेंटेशन पतला है, लेकिन यहां README पेज आपको मिलना चाहिए।


मैंने इसे स्थापित किया है और इसे कंसोल एप्लिकेशन के लिए उपयोग किया है, जिन्हें 256 रंगों की आवश्यकता है (मेरे कॉन्फ़िगरेशन के कारण विम)।

स्थापना निर्देशों को ध्यान से पढ़ें।


-1

पाठ के अग्रभूमि और पृष्ठभूमि रंग सेट करने के लिए एएनएसआई से बचने के क्रम यहां चीजों को सीमित कर रहे हैं।

मेमोरी से ये सीक्वेंस कुछ बचते हुए दिखते हैं [०१; ३४ एम ३० फॉरग्रेन्ड्स में कोड होते हैं और मुझे लगता है कि ४० का बैकग्राउंड है।

इसलिए मुझे नहीं लगता कि आप जो भी खोज रहे हैं उसे हासिल करने का कोई रास्ता नहीं है।


2
वास्तव में, यह संभव है। अन्यथा मैं URxvt में 256 रंगों के साथ म्यूट का उपयोग नहीं कर पाऊंगा। :) यह भी देखें push.x/2008/256-color-xterms-in-ubuntu लेकिन मैं एक TTY में समान प्रभाव कैसे प्राप्त करूं?
15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.