使用转义序列获取以像素为单位的鼠标位置

Get mouse position in pixels using escape sequences

我正在尝试获取终端中应用程序 运行 中鼠标的位置(以像素为单位)。

目标是在大多数基于文本的应用程序中嵌入小型 GUI 元素。目前有可能在使用 Sixel、Tektronix 或 ReGIS 的相当多的终端仿真器上绘制东西,并且 \e[1000h 或类似的转义码来获取鼠标事件,不幸的是这些鼠标事件是低分辨率的(字符单元格中的坐标,不是以像素为单位)。

xterm 使用以下转义序列报告具有像素分辨率的鼠标位置:

  • 开启像素分辨率:\e[2;1'z
  • 报告鼠标位置:\e['|

详情见http://invisible-island.net/xterm/ctlseqs/ctlseqs.html