ディスプレイの設定をコマンドライン・シェルで行う
はじめに
グラフィックの扱いは全くの初心者が
色々と試行錯誤した上でコマンドライン上からディスプレイの設定を行う物語。
ツッコミとかアドバイスがあれば是非教えて頂きたいです。
マルチディスプレイの設定を行う
本来であればX Window Systemが参照する設定ファイル、/etc/X11/xorg.conf をいじれば
ディスプレイの設定ができるようだ。
しかしながらネットの情報通りに色々試したが、そもそもxorg.confが適用されていないっぽい。
この時使用しているPCは"どこかの業者"が組んだものらしく、パーツについての詳細は不明。
いや、システムからでも各情報は参照できるが正直面倒くさい。
一応、グラボがGeForce GTX 1050 Tiを搭載しているのは把握したが、だからなんだという話だ。
残念ながらその"業者"との窓口がなく聞くすべもないので、闇雲に試してみた結果以下が使用できた。
xrandr
ディスプレイの設定を行えるライブラリとコマンドの総称だそう。
さっそくコマンドを実行してみた。
$ xrandr
すると以下のような結果が出た。
Screen 0: minimum 8 x 8, current 1920 x 1200, maximum 32767 x 32767
eDP1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
2880x1800 59.99 +
2560x1600 60.00
2048x1536 60.00
1920x1440 60.00
1856x1392 60.01
1792x1344 60.01
1920x1200 60.00* 59.95
1920x1080 59.93
1600x1200 60.00
1680x1050 60.00 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89 60.00
1400x900 60.00
1280x960 60.00
1360x768 59.80 59.96
1280x800 60.00
1152x864 60.00
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
システムが認識している映像出力と、使用できる解像度・フレームレートを表示しているようだ。
この記事を書こうと思った動機になる環境とは違い、個人の環境での出力結果である。
補足しておくと、上記の結果で表示された数の分だけ映像出力端子があるとは限らない。
例えば上記で言うとDP1、DP2と2つの映像出力(DP = DisplayPort)があるが、2つまとめて1つのDisplayPortの出力端子を表している。
ちなみに、変換ケーブルを使用しアナログ信号であるVGAをDisplayPortに変換し接続するとDP1がconnectedになり、
デジタル信号であるDVI-DをDisplayPortに変換し接続するとDP2がconnectedとなった。
だからといって具体的にDP1とDP2がどう違うのかは詳しく判明していないので割愛する。
いよいよ、コマンドでディスプレイの設定
まずは、上のセクションにあるxrandrの結果にあるeDP1を、現状の1920x1200の出力から2880x1800への出力に変更するコマンド
$ xrandr --output eDP1 --mode 2880x1800
上の画像、1枚目はコマンドを実施する前、2枚目はコマンドを実施した後になる。
アイコンやらが小さくなっており、解像度が上がったことが確認できる。
1枚のディスプレイの設定を行ってもそこまで面白くないので、マルチディスプレイでの設定方法を以下に記す。
2枚以上のディスプレイの配置を変更する
ここからは手元に環境が無いので、実行するコマンドと結果をテキストだけでお伝えします。
まずは2枚のディスプレイを左右に並べるコマンド
$ xrandr --output eDP1 --auto --right-of HDMI1
上記コマンドはeDP1のディスプレイをHDMI1の右側に出力して、というコマンド。
左側にしたい場合は --left-of オプションを使用する。
--autoオプションは解像度をディスプレイに最適な値に設定してくれる。
上下に並べたければ以下のようになる。
$ xrandr --output eDP1 --auto --below HDMI1
上記コマンドはeDP1のディスプレイをHDMI1の下側に出力して、というコマンド。
上側にしたい場合は --above オプションを使用する。
これらを使用すれば、2枚以上のディスプレイを配置する事が可能になる。
上記2つのコマンドによるディスプレイの配置は相対的な指定をしている。
そのため、もしHDMI1が接続されていない場合は適用できない。
そんな状況があり得る環境であれば絶対座標を使用する。
こちらのほうがいかなる状況でも対応可能であろう。
$ xrandr --output eDP1 --mode 1920x1080 --pos 1920x1080
上記コマンドは、eDP1の映像出力を解像度は1920x1080、ディスプレイの配置はx:1920 y:1080 で出力となる。
永続的な設定を
この状態でPCを再起動すると初期設定に戻ってしまう。
また、ディスプレイの切断-再接続等が行われると配置が変わってしまう。
なので定期的にディスプレイの配置を監視して、
配置が変わっていれば再度ディスプレイの配置を行うようなシェルスクリプトを作成して /rc.local にでも放り込んでおこう。
xrandrコマンドを実行すればディスプレイの接続状態とディスプレイのジオメトリが取れるので、その値を監視すればいいだろう。
まとめ
個人の環境であればすべて把握しているし自由に構成も変更できるが、
仕事となると色んな兼ね合いがあるものだ。
効率を上げる為の手段が使えない場合も沢山ある。
使えるものは何でも使ってやりたい事を実現していこう。
Author And Source
この問題について(ディスプレイの設定をコマンドライン・シェルで行う), 我々は、より多くの情報をここで見つけました https://qiita.com/hiro_mayo/items/db8ddcea600e8bfbdd5f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .