Uruchamianie ekranu GNU z 256 kolorami na OS X Lion

8

Terminal.app w Mac OS X Lion ma funkcję, której wdrożenie zajęło dużo czasu: obsługa 256 kolorów. Kolory działają dobrze. Problemem jest to, że kiedy uruchamiam ekran GNU, nie mam dostępu do 256 kolorów. W ekranie $ TERM jest ustawione na „screen”.

Czytałem różne rzeczy w różnych miejscach i jestem bardzo zdezorientowany. Niektóre z nich obejmują:

  • Ekran GNU musi być skompilowany z obsługą kolorów (Jak mogę sprawdzić, czy ekran OS X został skompilowany w ten sposób?)
  • Musi być zainstalowany specjalny plik terminfo dla screen-256color. Czy OS X ma to?
  • W .screenrc termin powinien być ustawiony na „screen-256color”.
  • Niektóre funkcje Emacsa muszą zostać wywołane, aby Emacs był kolorowy ( http://www.emacswiki.org/emacs/GnuScreen#toc6 )

Próbowałem różnych tych procedur i zakończyłem się niepowodzeniem i nie jestem pewien, dlaczego zawiodłem. Jaki jest dla mnie najbardziej bezpośredni sposób na włączenie 256 kolorów na ekranie GNU?

hekevintran
źródło
1
@PaulR Masz rację, ale to dobre pytanie.

Odpowiedzi:

6

Domyślnie screennie jest świadomy, że działa w trybie 256 kolorów xterm. Aby programy screenrozpoznawały tę funkcję, musisz ustawić kilka rzeczy w ~/.screenrc:

term "screen-256color"
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground 
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' 
# erase background with current bg color 
defbce "on" 

Jeśli to nie zadziała, screenprawdopodobnie twoja wersja prawdopodobnie nie została skompilowana ./configure --enable-colors256. Możesz to sprawdzić na ekranie powitalnym podczas uruchamiania screen. Domyślna wersja dostarczana z systemem OS X nie obsługuje 256 kolorów. Możesz sprawdzić źródło i skompilować własną wersję, umieszczając wynikowy plik binarny w swoim $PATH(umieszczam go w ~/bintym, co dodałem do mojego $PATH):

git clone git://git.savannah.gnu.org/screen.git
cd screen/src
./autogen.sh
./configure --enable-colors256
make   # I got a lot of warnings here, but they don't seem to matter
sudo make install
cp screen ~/bin/screen

Źródła: 1 i 2

Mathias Bynens
źródło
1
Dziękuję Ci bardzo. Ten problem denerwuje mnie od tak dawna. Ktoś w Apple pomyślał, że dobrym pomysłem jest wysłanie emulatora terminali w 256 kolorach i multipleksera terminali o 8 haha!
hekevintran
FWIW, zgłosiłem to jako błąd w bugreport.apple.com , więc mam nadzieję, że to dostanie stałej w Mountain Lion.
Mathias Bynens
2
Użytkownicy Homebrew: homebrew-dupes ma przepis na ekran, w tym --enable-colors256. $ brew tap homebrew / dupes # jeśli jeszcze nie ekran instalacji $ napar
chrisk
1

Dodaj następujące elementy do swojego ~/.screenrc

term "screen-256color"

A potem spróbuj, powinno działać.

jrg
źródło
FWIW to wszystko, czego potrzebowałem w 10.7.5 i 10.8.2.
tvon
@tvon Nie mogę go uruchomić na moim OSX 10.7.5. Masz pomysł, dlaczego?
Phani,