Al menos para xterm
, puede cambiar la fuente actual imprimiendo una secuencia de escape. La sintaxis es ESCAPE ] 50 ; FONTNAME BEL
.
Aquí hay (una versión abreviada de) un script que uso para esto; Yo lo llamo xfont
(el real tiene más comprobación de errores):
#!/usr/bin/perl
use strict;
use warnings;
print "\e]50;@ARGV\a";
No sé qué otros emuladores de terminal reconocen esta secuencia. En particular, encuentro que no funciona bajo screen
, incluso si el screen
la sesión está en un xterm
ventana.
Tenga en cuenta que debe especificar el nombre de la fuente ("10x20"
, "9x15"
), no su tamaño.
EDITAR:Debería prestar más atención a las etiquetas. En C++, sería algo como:
std::cout << "\x1b]50;" << font_name << "\a" << std::flush;
ACTUALIZACIÓN:Con xterm
, esto no funcionará si está utilizando fuentes TrueType. Además, Dúthomhas sugiere en un comentario:
Sé que esto es antiguo, pero todas las cadenas terminfo deben imprimirse usando putp()
[o tputs()
], incluso en C++.
putp( (std::string{ "\33]50;" } + font_name + "\a").c_str() );
Lo mejor que puedes hacer es usar una fuente en negrita. Terminal emula una terminal real basada en texto, por lo que no admite diferentes fuentes a la vez.