ncurses:鼠标在终端仿真器中工作,但在 tty(vt) 中不工作
ncurses: mouse works in terminal emulator but not tty(vt)
initscr();
cbreak();
noecho();
assert(OK==keypad(stdscr,TRUE));
mousemask(BUTTON1_PRESSED|BUTTON1_RELEASED,NULL));
assert(has_mouse());
assert(166==mouseinterval(1));
refresh();
for(;;){
int ch=wgetch(stdscr);
// Detect mouse event and print coordinates
}
endwin();
在终端模拟器(alacritty)中,鼠标坐标在点击左键后正常报告。但是,如果我 systemctl start gpm
然后 运行 它在 tty(vt) 中,无论在何处单击鼠标都没有任何响应。
如何让它在 tty(vt) 中也能正常工作?
ncurses 必须配置(编译时)才能与 gpm。如果你自己编译的,那可能没有配置。如果您评论的是预建包,您的问题应包含相关信息(系统和包版本)。
一条评论指向 Arch Linux's package, which does not explicitly turn on gpm. The gpm feature is not enabled by default (hint: the INSTALL
file shows the feature as --with-gpm
),并且缺少其他线索,不太可能是包的一部分,除非 gpm 的开发包恰好安装在构建服务器上。
进一步的评论提到了 午夜指挥官。是否真的使用ncurses midnight commander 已经有一段时间没有使用ncurses的鼠标支持了。 comments on ncurses versus slang (S-Lang)
中讨论了其中一些内容
您可以通过自己编译软件包(使用 --with-gpm
,注意安装开发头文件和库)来完成这项工作 (ncurses+gpm),或者可能向 Arch 提交错误报告那改变了。
initscr();
cbreak();
noecho();
assert(OK==keypad(stdscr,TRUE));
mousemask(BUTTON1_PRESSED|BUTTON1_RELEASED,NULL));
assert(has_mouse());
assert(166==mouseinterval(1));
refresh();
for(;;){
int ch=wgetch(stdscr);
// Detect mouse event and print coordinates
}
endwin();
在终端模拟器(alacritty)中,鼠标坐标在点击左键后正常报告。但是,如果我 systemctl start gpm
然后 运行 它在 tty(vt) 中,无论在何处单击鼠标都没有任何响应。
如何让它在 tty(vt) 中也能正常工作?
ncurses 必须配置(编译时)才能与 gpm。如果你自己编译的,那可能没有配置。如果您评论的是预建包,您的问题应包含相关信息(系统和包版本)。
一条评论指向 Arch Linux's package, which does not explicitly turn on gpm. The gpm feature is not enabled by default (hint: the INSTALL
file shows the feature as --with-gpm
),并且缺少其他线索,不太可能是包的一部分,除非 gpm 的开发包恰好安装在构建服务器上。
进一步的评论提到了 午夜指挥官。是否真的使用ncurses midnight commander 已经有一段时间没有使用ncurses的鼠标支持了。 comments on ncurses versus slang (S-Lang)
中讨论了其中一些内容您可以通过自己编译软件包(使用 --with-gpm
,注意安装开发头文件和库)来完成这项工作 (ncurses+gpm),或者可能向 Arch 提交错误报告那改变了。