C 在无吸盘ST终端中向后滚动以支持鼠标滚轮的补丁
这个有一个。我想更新所说的补丁,除了“PageUp”和“PageDown”之外,还可以启用鼠标滚轮上下信号。我怀疑C 在无吸盘ST终端中向后滚动以支持鼠标滚轮的补丁,c,unix,terminal,x11,C,Unix,Terminal,X11,这个有一个。我想更新所说的补丁,除了“PageUp”和“PageDown”之外,还可以启用鼠标滚轮上下信号。我怀疑config.h中的一个小改动是需要的,但我在终端代码方面没有经验,因此请求帮助 在源代码中,在config.h中显示以下行: static Mousekey mshortcuts[] = { /* button mask string */ { Button4, XK_ANY_MOD,
config.h
中的一个小改动是需要的,但我在终端代码方面没有经验,因此请求帮助
在源代码中,在config.h
中显示以下行:
static Mousekey mshortcuts[] = {
/* button mask string */
{ Button4, XK_ANY_MOD, "\031" },
{ Button5, XK_ANY_MOD, "\005" },
};
所以,很明显,我们知道按钮4/5是什么。此外,我们还有:
static Shortcut shortcuts[] = {
/* mask keysym function argument */
[...]
{ ShiftMask, XK_Page_Up, kscrollup, {.i = -1} },
{ ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} },
};
因此,天真地,我假设再加上两个原始(一个用于上轮,一个用于下轮)就可以了。然而,什么
注意:我知道建议使用终端多路复用器,如。我已经用过了。然而,有时(很少)我只想使用一个没有的终端,这个功能会很有用。请不要使用评论/回答,这不是这个问题的内容。没有那么简单。当有人想要左/右滚动鼠标轨迹球时,偶尔会出现这个问题 表的左列是一个X事件。这些仅限于预定义符号的组合 之所以提到Button4和Button5,是因为它们通常用于传递鼠标滚轮事件。这种情况已经有相当一段时间了;1999年()修改xterm之前使用了一个资源文件,以使其成为一个内置功能 可能的X事件在C头文件和X源代码中的表中列出;因此,不提供滚轮鼠标事件。例如,X Toolkit库中有一个列表,列出了所有可能性(适用于使用X Toolkit(如xterm)的客户机)
xev
使用标题定义
如果X以不同的方式支持滚轮鼠标事件,它可能会为此使用新的函数调用,因为现有信息可能会以一种不易扩展的方式打包到位字段中。,有一些允许使用
Shift+mouseweel
滚动以及完整的鼠标滚动。最后一个补丁可能会破坏除滚动功能之外的其他mkeys
。现在有一个独立的程序为任何终端仿真器提供滚动缓冲区。在撰写此答案时,它仍处于实验状态,预计会出现很多错误。尽管如此,它已经比st的scrollback补丁更好地处理了scrollback。例如,调整终端的大小将包装以前的输出,而不是切断并丢失它们
要启用它,首先当然要从下载/克隆源代码并在本地构建它
然后在st
的config.def.h
中修改这一行(您必须获取最近的git提交以获得对滚动的支持)
char*scroll=NULL;
到
char*scroll=“/path/to/scroll”;
现在重建st
,然后运行st
。它将自动使用scroll提供回滚缓冲区
如本手册所述,在不修改st
课程代码的情况下,另一种方法是在安装st
和scroll
后,使用以下命令运行st
:
/path/to/st-e/path/to/scroll/bin/sh
虽然这不是我想要的答案,但它确实给了我一个清晰的问题解释。谢谢。所以有一种方法可以做到这一点,因为有一种方法可以做到这一点。然而,鉴于我的问题,你的回答仍然是最好的,因此它仍然被接受。