如何检测带内xterm调整大小

时间:2019-05-06 18:21:43

标签: linux xterm

我正在寻找一种在xterm上获取调整大小事件的方法,以替代绞盘信号。我需要获得与远程兼容的xterm调整大小的信号,也就是说,可以在串行线/ telnet / ssh /任何地方使用它。绞盘信号仅用于本地机器任务。

我知道vi / curses可以做到这一点,因为我尝试了ssh并使用vi来编辑文件,并且它响应于窗口大小的调整。

1 个答案:

答案 0 :(得分:-1)

因此,在进行了一些研究之后,似乎并没有用于此的带内方法。我认为添加起来并不困难。您从两个方面进行连接,即ssh,串行或其他方式,比方说A和B,其中A在主机上,而B在远程上。为了使行为等同于本地窗口任务,我至少要说两件事:

  1. 鼠标移动/按钮消息传递。
  2. 调整窗口大小的消息。

第二,可以是一个两步过程。如果B任务收到窗口大小已更改的警报,它可以使用带内查询来确定新的大小,方法是(将光标放置在一个不可能的大屏幕的末尾)(可能会声名狼藉)光标的实际位置,然后还原位置,所有操作均通过标准带内控件完成。

为什么要关心带内还是带外?好吧,现在没有人在乎:-),但是串行线曾经很流行,并且带内(即,沿该线发送的实际转义序列)将起作用,但是telnet或ssh的“带外”通信不起作用

添加ssh或telnet或什至xterm本身的本地程序,可以很容易地添加绞盘消息并将其更改为B侧的转义警报。在此,鼠标消息具有指导意义。消息包含两个动作:

  1. B侧必须启用此类消息,以便A侧不会向其发送未知的转义。
  2. A侧必须有逃生装置才能表示绞盘。

从B到A的新逃生,从A到B的新逃生。

我实际上对绞盘非常满意。想要具有与vi / curses相同的功能(根据我的观察)。这种支持已经远远优于Windows(据我所知),Windows没有实现任何远程支持。