为什么我可以在 xfce4-terminal 中使用鼠标滚轮滚动手册页?

为什么我可以在 xfce4-terminal 中使用鼠标滚轮滚动手册页?

man本身不应该知道有关鼠标滚轮的任何信息,并且 xfce4-terminal 窗口的滚动条不会改变,所以......

当窗口从 X 服务器捕获鼠标滚轮事件时,xfce4-terminal 是否向 pty master fd 发送了一些内容?

如果是,它会向 pty 设备写入什么内容,就像我按下了按键一样Down

或者我完全错过了什么?

答案1

您的寻呼机显示其内容备用屏幕缓冲区,它选择“备用滚动模式”(您可以看到,因为垂直滚动条发生了变化 - 它不再允许滚动窗口内容),在该模式下,终端将鼠标滚轮移动转换为光标向上/向下控制。这是在XTerm很久以前,并且在当前终端中得到广泛支持。

要查看用于切换到备用屏幕缓冲区的顺序,请运行

tput smcup | od -a

你应该看看esc [ ? 1 0 4 9 h。这是寻呼机发送到终端的内容。由终端发送到正在运行的应用程序的 CSI B 表示。

如果您的寻呼机是less,您可以通过导出LESS=X到环境来禁用它(这会跳过终端初始化)。

相关内容