少なくとも xterm
については 、エスケープシーケンスを印刷することで現在のフォントを変更できます。構文は ESCAPE ] 50 ; FONTNAME BEL
です .
これは、私がこれに使用するスクリプト (の短縮版) です。 xfont
と呼んでいます (実際のものはより多くのエラーチェックがあります):
#!/usr/bin/perl
use strict;
use warnings;
print "\e]50;@ARGV\a";
他のどの端末エミュレーターがこのシーケンスを認識するかはわかりません。特に、screen
以下では動作しないことがわかりました。 、 screen
であっても セッションは xterm
にあります ウィンドウ。
name を指定する必要があることに注意してください フォント ("10x20"
、 "9x15"
)、そのサイズではありません。
編集:タグにもっと注意を払う必要があります。 C++ では、次のようになります:
std::cout << "\x1b]50;" << font_name << "\a" << std::flush;
更新:xterm
で 、TrueType フォントを使用している場合、これは機能しません。また、Dúthomhas はコメントで次のように提案しています。
これが古いことは知っていますが、すべての terminfo 文字列は putp()
を使用して出力する必要があります [または tputs()
]、C++ でも。
putp( (std::string{ "\33]50;" } + font_name + "\a").c_str() );
あなたができる最善のことは、太字のフォントを使用することです.ターミナルは実際のテキスト ベースのターミナルをエミュレートするため、一度に異なるフォントをサポートしません。