web-dev-qa-db-ja.com

スクリプト表示設定:xrandr

ディスプレイを接続した後、自動的にディスプレイ設定(現在xrandrで管理されている)を自動的に適用したいと思います。これはBashスクリプトを使用して実行できると想定していましたが、端末から表示設定を処理する方法を見つけていません。

HDMI外部モニターを接続した後、「ディスプレイ設定」GUIを使用してモニターをアクティブにし、構成する必要があります。これは大したことではありませんが、「この出力を使用する」のチェックが常に最初にかかるわけではありません(「この構成を維持する」ダイアログがポップアップしますが、ディスプレイは非アクティブのままです)、「高度な」設定を使用する必要があります2つのディスプレイを再配置します。これは、マシンをスリープ状態から復帰させるたびに行う必要があります。

これらの設定の一部をxrandrでスクリプト化したいと考えていましたが、xrandrコマンドをHDMIディスプレイで動作させることができません。

$ xrandr --output HDMI1 --mode 1920x1080

..組み込みのディスプレイをフラッシュし、ディスプレイ設定GUIをポップアップ表示します(GUIで「接続時に新しいディスプレイを設定」がチェックされている場合、出力をフラッシュし、そうでない場合は何もしません)。

xrandr -d :0 output HDMI1 --auto

同じことをします。 「arandr」GUIも試してみました。どのコマンドを実行するかはわかりませんが、同じことをします。

  • Xubuntu 15.04
  • xfce 4.12
  • Lenovo Yoga 13 Intel i5
  • Intel HDグラフィックス4000
  • Samsung 27 "SyncMaster SA550外部ディスプレイ

xrandr出力:

Screen 0: minimum 8 x 8, current 3520 x 1346, maximum 32767 x 32767
LVDS1 connected primary 1600x900+0+446 (normal left inverted right x axis y axis) 294mm x 166mm
   1600x900       60.1*+
   1440x900       59.9  
   1360x768       59.8     60.0  
   1152x864       60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080      60.0*+   50.0     59.9  
   1680x1050      59.9  
   1280x1024      60.0  
   1440x900       59.9  
   1280x800       59.9  
   1152x864       75.0  
   1280x720       60.0     50.0     59.9  
   1024x768       70.1     60.0  
   800x600        60.3     56.2  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        66.7     60.0     59.9  
   720x400        70.1  
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

編集:guiで調整する前のxrandr出力

(関連があるかどうかはわかりませんが、ディスプレイを接続してdo n'tすぐに設定すると、xfce4-display-settings guis/processesは開始します昨日、別のhdmiディスプレイが接続された状態で電源管理の「x分後の空白」が作動し、使用を再開したときに約50個の「ディスプレイ」ウィンドウが開いていました。)

Screen 0: minimum 8 x 8, current 1600 x 900, maximum 32767 x 32767
LVDS1 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 294mm x 166mm
   1600x900       60.1*+
   1440x900       59.9  
   1360x768       59.8     60.0  
   1152x864       60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected (normal left inverted right x axis y axis)
   1920x1080      60.0 +   50.0     59.9  
   1680x1050      59.9  
   1280x1024      60.0  
   1440x900       59.9  
   1280x800       59.9  
   1152x864       75.0  
   1280x720       60.0     50.0     59.9  
   1024x768       70.1     60.0  
   800x600        60.3     56.2  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        66.7     60.0     59.9  
   720x400        70.1  
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
6
HowlingFantods

このトリックは、2番目のディスプレイが接続された後にxrandr --autoコマンドを実行していることが判明しました。

そのコマンドを実行すると、ディスプレイが表示され、追加のxrandrコマンドで構成できます。

1
HowlingFantods

GUIを使用して画面を設定した後

次の行(xrandrの出力afterで、GUIを使用して画面を設定します):

HDMI1 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 509mm x 286mm

2番目の画面(HDMI1)の位置は、メイン画面の右側(LVDS1)で定義されます(説明どおり、1920x1080+1600+0ここに

GUIで画面を設定する前に

右画面の位置の定義が何らかの理由で欠落しているようです。

何が動作の原因であるかはわかりませんが、軽微な非互換性かもしれませんが、次のコマンドで修正する必要があります。

xrandr --output HDMI1 --pos 1600x0

これにより、メイン画面の右側に2番目の画面が配置されます。

2
Jacob Vlijm

同じ問題がありましたが、解決しました。次のようなxrandrコマンドを実行するためのキーボードショートカットを作成しました:xrandr --output HDMI-1 --auto --output VGA-1 --offそして、あなたが推測したように、モニターが動作するために逆になります:)

1
Sky Cipri