Exécuter l'écran GNU avec 256 couleurs sur OS X Lion

8

Terminal.app dans Mac OS X Lion possède une fonctionnalité qui a mis du temps à être implémentée: 256 couleurs prises en charge. Les couleurs fonctionnent bien. Le problème que j'ai est que lorsque je lance l'écran GNU, je n'ai pas accès à 256 couleurs. Dans l'écran, $ TERM est défini sur "écran".

J'ai lu différentes choses à différents endroits et je suis très confus. Certains d'entre eux comprennent:

  • L'écran GNU doit être compilé avec le support des couleurs (comment savoir si l'écran d'OS X a été compilé de cette façon?)
  • Un fichier terminfo spécial pour screen-256color doit être installé. OS X a-t-il cela?
  • Dans .screenrc, le terme doit être défini sur "screen-256color".
  • Certaines fonctions dans Emacs doivent être appelées pour qu'Emacs soit coloré ( http://www.emacswiki.org/emacs/GnuScreen#toc6 )

J'ai essayé des variantes de ces procédures et je n'ai pas réussi et je ne sais pas pourquoi j'ai échoué. Quel est le moyen le plus direct pour moi d'activer 256 couleurs dans l'écran GNU?

hekevintran
la source
1
@PaulR Vous avez raison, mais c'est quand même une bonne question.

Réponses:

6

Par défaut, screenn'est pas conscient qu'il s'exécute dans un 256 couleurs xterm. Pour que les programmes screenreconnaissent cette fonctionnalité, vous devez définir quelques éléments dans votre ~/.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" 

Si cela ne fonctionne pas pour vous, votre version de screenn'a probablement pas été compilée avec ./configure --enable-colors256. Vous pouvez le vérifier dans l'écran d'accueil lors du démarrage screen. La version par défaut fournie avec OS X ne prend pas en charge 256 couleurs. Vous pouvez vérifier la source et compiler votre propre version, en mettant le binaire résultant dans votre $PATH(je l'ai mis dans ~/binlequel j'ai ajouté à mon $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

Sources: 1 et 2

Mathias Bynens
la source
1
Merci beaucoup. Ce problème m'irrite depuis si longtemps. Quelqu'un chez Apple a pensé que c'était une bonne idée d'expédier un émulateur de terminal avec 256 couleurs et un multiplexeur de terminal avec 8 haha!
hekevintran
FWIW, j'ai signalé cela comme un bug sur bugreport.apple.com , donc j'espère que cela sera corrigé dans Mountain Lion.
Mathias Bynens
2
Utilisateurs Homebrew: homebrew-dupes a une recette pour l'écran, y compris --enable-colors256. $ brew tap homebrew / dupes # si vous n'avez pas déjà l'écran d'installation de $ brew
chrisk
1

Ajoutez ce qui suit à votre ~/.screenrc

term "screen-256color"

Et puis essayez, cela devrait fonctionner.

jrg
la source
FWIW c'est tout ce dont j'avais besoin en 10.7.5 et 10.8.2.
2012
@tvon Je n'arrive pas à le faire fonctionner sur mon OSX 10.7.5. Une idée pourquoi?
Phani