Konsolda 256 renk (tty)


11

Varsayalım, bir sistemim yok X server. Yalnızca konsoldan giriş yapabilirim. Görünüşe göre, linux konsolu varsayılan olarak sadece 8 rengi destekliyor:

# tput colors
8

Konsolda, terminal emülatöründe (yani sonlandırıcıda) kullandığım gibi 256 renk kullanmak mümkün mü?

Google'da çalışırken, birçok benzer soru buldum (birçoğu 10 yaşın üzerinde), ancak net bir cevap yok. Birisi framebuffer kullanmanızı önerir, bazı insanlar çekirdek önyükleme seçeneklerine TERM argümanı eklemeyi önerir.

Şu anda çekirdek önyükleme parametresi olarak yalnızca bir ekstra seçenek geçiyorum:

append="video=1280x720"

Video çözünürlüğünü geçmenin sadece kernel mode settingdestekli modern çekirdeklerde çalıştığına inanıyorum , ancak bundan emin değilim.

Modern Linux konsolunda (tty) 256 renk kullanmak mümkün mü

Nasıl?

Çekirdek 4.1 ile Debian Wheezy kullanıyorum

GÜNCELLEME:

muru'nun önerisine dayanarak denedim fbterm. 256 renkle çalışırken çok çirkin / bozuk yazı tiplerine sahiptir. Ayrıca, sol alt köşede dikkat dağıtıcı bulduğum sürekli yanıp sönen bir imleç var.

Fbterm / framebuffer olmadan konsolda 256 renk kullanabilir miyim?

Konsoldaki 8 renk sınırı nereden geliyor?



@muru - öneri için teşekkürler. Sorumu güncelledim.
Martin Vegter

Tabii ki, ayarlarsanız TERMiçin xterm-256colorLinux konsolu için, sadece solucanlar başka kutu açmak gerekir. Bu bağlantı bir ipucu veriyor.
Thomas Dickey

RE: UPDATE Muhtemelen farklı bir yazı tipi kullandığım için, "çirkin / bozuk" yazı tipine sahip değilim. Yanlış olabilirdi $TERM(olmak zorunda fbterm önce Başlamadan fbterm32bit görüntü modu veya her ikisi) ya da değil. Başlamadan önce konsol imlecini kapatın ve fbtermkullanarak bir kez orada açın tput. unix.stackexchange.com/questions/220330/…
Paul Wratt

BTW Ayrıca fbtermkaynağa baktım ve bunun xterm-256coloryerine ( fbterm-xterm) kullanmak için kaçış kodu dizilerini dönüştürmek basit (ama zaman alıcı) olurdu . $TERMAyrıca satır içine yerleştirilmiş gerekir terminfove termcapadlandırma kurallarına ( fbterm-xterm-256colorveya fbterm-256colorvarolan kabuk komut içine "yuvaya" kadar). O Not fbtermkullandığı TERM=fbtermbir anahtar gibi, 256 renk seçeneği aksi takdirde 16 renk (veya belki altında yatan aynı) açın.
Mart'ta Paul Wratt

Yanıtlar:


2

Asıl soru şu iki maddeden oluşmaktadır:

  • Fbterm / framebuffer olmadan konsolda 256 renk kullanabilir miyim?

  • Konsoldaki 8 renk sınırı nereden geliyor?

İlkine: görünüşe göre değil. Önerilen tüm yaklaşımlar fbterm kullanır. İkincisi: terminal açıklamasından gelir (aka "terminfo girişi"). Linux konsolu için, TERMset ile linuxterminalin 8 rengi desteklediğini söyler. tput bilgilerini terminal veritabanından alır.

Alıntılanan iplikteki öğelerden biri, fbterm'in renkleri ayarlamak için xterm'den farklı kaçış dizileri kullandığını söylüyor. Durum buysa (ve Emacs kullanıcılarının sabit kodlama eğilimi varsa), fbterm için uygun bir terminal girişi yoktur.


Linux çekirdek terminal emülatörü son yıllarda bazı SGR desteği elde etti: github.com/torvalds/linux/commit/… github.com/torvalds/linux/commit/… github.com/torvalds/linux/commit/…
JdeBP

1
emin - giriş yorumunu okumamış olabilirsiniz: VGA konsollarının donanım sınırlamaları nedeniyle renkler * 16 ön plana ve 8 arka plana indirilmiştir . FBdev konsollarında kalite kaybı olmadan onları desteklemek mümkün olacaktır, ancak bunu eklemek oldukça büyük miktarda kod gerektirecektir. *
Thomas Dickey

Bu yorumu çoktan okudum, bu yüzden ek SGR desteği kazandığını yazdım . (-: Ancak 2016'da yazdığınız gibi her zaman 8 renk sınırı olmadığını unutmayın.
JdeBP

Hala 25+ yıldır olduğu gibi 8 ANSI ve 8 kalın / parlak ANSI paleti (ve ncurses 2009'dan beri linux-16color girişine sahip ).
Thomas Dickey

Daha önce çekirdek kaynağına (OP zamanı hakkında) baktım ve 256 renge izin vermek için basit bir işlem olarak gördüm ( linux-256color). Bu yama, Thomas Dickey'nin yukarıdaki "Donanım sınırlamaları nedeniyle" yorumuyla aynı nedenden ötürü asla yukarı yönde kabul edilmeyecektir. IE Linux gerekir düşük ortak payda üzerinde çalışmak.
Paul Wratt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.