Au moins pour xterm , vous pouvez modifier la police actuelle en imprimant une séquence d'échappement. La syntaxe est ESCAPE ] 50 ; FONTNAME BEL .
Voici (une version abrégée de) un script que j'utilise pour cela; Je l'appelle xfont (le vrai a plus de vérification d'erreur):
#!/usr/bin/perl
use strict;
use warnings;
print "\e]50;@ARGV\a";
Je ne sais pas quels autres émulateurs de terminaux reconnaissent cette séquence. En particulier, je trouve que cela ne fonctionne pas sous screen , même si le screen la session est dans un xterm fenêtre.
Notez que vous devez spécifier le nom de la police ("10x20" , "9x15" ), pas sa taille.
EDIT :Je devrais faire plus attention aux balises. En C++, ce serait quelque chose comme :
std::cout << "\x1b]50;" << font_name << "\a" << std::flush;
MISE À JOUR :Avec xterm , cela ne fonctionnera pas si vous utilisez des polices TrueType. De plus, Dúthomhas suggère dans un commentaire :
Je sais que c'est vieux, mais toutes les chaînes terminfo doivent être imprimées en utilisant
putp()[outputs()], même en C++.
putp( (std::string{ "\33]50;" } + font_name + "\a").c_str() );
Le mieux que vous puissiez faire est d'utiliser une police en gras. Le terminal émule un terminal textuel réel afin qu'il ne prenne pas en charge différentes polices à la fois.