显示指针信息¶
show-pointer 工具显示终端向程序上报的、超出普通鼠标范围的输入设备信息:数位板的笔和控制板、触摸屏、触控板,以及在这些设备上进行的手势和滚动。它使用数位板指针、手势和滚动协议,这些开放终端扩展以 OSC 777 封装。在希望检查的终端中运行::
kitten show-pointer
它先询问终端支持哪些协议,以及各协议可报告什么,并以文字说明。然后启用终端提供的全部报告类型,每收到一条报告便打印一行,直至按下 Ctrl+C、Ctrl+D 或 q::
tablet tool down device=3 contact=0 tool=pen x=100.00px y=200.00px cell=8,8 buttons=tip mods=none valid=pressure+tilt pressure=0.488 tilt=-12.00°,6.00° t=408211ms
tablet tool move device=3 contact=0 tool=pen x=101.00px y=200.00px cell=8,8 buttons=tip mods=none valid=pressure+tilt pressure=0.502 tilt=-12.00°,6.00° t=408215ms dt=4ms
gesture pinch update x=100.00px y=200.00px cell=8,8 mods=none scale=+12.0% total=x1.340 t=408230ms dt=8ms
scroll precise moving dx=+0.00px dy=+2.50px x=33.00px y=12.00px cell=2,0 mods=shift t=408244ms dt=8ms
数值转换为便于阅读的单位:位置以像素及所在字符单元从零开始的列号和行号表示,压力以满量程的比例表示,角度以度表示。dt 是距同一接触点上次报告的时间,可用于查看设备报告频率。工具不认识的字段或报告类型会按终端原样打印,不会丢弃,因此也可检查实现了后续协议版本的终端。
工具运行时,其窗口中的笔或手指输入会直接上报,不再作为鼠标操作;启用滚动报告后,终端也不会滚动回滚缓冲区。若只查看部分来源,请列出它们::
kitten show-pointer --only tools,pads
如果系统会判断接触是有意操作,还是手掌等意外接触,每个手指报告中会以 conf=meant 或 conf=accidental 显示判断。系统没有做出判断的手指不会带这两项;不执行此类判断的系统中,所有手指都如此。终端不会向未请求意外接触的程序发送此类报告;工具会在终端声明支持时主动请求,因此显示全部接触。在 --only 中省略 accidental,即可查看未请求该功能的程序会收到的内容:接触被判定为意外时取消,不再被视为意外时重新开始。
退出或使用 Ctrl+Z 挂起时,工具会关闭自己启用的全部模式。如果终端不支持任何相关协议,工具会说明情况并以非零状态退出,因此可在脚本中用作测试。
报告问题¶
若要向他人提供终端对数位板的报告,请使用 --raw,按终端发送的原始帧打印,并将输出重定向到文件::
kitten show-pointer --raw > report.txt
检查的仍是运行命令的终端,只是将输出写入文件。移动笔、按笔按钮和数位板按键,然后退出并附上该文件。以 # 开头的行是工具对终端的说明。
笔序列号可识别笔及其所有者。除非指定 --ids,工具不会向终端请求硬件标识;对于终端仍然发送的序列号,工具会替换为计数编号,首次见到的笔为 #1,第二支为 #2,足以区分不同笔。
命令行选项¶
- --only <sources>¶
只启用指定来源,以逗号分隔;可重复指定此选项。来源包括
tools、fingers、pads、actions、estimates、accidental、gestures、hold和scroll。tablet-pointer和gesture分别选择对应协议的全部来源。默认启用终端提供的全部来源。
- --ids¶
请求并显示硬件标识。未指定时不请求标识,并将收到的笔序列号替换为计数编号。
- --raw¶
不解码,直接打印收到的帧,每行一帧。其他输出行以
#开头。
- --timeout <seconds>¶
每轮查询等待的时间,默认为
2秒。