私はX11を使用してアプリケーションを実行するカスタムLinux(Debian、デスクトップ環境を削除しました)を持っています。画面サイズは1024x768で、アプリケーションウィンドウが画面を埋めます。これで、アプリケーションのウィンドウ幅は2048で、他のモニターはHDMI経由でコンピュータに接続されます。 2番目のモニターの解像度も1024×768です。
2つの質問があります。
ケース1:HDMIが接続されていてコンピュータを起動し、起動プロセス後にアプリケーションが起動すると、ウィンドウが両方のモニタを満たすことがわかります。ただし、この場合(X; Y)の位置でコンピュータ画面(タッチスクリーン)をタッチすると、システムは(X * 2; Y)の位置で画面をタッチしたと見なします。
ケース2:HDMIが切断された状態でコンピュータを起動すると、起動プロセス後にアプリケーションが起動します。その後、HDMIを接続し、デュアルモニタを使用するようにX11を再構成しました。この場合、コンピュータ画面には自分のアプリケーションが表示されますが、2番目の画面ではアプリケーションの左半分が表示されず、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
それでもタッチがうまくいかないのですが、それはまた別の問題であるようで、新たに質問を開きました。