我有一个定制的 Linux(Debian,我们已经删除了桌面环境),我们在其中使用 X11 运行我们的应用程序。屏幕尺寸为 1024x768,应用程序窗口填满屏幕。现在应用程序的窗口宽度为2048,另一台显示器通过HDMI连接到计算机。第二台显示器的分辨率也是 1024x768。
我们有两个问题:
情况 1:如果插入了 HDMI,我启动了计算机,并且我们的应用程序在启动过程后启动,我们可以看到我们的窗口填满了两个显示器。但在这种情况下,如果我在 (X;Y) 位置触摸计算机屏幕(触摸屏),系统会认为我们在 (X*2;Y) 位置触摸了该屏幕。
情况 2:如果拔掉 HDMI,并且我启动计算机,我们的应用程序会在启动过程后启动。之后我插入 HDMI,然后重新配置 X11 以使用双显示器。在这种情况下,我可以在计算机屏幕上看到我的应用程序,但在第二个屏幕上看不到应用程序的左半部分,只能看到 X11 背景。触摸效果很好,但我的鼠标光标停留在第一个屏幕上。
这是我用于 X11 配置的命令:
xrandr --output HDMI1 --mode 1024x768 --pos 1024x0 --rotate normal --output eDP1 --mode 1024x768 --pos 0x0 --rotate normal
我总是在启动应用程序之前执行此命令。有什么问题(或问题)?
答案1
我的应用程序是一个使用eglfs平台的基于Qt的程序。问题的根源是eglfs,如果我在运行应用程序之前执行以下命令,则 xrandr 可以正常工作:
xrandr --fb 2048x768 export QT_QPA_EGLFS_WIDTH=2048 export QT_QPA_EGLFS_HEIGHT=768
触摸仍然是错误的,但我认为这是另一个问题,所以我提出了一个新问题。