中间按钮用于通过跟踪点滚动以及在 Thinkpad Trakpoint 键盘 II 上粘贴

中间按钮用于通过跟踪点滚动以及在 Thinkpad Trakpoint 键盘 II 上粘贴

我有一台笔记本电脑 Thinkpad E14 和一个外接键盘 ThinkPad TrackPoint Keyboard II(带收音机,但也尝试过使用 BT),装有 Ubuntu 20.10(但问题也出现在 20.04 LTS 中)。

问题是尝试使用外置键盘滚动,使用跟踪点和中键,首先触发粘贴,然后滚动。笔记本电脑键盘上的相同组合正常工作(也适用于 Thinkpad Trackpoint USB 版本和 BT 版本的第一版)

我曾经xev观察过笔记本电脑(和旧键盘)和新键盘上的中间按钮的行为,并观察到和之间存在时间ButtonPress延迟ButtonRelease

例如这是我从笔记本电脑(以及旧 kb)上获得的信息:

  ButtonPress event, serial 88, synthetic NO, window 0x3600001,
      root 0x7c1, subw 0x0, time 12475973, (554,631), root:(3415,1172),
      state 0x0, button 2, same_screen YES

  ButtonRelease event, serial 88, synthetic NO, window 0x3600001,
      root 0x7c1, subw 0x0, time 12475973, (554,631), root:(3415,1172),
      state 0x200, button 2, same_screen YES

这是我在 ThinkPad TrackPoint Keyboard II 上得到的结果

  ButtonPress event, serial 88, synthetic NO, window 0x3600001,
      root 0x7c1, subw 0x0, time 12413819, (555,28), root:(3416,569),
      state 0x0, button 2, same_screen YES

  ButtonRelease event, serial 88, synthetic NO, window 0x3600001,
      root 0x7c1, subw 0x0, time 12413899, (555,28), root:(3416,569),
      state 0x200, button 2, same_screen YES

我猜测是这个时间延迟导致了这种不良行为。

我在网上找到了一个临时的解决方案,通过以下方法禁用中间按钮上的粘贴功能:

  alias mc-off='xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"'
  alias mc-on='xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9"'

有什么建议可以让它正常工作,就像在笔记本电脑上一样?

答案1

几周前发现了这篇文章https://www.phoronix.com/news/ThinkPad-TrackPoint-II-Linux,并给了我希望。我今天可以说,内核 5.19.1解决了中间的按钮滚动。

相关内容