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 提交错误报告那改变了。