ST terminal有一个
patch for scrolling back.我想更新所述补丁以启用除“PageUp”和“PageDown”之外的鼠标滚轮上下信号.我怀疑config.h中的一个小变化是需要的,但我没有终端代码的经验,因此我请求帮助.
在源代码中,在config.h中显示以下行:
static Mousekey mshortcuts[] = {
/* button mask string */
{ Button4, XK_ANY_MOD, "\031" },
{ Button5, XK_ANY_MOD, "\005" },
};
所以,很明显,我们知道Button4 / 5是什么.另外,我们有这些:
static Shortcut shortcuts[] = {
/* mask keysym function argument */
[...]
{ ShiftMask, XK_Page_Up, kscrollup, {.i = -1} },
{ ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} },
};
所以,天真地,我假设添加另外两个原始(一个用于向上轮,一个用于向下轮)将成功.但是,什么?
注意:我知道suckless建议使用终端多路复用器,例如tmux.我已经使用了它.但是,有时(很少)我只想使用没有tmux的终端,这个功能会很有用.请不要评论/回答使用tmux,这不是这个问题的内容.
最佳答案 事情并非那么简单.当有人想要左/右滚动鼠标轨迹球时,偶尔会出现这个问题.
在表的左列是一个X事件.这些仅限于预定义符号的组合.
提到了Button4和Button5,因为它们通常用于传递鼠标滚轮事件.这种情况已经持续了一段时间;在1999年(patch #120)修改xterm之前使用了一个资源文件,使其成为内置功能.
可能的X事件在C头文件(X.h)和X源代码中的表中列出;没有提供滚轮鼠标事件.例如,X Toolkit库中有一个table列出了所有可能性(对于使用X Toolkit的客户端,例如xterm). xev使用标头定义.
如果X以不同的方式支持滚轮鼠标事件,它可能会为此目的使用新的函数调用,因为现有的信息可能以一种排除容易扩展的方式打包到位字段中.