在Ubuntu gnome-terminal中,可以通过Ctrl +或Ctrl- 有没有办法编写一个python脚本,当执行该脚本时,该脚本会重新调整从其执行的终端的字体大小?
我需要这样做,以便使用timg在高分辨率的终端上显示图像。
答案 0 :(得分:1)
检查源(vte和gnome-terminal),似乎无法执行此操作。其他终端(例如xterm)可以使用转义序列执行此操作。参见XTerm Control Sequences:
OSC Ps ; Pt ST
Set Text Parameters. For colors and font, if Pt is a "?", the
control sequence elicits a response which consists of the con-
trol sequence which would set the corresponding value. The
dtterm control sequences allow you to determine the icon name
and window title.
...
Ps = 5 0 -> Set Font to Pt. These controls may be disabled
using the allowFontOps resource. If Pt begins with a "#",
index in the font menu, relative (if the next character is a
plus or minus sign) or absolute. A number is expected but not
required after the sign (the default is the current entry for
relative, zero for absolute indexing).
vte可以识别 50
,但这(像许多其他xterm功能一样)只是一个存根,什么都不做。 xterm源包括一个20-year old script,用于演示该功能(请参见fonts.sh
)。
您可以使用wmctrl
工具(可以要求窗口管理器与终端进行协商),而不是使用转义序列。有些人已经在其他终端上做到了这一点,例如terminology(但最终使用了转义序列)。
vte 确实具有一些可以从python脚本访问的代码,使用g_signal_connect
关联decrease-font-size
和increase-font-size
信号(请参阅{{3} }。 source code是您在键盘上使用的。但是,如何从终端仿真器外部启动的脚本中确定对象指针还不清楚。
答案 1 :(得分:0)
没有简便的方法可以在各个终端上执行此操作。终端支持所谓的控制序列,它可以设置许多选项,例如文本颜色和其他选项,但是没有用于设置字体大小的控制序列。例如,请参见https://en.wikipedia.org/wiki/ANSI_escape_code和https://invisible-island.net/xterm/ctlseqs/ctlseqs.html,了解支持的操作类型。