使用X时减少输入延迟

时间:2018-04-27 15:16:10

标签: c++ xlib

我最近一直在阅读一些关于输入延迟的文章:

https://danluu.com/term-latency/

https://pavelfatin.com/typing-with-pleasure/

我一直在努力改善小文本编辑器的用户体验。我正在使用SDL来汇集输入并创建窗口,但决定删除它并执行我自己的X实现。应用程序启动已经改进,但输入延迟并没有那么多。是否有任何特定的技术可以改善我的应用程序从X中获取鼠标和键盘数据的方式?或者我应该放弃并强迫Wayland?

我考虑在一个单独的线程上运行我的XNextEvent()循环,但这真的是唯一的解决方案吗?

import csv

def save_output(output_file_name):
    global output
    fields = list(mydict.keys())
    with open(output_file_name, 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(mydict.items())
        for key,items in mydict.items():
            for item in items:
                writer.writerow(key,item)

save_output('test_output.csv')

1 个答案:

答案 0 :(得分:1)

您也可以直接侦听evdev输入驱动程序,但随后必须通过自己的实现将事件传递到窗口。

XNextEvent()依次转换所有数学转换(从原始事件到基于窗口的转换),计算窗口的焦点以及许多其他内容。

如果您追求简单易行,我认为XNextEvent()是唯一的选择。