web-dev-qa-db-ja.com

xrandr:ディスプレイ領域内のディスプレイネイティブ解像度より低い解像度の出力をシフトする方法

私は事故に遭い、私のラップトップも持っていました。その結果、肋骨が痛くなり、ラップトップの画面が痛い:ラップトップの組み込みディスプレイの右端の〜25%に、上から下に何も表示されません

私のディスプレイが実際の部分と同じ大きさしかないことをUbuntuにどのように納得させますか-画面の左75%について?

私はcvtを使用してモードラインを生成し、xrandrでそれを使用することに成功しました( here および here からの情報を使用)、しかし、残念なことに、Ubuntuは画面のleft側が機能していなかったように見せかけ、right側が機能しなかったため、状況は悪化しています。

--posxrandr --outputフラグを使用して、画面が表示される領域を移動しようとしました(たとえば、テストとしてxrandr --output eDP-1 --mode 1504x1080 --pos 100x100を実行しましたが、--posフラグに入力した値は効果がないようです。

はい、新しいラップトップ(または少なくとも画面)を購入するときかもしれませんが、私は現在旅行中で、このラップトップを少なくとも数か月間動作させる必要があります。ご協力いただきありがとうございます!

編集:

これが私が試したことの詳細です。

ステップ1:目的の解像度でモードラインを生成します。

$ cvt 1440 1080
# 1440x1080 59.99 Hz (CVT 1.56M3) hsync: 67.19 kHz; pclk: 129.00 MHz
Modeline "1440x1080_60.00"  129.00  1440 1528 1680 1920  1080 1083 1087 1120 -hsync +vsync

xrandrを使用して、これを出力として正常に設定できます。ただし、これは解像度を下げるだけです。つまり、実際に最終出力を左にシフトする必要があります。

ここここ の指示に従って、水平バックポーチをゼロに設定することでそれを行うことができるはずです画面の左側に空白のピクセルがないことを示します。

これは、モードラインの3番目と4番目の数値を調整することによって行う必要があり、次のようになります。

Modeline "1440x1080_60.00_p240"  129.00  1440 1768 1920 1920  1080 1083 1087 1120 -hsync +vsync

Xrandrを介して出力モードとして設定すると、動作を停止する前に画面がひどくちらつく。

興味深いことに、私はこのモードラインも試しました。これは、バックポーチをわずか40ピクセルに減らすだろうと思いました。

xrandr --newmode "1440x1080_60.00_p200"  129.00  1440 1728 1880 1920  1080 1083 1087 1120 -hsync +vsync

...しかし、これは出力をまったくシフトしませんでしたが、ちらつきも発生しませんでした。結果は、私が生成した元のモードラインとまったく同じに見えました(まったくシフトされるはずではありませんでした)。

誰が何が起こっているのか理解していますか?

3
Staring Frog

回避策

これは、ワークアウトで見逃した--fb --panningを使用してxrandrで実現できます。

以下は、自分のシステムで実行したときの動作コマンドで、自明です。

私の元の画面解像度は1366x768(eDP-1)で、右側に空白スペースを残して1000x768を使用しようとしました

cvt 1000 766
xrandr --newmode BROKEN 62.00  1000 1056 1152 1304  766 769 779 796 -hsync +vsync
xrandr --addmode eDP-1 BROKEN
xrandr --output eDP-1 --fb 1000x766 --panning 1000x766 --mode BROKEN
xrandr --fb 1000x766 --output eDP-1 --mode 1366x768

enter image description here

enter image description here

enter image description here

1
PRATAP

fbsetプログラムは、任意の境界線にマージンを適用できます。一方、xrandrは、オーバースキャン/アンダースキャンの場合、同時に左右の境界線、および/または上下の境界線のみを管理します。

インターネットで man page を読むことができます:

Display timings:

-pixclock <value>
    set the length of one pixel (in picoseconds). Note that the frame buffer device may only support some pixel lengths

-left <value>
    set left margin (in pixels)

-right <value>
    set right margin (in pixels)

-upper <value>
    set upper margin (in pixel lines)

-lower <value>
    set lower margin (in pixel lines)

-hslen <value>
    set horizontal sync length (in pixels)

-vslen <value>
    set vertical sync length (in pixel lines)

--timings, -t ...
    set all timing parameters at once in the order <pixclock> <left> <right> <upper> <lower> <hslen> <vslen>, e.g. -t 35242 64 96 35 12 112 2
1