web-dev-qa-db-ja.com

xrandrを使用したデュアルモニターのセットアップ:スクロールを無効にして、または無効にして拡張

これは問題ではなく、Ubuntuでの問題の回避策であると私は遭遇しました。

セットアップ:
ラップトップ画面(たとえば、「LVDS-1-0」)と2番目の画面(たとえば、「DP-1」)を指定します。2番目の画面はメイン画面で、モニターは右側にあります。拡張機能としてのメイン画面(または左)(図を参照)。最初の画面は、これを行わないようにxrandrから明示的に指示されたにもかかわらず、常に事実上拡張されました。これを入力すると、プライマリモニターでマウスカーソルを右に移動するときの煩わしいスクロールを回避できました。

xrandr --output LVDS-1-0 --off
xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0

この後、画面をスクロールせずに、あるモニターから別のモニターに移動します。

更新

ディスクリートグラフィックスカードに切り替えた後(nvidiaはディスクリートで、私のラップトップにはIntelが統合されています)、出力の順序を変更する必要があります。

output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}')
output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}')

xrandr --output $output_LVDS --off
xrandr --output $output_LVDS --mode 1920x1080 --pos 1920x0 --output $output_DP --mode 1920x1080 --pos 0x0  --primary

ディスクリートカードと統合グラフィックスカードを切り替えると出力デバイスの指定が変わるため(たとえば、LVDS-1-0とLVDS-1)、より便利にするために、これらの変数をより柔軟にしています。

Monitor layout

11
rocky_hiker

同じバグに遭遇しました。 あなたの回避策は私にとってはうまくいきませんでした。あなたのトリックは単にバグが陥らないようにするトリガーです。私は少し掘り下げて、 解決策のある素敵な男 ここでも他の人を助けるかもしれません。

主な問題は、ここで遭遇したバグにより、他にスクロールしているモニターが仮想画面を持ち、両方の画面のサイズが合計されることです。そのため、ソリューションは、モニターの解像度に合わせて、画面上の追加の仮想スペースを無効にするように見える場合があります。これは通常、--panning AxB引数-仮想空間のサイズを設定するために使用します。

これはあなたがそれを行う方法です:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary

(スラッシュ\コマンドで改行を使用するために追加されました。)

悲しいことに、ここでの問題は、ドライバー(つまりバグ)が、設定した(または設定しなかった)パンニングを上書きするように見えることです。しかし、パンニングの別の部分を設定することはしません:トラッキングエリア!トラッキング領域は、実際には、カメラがそのモニター上のカーソルに追従する画面の一部です。

tl; dr:つまり、パンニングをドライバーとして設定し、代わりにトラッキングエリアを制限することです

これは、次のコマンドで実行されます。

xrandr \
  --output LVDS-1-0 --mode 1920x1080 \
  --output HDMI-0   --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0    --primary

「最初の4つのパラメーター[panning引数]は、パンニング領域全体を指定し、次の4つのポインタートラッキング領域(デフォルトでは同じ領域)を指定します。最後の4つのパラメータは境界線を指定し、デフォルトは0です。」 [ man xrandr ]

6
Sebastian Barth