GNU/Linux >> Znalost Linux >  >> Linux

Změňte velikost písma terminálu pomocí C++

Alespoň pro xterm , můžete změnit aktuální písmo vytištěním sekvence escape. Syntaxe je ESCAPE ] 50 ; FONTNAME BEL .

Zde je (zkrácená verze) skript, který k tomu používám; Říkám tomu xfont (skutečný má více kontroly chyb):

#!/usr/bin/perl

use strict;
use warnings;

print "\e]50;@ARGV\a";

Nevím, které další emulátory terminálu tuto sekvenci rozpoznávají. Zejména jsem zjistil, že to nefunguje pod screen , i když screen relace je v xterm okno.

Všimněte si, že musíte zadat jméno písma ("10x20" , "9x15" ), nikoli jeho velikost.

EDIT:Měl bych věnovat větší pozornost tagům. V C++ by to bylo něco jako:

std::cout << "\x1b]50;" << font_name << "\a" << std::flush;

AKTUALIZACE:S xterm , nebude to fungovat, pokud používáte písma TrueType. Dúthomhas také v komentáři navrhuje:

Vím, že je to staré, ale všechny řetězce terminfo by měly být vytištěny pomocí putp() [nebo tputs() ], a to i v C++.

putp( (std::string{ "\33]50;" } + font_name + "\a").c_str() );


Nejlepší, co můžete udělat, je použít tučné písmo. Terminál emuluje skutečný textový terminál, takže nepodporuje různé fonty najednou.


Linux
  1. Změnit písmo konzoly v textovém režimu?

  2. Změnit název terminálu?

  3. Lze velikost písma Grub přizpůsobit?

  1. Změnit písmo v příkazu Echo?

  2. Změnit velikost písma Terminál Ubuntu

  3. Vliv usleep(0) v C++ na Linuxu

  1. Zaznamenejte svou terminálovou relaci pomocí Asciinema

  2. Proč se držím xtermu

  3. Jak změním velikost písma v Dwarf-fortress?