Xrandr
RandR (Resize and Rotate)[1] X プロトコル拡張とその CLI ツールである xrandr は、X 内でのスクリーンの解像度と回転、およびマルチディスプレイ使用時のスクリーンを管理するために使われます。
バージョン 1.4 ではマルチグラフィックカードがサポートされ、それ以降のバージョン (> 1.5) ではさらに USB 接続のモニターもサポートされます。(これはおそらく xorg-server 1.13 の DisplayLink[2] のサポートに統合されるでしょう。)
インストール
x11-apps/xrandr パッケージは次のコマンドでインストールすることができます:
root #
emerge --ask x11-apps/xrandr
このツールはたいていウィンドウマネージャとともにインストールされるはずです。なぜならこれはディスプレイを管理するために利用されているからです。
GUI ツール
xrandr を使うためのいくつかの GUI ツールが存在します。以下は Gentoo でサポートされているツールの一覧です:
- x11-misc/arandr – もう一つの XRandR GUI (独立した GUI ツール)
- lxde-base/lxrandr – RandR の拡張のための LXDE GUI インターフェース
設定
X に関係したスクリプトを実行する一般的な方法はユーザーのホームディレクトリに存在する ~/.xinitrc もしくは ~/.xprofile といったファイルを使用することです。xrandr に関するコードをこれらのファイルに記述すれば、そのコードは毎回の X の開始時に自動的に実行され、設定は永続的になります。例えば、i3 のためには:
~/.screenlayout/two-displays.sh &
exec dbus-run-session i3
使い方
xrandrはモニターのExtended Display Identification Data (EDID)を使用してその性能を確認します。欠陥のあるハードウェアは誤ったEDIDを報告してしまうので、そのような場合にはトライアンドエラーを繰り返しながらカスタムスクリプトを作成することで対処することができます。
スクリーンクエリ
xrandrを引数なしで実行することで、すべての利用可能なディスプレイ出力インターフェースの一覧と、現在の状態及び性能と共にすべてのディスプレイの一覧が表示されるでしょう。
user $
xrandr
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 8192 x 8192 VGA-1 disconnected (normal left inverted right x axis y axis) LVDS-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 304mm x 190mm 1440x900 60.1*+ 1024x768 60.0 800x600 60.3 640x480 59.9
xrandrクエリの結果には、すべての利用可能なインターフェースが<interface_name>-<index>
とラベル付けされて含まれています。それぞれは接続状態とスクリーンのモードを表しています。接続されたデバイスの現在のモードは*
で示され、推奨されたモードは+
で示されます。
RandRの一般的なディスプレイインターフェースの命名規則:
LVDS
- Laptop screenHDMI
- High-Definition Multimedia InterfaceDVI
- Digital Visual InterfaceDP
- DisplayPortVGA
- Video Graphics ArrayTV
- Composite VideoS-video
- S-Video
スクリーンの操作
xrandr クエリで発見された出力インターフェースに対して、操作を行うことができます。以下はよく使われるタスクの例です:
複数のデバイスが接続されている場合に主ディスプレイを設定する:
user $
xrandr --output LVDS-1 --primary
既知のインターフェースにつなげて、外部ディスプレイへ拡張する (left-of, right-of, above, below, same-as):
user $
xrandr --output DVI-1 --auto --left-of LVDS-1
ディスプレイを回転する (normal, left, right, inverted):
user $
xrandr --output LVDS-1 --rotate left
デバイスを切る:
user $
xrandr --output LVDS-1 --off
スクリーンモード
モードは常に解像度とリフレッシュレートから構成されます。xrandr クエリによって、ハードウェアはどのモードがサポートされているかを報告します。ハードウェアが誤った情報を報告した場合は、独自のモードを定義することができます。接続されたデバイスのモードを変更するには:
user $
xrandr --output LVDS-1 --mode 1024x768
これはそのモードでの最高のリフレッシュレートを使用します。リフレッシュレートも (Hz 単位で) 変更するには:
user $
xrandr --output LVDS-1 --mode 1024x768 --rate 75
変更は即時反映されます。上記のハードウェアでは 75Hz はサポートされていないので、エラーを出力したり、画面が空になったりするかもしれません。これは次のセッションが開始するまで続くでしょう。おかしなことになった場合は、Ctrl+Alt+Backspace を使うことで現在のセッションを終了し、X が再起動するでしょう。
75Hz モードを追加するには、適切なモード行を得るために cvt ツール (x11-libs/libxcvt) を使用することができます:
user $
cvt 1024 768 75
Modeline 以降のすべてを次のコマンドの後ろに追加する必要があります:
user $
xrandr --newmode "1024x768_75.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
クエリを再実行すると、新しく追加したモードが表示されるはずです。
モードを手動で追加しても、以前動作しなかったディスプレイがそのモードで動作するようになることはありません。
関連項目
- Non root Xorg — describes how an unprivileged user can run Xorg without using suid.
- Xorg — X サーバのオープンソース実装です。
- Xorg/Guide — Xorg とは何か、Xorg のインストール方法、各種設定について説明します。
- X server — the main component of the X Window system which abstracts the hardware and provides the foundation for most graphical user interfaces, like desktop environments or window managers, and their applications.