在 ~/.profile、~/.bashrc、grub.cfg 中硬设置(不调整大小/重置)stty 行/列?

在 ~/.profile、~/.bashrc、grub.cfg 中硬设置(不调整大小/重置)stty 行/列?

当我使用 PuTTy 时,我通常在登录后输入:“stty rows 48 columns 240”。

  • 我在 .profile 或 .bashrc 甚至 grub.cfg 中的单行/条目之后对 stty cols/rows 进行硬设置
  • 如果这需要脚本,我可以使用下面的链接。
  • 如果有直接的解决方案,我想找到它。

附录

  • Xterm 未安装
  • PuTTy 连接到主机
  • 然后使用 Virsh 控制台连接到虚拟机
  • 当我使用我的个人资料登录时,希望设置/调整虚拟机上的行/列
  • 当我连接时,我的“PuTTy->窗口->大小->列/行”被预设为我想要的值。此设置不会调整虚拟机的列/行大小。
  • 因此,登录后需要“stty rows 48 columns 240”<-我试图消除它

详细讨论了调整大小/重置:

答案1

resize程序可以为您执行此操作:

resize -s

或者你的例子

resize -s 48 240

这是 PuTTY 碰巧识别出的 xterm 的一个功能(可以在Terminal / Features菜单,但通常启用)。

可以设置一个可能的 terminfo 功能,但它由 GNU 屏幕无条件使用,并且会很麻烦。因此,我们不会将该功能添加到终端描述中。

使用的功能记录在XTerm 控制序列

CSI PS;PS;PS t
窗口操作(XTWINOPS),dtterm,扩展为xterm。可以使用allowWindowOps资源禁用这些控件。

首先PS在这儿:

PS=8 ; 高度 ; 宽度⇒ 将文本区域的大小调整为给定的高度和宽度(以字符为单位)。省略的参数重用当前的高度或宽度。零参数使用显示器的 高度或者宽度

窗口操作功能的一些背景记录在各种各样的部分。

对于您的示例,您可以像这样对其进行硬编码:

printf '\033[8;%d;%dt' $height $width

无论您使用的是resize或只是printf,PuTTY 都会调整其窗口大小,通过连接发送SIGWINCH,这将更新终端的大小 - 就像您发出命令一样stty

但是...如果您使用的是串行线,那SIGWINCH无处可去。 resize不受影响,因为它是为处理这种情况而设计的。

相关内容