使用python

时间:2019-01-18 13:59:52

标签: terminal gnome-terminal

在Ubuntu gnome-terminal中,可以通过Ctrl +或Ctrl- 有没有办法编写一个python脚本,当执行该脚本时,该脚本会重新调整从其执行的终端的字体大小?

我需要这样做,以便使用timg在高分辨率的终端上显示图像。

2 个答案:

答案 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-sizeincrease-font-size信号(请参阅{{3} }。 source code是您在键盘上使用的。但是,如何从终端仿真器外部启动的脚本中确定对象指针还不清楚。

答案 1 :(得分:0)

没有简便的方法可以在各个终端上执行此操作。终端支持所谓的控制序列,它可以设置许多选项,例如文本颜色和其他选项,但是没有用于设置字体大小的控制序列。例如,请参见https://en.wikipedia.org/wiki/ANSI_escape_codehttps://invisible-island.net/xterm/ctlseqs/ctlseqs.html,了解支持的操作类型。