Załóżmy, że mam system bez X server
. Mogę zalogować się tylko z konsoli. Wygląda na to, że domyślnie konsola linux obsługuje tylko 8 kolorów:
# tput colors
8
Czy w konsoli można użyć 256 kolorów, tak jak w emulatorze terminali (tj. Terminatorze)?
Podczas wyszukiwania w Google znalazłem wiele podobnych pytań (wiele z nich ma ponad 10 lat), ale nie ma jednoznacznej odpowiedzi. Ktoś sugeruje użycie bufora ramki, inni sugerują dodanie argumentu TERM do opcji rozruchu jądra.
W tej chwili przekazuję tylko jedną dodatkową opcję jako parametr rozruchowy jądra:
append="video=1280x720"
Wierzę, że przekazywanie rozdzielczości wideo działa tylko w nowoczesnych jądrach z kernel mode setting
obsługą, ale nie jestem tego pewien.
Czy można używać 256 kolorów w nowoczesnej konsoli Linux (TTY)
W jaki sposób?
Używam Debian Wheezy z jądrem 4.1
AKTUALIZACJA:
na podstawie sugestii @muru, próbowałem fbterm
. Chociaż działa z 256 kolorami, ma bardzo brzydkie / zniekształcone czcionki. Poza tym w lewym dolnym rogu stale miga kursor, co mnie rozprasza.
Czy mogę używać 256 kolorów w konsoli bez fbterm / framebuffer?
Skąd bierze się limit 8 kolorów w konsoli?
źródło
TERM
sięxterm-256color
na konsoli Linux, będziesz po prostu otworzyć kolejną puszkę Pandory. Ten link daje podpowiedź.$TERM
(musi byćfbterm
przed rozpoczęciemfbterm
) lub nie 32-bitowy tryb wideo lub oba. Wyłącz kursor konsoli przed uruchomieniemfbterm
i włącz go, gdy tam będziesz, używająctput
. unix.stackexchange.com/questions/220330/…fbterm
źródło, i byłoby łatwo (ale czasochłonne) przekonwertować sekwencje kodów specjalnych, aby użyćxterm-256color
zamiast nich (fbterm-xterm
). Konieczne$TERM
byłoby również wprowadzenieterminfo
itermcap
nazewnictwo konwencji (fbterm-xterm-256color
lubfbterm-256color
) w celu „umieszczenia” w istniejących skryptach powłoki. Zauważ, żefbterm
używaTERM=fbterm
jako przełącznika do włączenia opcji 256 kolorów, w przeciwnym razie jego 16 kolorów (lub może to samo co podstawowa).Odpowiedzi:
Rzeczywiste pytanie składa się z tych dwóch elementów:
Czy mogę używać 256 kolorów w konsoli bez fbterm / framebuffer?
Skąd bierze się limit 8 kolorów w konsoli?
Do pierwszego: najwyraźniej nie. Wszystkie sugerowane podejścia wykorzystują fbterm. Po drugie: pochodzi z opisu terminala (inaczej „wpis terminfo”). W przypadku konsoli Linux z
TERM
ustawieniem nalinux
, że terminal obsługuje 8 kolorów. tput pobiera informacje z bazy danych terminali.Jeden z elementów cytowanego wątku mówi, że fbterm używa innych sekwencji ucieczki do ustawiania kolorów niż xterm. Jeśli tak jest (i biorąc pod uwagę skłonność użytkowników Emacsa do twardego kodowania), nie ma odpowiedniego wpisu terminala dla fbterm.
źródło
linux-256color
). Ta łatka nigdy nie zostanie zaakceptowana z tego samego powodu, co komentarz Thomasa Dickeya powyżej „Z powodu ograniczeń sprzętowych”. IE Linux musi działać na najniższym wspólnym mianowniku.