Wayland 上的 Qt5 - 如何设置键盘重复率?

Wayland 上的 Qt5 - 如何设置键盘重复率?

我正在运行 SwayWM。我将键盘重复延迟和速率设置~/.config/sway/config为:

input * repeat_delay 180
input * repeat_rate 50

这适用于除 Qt5 应用程序之外的所有应用程序。Qt5 应用程序使用自己的重复延迟和速率,不受 Sway 设置的影响。

如何更改在 Wayland 下运行的 Qt5 应用程序的键盘重复延迟和速率?

答案1

更新2021-01-23:不知为何,现在它起作用了。漏洞未标记为已修复,并且代码没有变化,所以我不知道有什么区别。但现在按键重复速度很快。


我找到问题的根源了。

Qt5 很可能libinput在 Wayland 上默认使用(我还没有证实这一点,但似乎很有可能)。qlibinputkeyboard.cpp包含硬编码的重复设置:

const int REPEAT_DELAY = 500;
const int REPEAT_RATE = 100;

// ...

m_repeatTimer.setInterval(REPEAT_DELAY);
m_repeatTimer.start();

是的,Qt5 带有 libinput,使用其自己的硬编码设置实现了自己的重复。

因此,为了避免这种情况,似乎有必要:

  1. 配置 Qt5 以使用 libinput 以外的其他东西(不确定如何做到这一点);或者
  2. 使固定qlibinputkeyboard.cpp

相关内容