【问题标题】:Detecting mouse clicks in terminal emulator w/o breaking scrolling在终端仿真器中检测鼠标点击而不中断滚动
【发布时间】:2020-06-25 09:37:54
【问题描述】:

使用 XTERM 控制序列(特别是 CSI ?1000h),只要用户单击终端窗口,我就可以在标准输入上收到通知。不幸的是,这也意味着如果滚轮旋转,我会收到通知,而不是正常的终端滚动。有没有什么方法可以轻松简单地收到有关点击的通知,而不是其他任何东西?

或者,有没有办法发送终端模拟器将解释为“哦,你想让我正常滚动”的转义序列?我可以(不情愿地)解析所有鼠标命令,然后如果我注意到一个向上滚动信号(按钮 96 或 64 取决于模式),回显它说“这里,终端,你处理这个”。理论上这些应该是scroll-forwscroll-back 动作,但我还没有找到直接使用它们的方法。

如果有什么不同,我正在使用 xfce4-terminal,但如果它有助于调试,我愿意尝试其他终端仿真器。

【问题讨论】:

    标签: mouseevent mouse mousewheel xterm terminal-emulator


    【解决方案1】:

    X10 protocol只发送点击(无滚轮鼠标)。这是记录在案的。但这是针对 xterm 的。

    VTE(刚刚使用 XFCE 终端检查)与 xterm 的不同之处在于发送滚轮鼠标事件。除了源代码 (ymmv),VTE 没有值得一提的文档。

    scroll-forwscroll-back 操作是 xterm 功能,在 VTE 中没有对应的功能。

    【讨论】:

    • 是的,X10 没有滚轮支持,但是如果您激活其他一些模式,您可以响应滚轮事件。 less(1) 执行此操作,并处理自己的滚动。我不想这样做 - 我希望正常滚动正常进行。
    猜你喜欢
    • 2015-11-10
    • 1970-01-01
    • 2020-04-18
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多