Une brêve histoire de design

Tout commence la semaine dernière, un innocent freelance que nous faisons bosser sur un projet secret de domination des informations galactiques me montre son boulot et ne résiste pas à l’envie de me montrer des bouts de code. Je ne manque pas de remarquer que son éditeur de texte ne ressemble à rien de connu, mais brille par sa simplicité et son élégance. Il m’annonce fièrement qu’il travaille sous Sublime Text 2. Curieux, je recherche l’outil en question et m’aperçois avec effroi que non seulement il n’est pas Libre, mais qu’en plus que son prix est exorbitant: 59$ pour une licence utilisateur, on se croirait revenu à l’âge d’or des shareware. Mais il est sexy son truc. En particulier les couleurs. Bien choisies, harmonieuses. Sexy.

Je fais mon C sous emacs en console, il en a toujours été ainsi, j’ai mes habitudes de programmation sur cet éditeur, et si je préfère vim pour le scripting et l’édition de texte simple, emacs, depuis 15 ans maintenant, accompagne la totalité de mes projets en C. Jusqu’à ce week-end, je ne m’étais jamais vraiment préoccupé de problématiques liées aux couleurs, aux thèmes où autres considérations futiles. Jusqu’à ce week-end.

D’abord, je comprend que mon terminal screené n’affiche pas plus de 8 couleurs, cela parce que l’option PKG_OPTIONS.screen+= ncurses n’est pas présente dans mon /etc/mk.conf, et que cela a pour conséquence que cette condition:

n’est pas remplie. Résultat, toute tentative d’utiliser un quelconque thème muni de couleurs un peu originales se solde par un vague pâté difforme à 8 couleurs. L’utilisation du script 256colors2.pl me confirme qu’à l’issue de la recompilation de screen avec les bonnes options, on obtient bien de jolis dégradés:

Emacs refusait de m’annoncer plus de 8 couleurs à son tour, quand bien même le terminal qui l’héberge était désormais muni de super pouvoirs. Rien à faire, M-x list-colors-display ne m’affichait que 8 ignobles couleurs standard. Deux choses à faire ici, ajouter un ~/.termcap décrivant un terminal de type xterm-256color, et ensuite, démarrer le monsieur de cette façon:

N’exportez pas cette variable dans votre ~/.profile, bien d’autres emmerdes vous attendraient au tournant. J’ai préféré un vilain alias.

Finalement, je me rend compte que les couleurs présentées par un emacs screené sont assez différentes d’un emacs non screené. De fil en aiguille, je tombe sur cette page sur laquelle on trouve ce fichier à placer dans votre ~/.emacs.d/term afin de retrouver des couleurs adéquates.

Après des heures de bataille, j’ai enfin pu bidouiller un des thèmes présents sur emacswiki pour obtenir ceci: Je suis pas fâché du résultat.

Et comme j’aime bien partager, voici le thème et le init.el.