我有一个定制的 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
我总是在启动我的应用程序之前执行这个命令。什么是问题(或问题)?
我的应用程序是一个使用 eglfs 平台的基于 Qt 的程序。问题的根源是 eglfs,如果我在运行我的应用程序之前执行以下命令,那么 xrandr 可以完美运行:
xrandr --fb 2048x768 export QT_QPA_EGLFS_WIDTH=2048 export QT_QPA_EGLFS_HEIGHT=768
触摸仍然是错误的,但我认为这是另一个问题,所以我打开一个新问题。