web-dev-qa-db-ja.com

Xrandrを使用してモニターの一部を切り抜く方法

物理モニターの最上部はベゼルで隠されています(尋ねないでください!)。 xrandrを使用してデスクトップの実際のサイズを再定義したいので、モニターの使用可能な部分のみを使用します。

モニターの実際のピクセルサイズは2880x1920ですが、上位(たとえば)20行は使用できません。 (実際にはそれより少ないですが、私は実験する必要があります)。したがって、2880x1900のデスクトップが必要であり、デスクトップが行20から始まり、一番下までモニターに表示されるようにモニターの位置を設定します。

thinkは、-pos + 0-20を使用する必要があることを意味しますが、次のようになります。

$ xrandr  --output eDP-1 --pos +0-20
xrandr: failed to parse '+0-20' as a position

そして、私は他のバリエーションを試しました:

$ xrandr --fb 2880x1900 --output eDP-1 --size 2880x1900+0+20
xrandr: specified screen 2880x1900 not large enough for output eDP-1 (2880x1920+0+0)

これは既存の質問と非常によく似ています モニターの一部のみを表示に使用する方法 しかし、そのユーザーはWindowsについて質問しており、誰もがウィンドウマネージャーを使用することを提案しています。これが常にになり、すべてのワークスペースで発生することを考えると、これはすぐに面倒になります。もっと根本的な解決策を探しています。

実際、20ピクセル行未満であるというのは間違っているようです。

私はこれを見つけました:

$ xrandr --output eDP-1 --transform 1,0,0,0,1,-30,0,0,1 

上部が途切れないように、出力を適切に下に移動します。残念ながら、デスクトップフレームバッファ全体が表示画面の下に拡張されています。その変換に倍率を追加することもできますが、デスクトップの下部がモニターの下部に配置されるように、デスクトップのサイズを変更するだけです。

2
Greg S

私の構成:

  • Intel Celeron NUC
  • Ubuntu 18.04.3 LTS
  • Intel i915ドライバー(統合ビデオ)
  • 古いLCD TVへのHDMI出力

うまくいかなかったもの:

  • ドライバーは、xrandrのオーバースキャン/アンダースキャンプロパティをサポートしていません
  • カスタムビデオモードはまだモニターの端を超えて拡張されています

[〜#〜] did [〜#〜]動作:

xrandr --output "HDMI-2" --fb 1800x1000 --transform 1,0,-60,0,1,-30,0,0,1

-fb 1800x10表示領域を設定します。この設定を単独で使用すると、左右に大きなマージンが得られますが、画像は中央に配置されません。

-transform 1,0、-60,0,1、-40,0,0,1表示されている画像を右に60ピクセル(-60)、下に40ピクセル(-60)シフトします。 -40)。

合わせて、私の画面には60ピクセルの左マージン、1800ピクセルの幅のディスプレイ、さらに60ピクセルの右マージンがあり、合計で1920になります。垂直方向には、40ピクセルの上部マージン、1000ピクセルの高さのディスプレイ、40ピクセルがあります。合計1080の下マージン。

まだ警告が表示されます:

xrandr: specified screen 1800x1000 not large enough for output HDMI-2 (1920x1080+-60+-40)

ただし、フレームバッファーのサイズは変更され、変換が適用されたままになるため、画面の端がモニターの端を超えて拡張されることはありません。

上記の警告メッセージが表示されても、xrandrがゼロ(エラーなしで動作したことを意味します)になった後のエラーレベル。

これは私のために働いたソリューションであり、より高度なnVidiaまたはRadeonドライバーの代わりにIntel統合ビデオドライバーを使用しているため、これまでに機能している唯一のソリューションです。

あなたの解決策として、私は最初にもっと小さい--fbを使用することを提案します:

xrandr --output eDP-1 --fb 2400x1800 

次に、トランスフォームを試して、左上隅を表示します。

次に、フレームバッファを拡張して、右端と下端を表示したままにする方法を見つけます。

これは解像度を変更しません。画面は2880x1920までです。画面サイズを変更し、画面を右下に移動するだけです。

1
Dan

私の環境ではxrandrをテストできませんが、私が見たすべてのサクセスストーリーには、モニターの上部ではなく下部を無効にすることが含まれていましたが、最も印象的な部分は、すべて新しいxrandrの作成に関係していることでした。モード。

xrandrで画面の下部を無効にする方法 の投稿も見つかりました。ポスターは、モニターの下部を無効にしようとすると、上部の代わりに無効になっていることがわかりました。助けを求めた。

誰も彼の投稿に答えませんでしたが、私はそのポスターがしたことを以下に再現します。これはあなたの問題に役立つかもしれません:

したがって、最初にcvtを使用して、画面の壊れた部分を除外して計算された新しい解像度でxrandrの新しいモードを取得します。

cvt 1366 700

次に、これを使用してxrandrで新しいモードを作成します

xrandr --newmode 1368x700 77.00  1368 1432 1568 1768  700 703 713 727 -hsync +vsync

次に、このモードを設定しました

xrandr --addmode eDP-1 1368x700
xrandr --output eDP-1 --mode 1368x700

ただし、無効になる画面の部分は、画面の下部ではなく上部です。

0
harrymc

グレッグS.の質問を注意深く読んだ後、私は気づきました:

私はこれを見つけました:

$ xrandr --output eDP-1 --transform 1,0,0,0,1,-30,0,0,1

上部が途切れないように、出力を適切に下に移動します。残念ながら、デスクトップフレームバッファ全体が表示画面の下に拡張されています。その変換に倍率を追加することもできますが、デスクトップの下部がモニターの下部に配置されるように、デスクトップのサイズを変更するだけです。

私の答えはこの問題に完全には対処していません。

グレッグ、私はあなたがやりたいことをするために2つの方法しか考えられません。

  • スケール変換を使用してY軸を縮小し、デスクトップを表示可能領域に押し込みます。しかし、あなたはこれをしたくないと言いました。

  • 他のオプションは、20〜30ピクセルの使用できないスペースを占めるデスクトップウィジェットを上端に沿って配置することです(おそらくKDEで最も簡単です)。

--fbを変更してもデスクトップのサイズは変更されず、表示される画像が--fbのサイズに制限されるだけです。新しいモードを設定しても、ベゼルによってブロックされている画面の上部から開始されるため、役に立ちません。

私の場合は、ドレメルツールを上部ベゼルに移動するか、圧縮されたデスクトップを使用します。

xrandr --output eDP-1 --fb 2880x1920 --panning 2880x1950 --transform 1,0,0,0,1.02,-30,0,0,1 

コマンドがエラーになった場合は、-fbパラメーターを指定せずに試してください。

0
Dan