鼠标支持与 ncurses(用于 python)用于大型终端



我在docker容器中使用python3和ncurses(curses(。 问题是鼠标事件没有准确报告x单元格宽度超过222的终端中的位置。乍一看,这是一个明显的限制,因为据我所知,该位置是在单个字节中发送的。

然而,午夜指挥官可以准确地处理大型终端。经过一番挖掘,我找不到如何正确处理带有诅咒的鼠标(此示例无法正常工作(。我尝试过的所有诅咒都无法与大型终端一起使用。午夜指挥官似乎正在使用gpm,但我找不到任何方法在 python 中使用它。

Q1:如何在 python3 中直接处理大型终端中的鼠标,最好是使用 curses?

Q2:以午夜指挥官为例,直接在stdout中打印转义序列会不会让鼠标按预期工作?

Q3:有没有其他终端gui库可以正确处理python的鼠标?

这不是 python 接口对 curses 的直接限制,而是底层 curses 库、终端描述和终端的一个特性:

  • 对于 ncurses,这是扩展鼠标功能,这是 ABI 6 的 ncurses 的标准功能(自 2005 年起可用,2015 年 ncurses 6 的标准(,注意一些发行版仍然提供 ABI5
  • 终端描述必须使用ncurses识别为暗示支持SGR 1006的功能,当然还有
  • 终端本身必须支持该功能(请参阅2018年1月ncurses数据库中的注释,指出了一些没有的xterm模仿者(。

相关内容

  • 没有找到相关文章

最新更新