Ausführen von GNU Screen mit 256 Farben unter OS X Lion

8

Terminal.app in Mac OS X Lion hat eine Funktion, deren Implementierung lange gedauert hat: 256-Farben-Unterstützung. Die Farben funktionieren gut. Das Problem, das ich habe, ist, dass ich beim Ausführen von GNU Screen keinen Zugriff auf 256 Farben habe. In screen ist $ TERM auf "screen" gesetzt.

Ich habe verschiedene Dinge an verschiedenen Orten gelesen und bin sehr verwirrt. Einige davon sind:

  • GNU-Bildschirm muss mit Farbunterstützung kompiliert werden (Wie kann ich feststellen, ob der Bildschirm von OS X auf diese Weise kompiliert wurde?)
  • Eine spezielle terminfo-Datei für screen-256color muss installiert sein. Hat OS X das?
  • In .screenrc sollte der Begriff auf "screen-256color" gesetzt werden.
  • Bestimmte Funktionen in Emacs müssen aufgerufen werden, damit Emacs farbenfroh ist ( http://www.emacswiki.org/emacs/GnuScreen#toc6 )

Ich habe Variationen dieser Verfahren ausprobiert und war erfolglos und mir nicht sicher, warum ich versagt habe. Was ist für mich der direkteste Weg, um 256 Farben in GNU Screen zu aktivieren?

hekevintran
quelle
1
@PaulR Du hast recht, aber es ist trotzdem eine gute Frage.

Antworten:

6

Standardmäßig screenist nicht bekannt, dass es in einer 256-Farben-fähigen ausgeführt wird xterm. Damit Programme screendiese Funktion erkennen, müssen Sie folgende Einstellungen vornehmen ~/.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" 

Wenn dies bei Ihnen nicht funktioniert, wurde Ihre Version von screenwahrscheinlich nicht mit kompiliert ./configure --enable-colors256. Sie können dies beim Start im Begrüßungsbildschirm überprüfen screen. Die mit OS X gelieferte Standardversion unterstützt keine 256 Farben. Sie können die Quelle überprüfen und Ihre eigene Version kompilieren, indem Sie die resultierende Binärdatei in Ihre einfügen $PATH(ich habe sie in ~/bindie eingefügt, die ich zu meiner hinzugefügt habe $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

Quellen: 1 und 2

Mathias Bynens
quelle
1
Vielen Dank. Dieses Problem hat mich so lange irritiert. Jemand von Apple hielt es für eine gute Idee, einen Terminalemulator mit 256 Farben und einen Terminalmultiplexer mit 8 haha ​​auszuliefern!
Hekevintran
FWIW, ich habe dies unter bugreport.apple.com als Fehler gemeldet . Hoffentlich wird dies in Mountain Lion behoben.
Mathias Bynens
2
Homebrew-Benutzer: Homebrew-Dupes hat ein Rezept für Bildschirm einschließlich --enable-colors256. $ brew tap homebrew / dupes # wenn du noch nicht $ brew install screen
hast
1

Fügen Sie Folgendes zu Ihrer hinzu ~/.screenrc

term "screen-256color"

Und dann versuchen, sollte es funktionieren.

jrg
quelle
FWIW das ist alles was ich in 10.7.5 und 10.8.2 brauche.
vom
@tvon Ich kann es unter OSX 10.7.5 nicht zum Laufen bringen. Irgendeine Idee warum?
Phani