「マルチディスプレイ」の版間の差分
(訳追加) |
|||
14行目: | 14行目: | ||
{{Note|混乱を避けるために、この記事で使用する単語の意味を明確にします: |
{{Note|混乱を避けるために、この記事で使用する単語の意味を明確にします: |
||
− | * '''モニター'''は LCD パネルのような物理的な |
+ | * '''モニター'''は LCD パネルのような物理的な表示デバイスを示します。 |
* '''スクリーン'''は X-Window の画面を示します (つまり'''モニター'''は'''ディスプレイ'''に接続されます)。 |
* '''スクリーン'''は X-Window の画面を示します (つまり'''モニター'''は'''ディスプレイ'''に接続されます)。 |
||
* '''ディスプレイ'''はデスクトップの各部位を示すのに同時に使われる'''スクリーン'''の集合を示します ('''ディスプレイ'''の中の'''スクリーン'''でウィンドウをドラッグすることができます)。 |
* '''ディスプレイ'''はデスクトップの各部位を示すのに同時に使われる'''スクリーン'''の集合を示します ('''ディスプレイ'''の中の'''スクリーン'''でウィンドウをドラッグすることができます)。 |
||
45行目: | 45行目: | ||
{{Warning|1=2013年8月現在、バージョン 319 以上のプロプライエタリの NVIDIA ドライバーを使っている場合、Xinerama は動作しません。NVIDIA ドライバーで Xinerama を使用したいユーザーは NVIDIA 313 ドライバーを使う必要があります。ただし、このドライバーは 3.10 以前の Linux カーネルでしか動作しません。詳しくは [https://bbs.archlinux.org/viewtopic.php?id=163319 このスレッド] を参照。}} |
{{Warning|1=2013年8月現在、バージョン 319 以上のプロプライエタリの NVIDIA ドライバーを使っている場合、Xinerama は動作しません。NVIDIA ドライバーで Xinerama を使用したいユーザーは NVIDIA 313 ドライバーを使う必要があります。ただし、このドライバーは 3.10 以前の Linux カーネルでしか動作しません。詳しくは [https://bbs.archlinux.org/viewtopic.php?id=163319 このスレッド] を参照。}} |
||
+ | [[Wikipedia:ja:Xinerama|Xinerama]] は X のマルチスクリーンを実現する古い手段です。Xinerama は全てのモニターを単一のスクリーン ({{ic|:0}}) にまとめるため、スクリーンを通り越してウィンドウをドラッグすることができます。 |
||
− | [[Wikipedia:ja:Xinerama|Xinerama]] is the old way of doing genuine multihead X. Xinerama combines all monitors into a single screen ({{ic|:0}}) making it possible to drag windows between screens. |
||
+ | Xinerama は [[Xorg#設定|X の設定ファイル]]をカスタマイズすることで設定します。以下に例を挙げます: |
||
− | Xinerama is configured via custom [[Xorg#Configuration|X configuration files]]. Here are some examples: |
||
This is a ServerLayout section which controls where each monitor sits relative to the others. |
This is a ServerLayout section which controls where each monitor sits relative to the others. |
||
197行目: | 197行目: | ||
{{Note|This section assumes that you have read the [[xrandr]] page for basic info about ''xrandr''.}} |
{{Note|This section assumes that you have read the [[xrandr]] page for basic info about ''xrandr''.}} |
||
− | + | 相対的にスクリーンを配列したり ({{ic|--right-of}}, {{ic|--left-of}}, {{ic|--above}}, {{ic|--below}} オプションを使用)、絶対座標を使って配置することができます ({{ic|--pos}} オプションを使用。絶対座標を使う場合はモニターの解像度を知る必要があります)。詳しくは {{ic|man xrandr}} を見て下さい。よく使われる設定については以下で説明します。 |
|
==== HDMI1 の左側に適切な解像度で VGA1 を表示 ==== |
==== HDMI1 の左側に適切な解像度で VGA1 を表示 ==== |
||
203行目: | 203行目: | ||
$ xrandr --output VGA1 --auto --output HDMI1 --auto --right-of VGA1 |
$ xrandr --output VGA1 --auto --output HDMI1 --auto --right-of VGA1 |
||
− | {{ic|--right-of}} |
+ | {{ic|--right-of}} はスクリーン ({{ic|HDMI1}}) を指定したスクリーン ({{ic|VGA1}}) の右に配置します。 |
==== HDMI1 の右側に指定した解像度で VGA1 を表示 ==== |
==== HDMI1 の右側に指定した解像度で VGA1 を表示 ==== |
||
213行目: | 213行目: | ||
$ xrandr --output VGA1 --mode 1024x768 --output HDMI1 --mode 1920x1080 --left-of VGA1 |
$ xrandr --output VGA1 --mode 1024x768 --output HDMI1 --mode 1920x1080 --left-of VGA1 |
||
− | {{ic|--left-of}} |
+ | {{ic|--left-of}} はスクリーン ({{ic|HDMI1}}) を指定したスクリーン ({{ic|VGA1}}) の左に配置します。 |
=== xorg.conf を使って設定 === |
=== xorg.conf を使って設定 === |
||
− | + | ''xrandr'' を使用する方法と似ており、各スクリーンごとに {{ic|Monitor}} セクションを記述します。{{ic|Identifier}} には、{{ic|xrandr -q}} によって確認できる値と同じ値を使用します ({{ic|--output VGA1}} ではなく {{ic|Identifier "VGA1"}} を用います)。 |
|
==== 例: 相対座標を用いるデュアルヘッド設定 ==== |
==== 例: 相対座標を用いるデュアルヘッド設定 ==== |
||
249行目: | 249行目: | ||
}} |
}} |
||
+ | 負の座標はありません。一番左上の座標は 0,0 になります。 |
||
− | There are no negative coordinates, the setup's leftmost and highest possibly targeted point is at 0,0 |
||
{{bc|<nowiki> |
{{bc|<nowiki> |
||
264行目: | 264行目: | ||
このセクションでは個別のアプリケーションに関してのヒントを記述しています。 |
このセクションでは個別のアプリケーションに関してのヒントを記述しています。 |
||
− | * mplayer: |
+ | * mplayer: {{ic|-xineramascreen 1}} を使えば動画をセカンドスクリーンで再生できます。{{ic|~/.mplayer/config}} に {{ic|1=xineramascreen=1}} を追加することで永続的に設定できます。 |
* Xonotic: if you are playing across multiple screens and you are unable to turn left/right properly, set {{ic|vid_stick_mouse}} to 1 in {{ic|~/.xonotic/data/config.cfg}} |
* Xonotic: if you are playing across multiple screens and you are unable to turn left/right properly, set {{ic|vid_stick_mouse}} to 1 in {{ic|~/.xonotic/data/config.cfg}} |
||
=== ウィンドウマネージャ === |
=== ウィンドウマネージャ === |
||
+ | このセクションではウィンドウマネージャのマルチモニター対応状況を載せています。 |
||
− | This section lists window managers and how they cope with multiple monitors. |
||
− | * [[Awesome]] - |
+ | * [[Awesome]] - 動作します。 |
− | * [[FVWM]] - |
+ | * [[FVWM]] - 動作します。Xinerama をサポートしており、Single Logical Screen のようなマルチスクリーンディスプレイが使えます。 |
− | * [[ |
+ | * [[i3]] - 動作します。 |
− | * [[ |
+ | * [[KDE]] - 動作します。 |
− | * [[ |
+ | * [[MATE]] - 動作します。 |
+ | * [[Spectrwm]] - Works (screens are different workspaces, both accessible and switching is possible by both keyboard and mouse) - as of March 2015 |
||
* [[Xmonad]] - Works (screens are different workspaces, both accessible and switching is possible by both keyboard and mouse) - as of April 2014 |
* [[Xmonad]] - Works (screens are different workspaces, both accessible and switching is possible by both keyboard and mouse) - as of April 2014 |
||
281行目: | 282行目: | ||
* [[GDM]]: gdm is not configured by gnome display settings, resulting in the login screen not being displayed on the primary monitor. A workaround is explained [https://bbs.archlinux.org/viewtopic.php?pid=1262282#p1262282 here]. It just consists in copying the user monitor configuration file to gdm's. |
* [[GDM]]: gdm is not configured by gnome display settings, resulting in the login screen not being displayed on the primary monitor. A workaround is explained [https://bbs.archlinux.org/viewtopic.php?pid=1262282#p1262282 here]. It just consists in copying the user monitor configuration file to gdm's. |
||
− | * [[KDM]]: |
+ | * [[KDM]]: 動作します。 |
Users may prefer to use {{ic|startx}} and {{ic|~/.xinitrc}} instead of a display manager due to the lack of working support with multiple displays. |
Users may prefer to use {{ic|startx}} and {{ic|~/.xinitrc}} instead of a display manager due to the lack of working support with multiple displays. |
||
305行目: | 306行目: | ||
{{Tip|While it's easiest to just reuse the existing screen definitions, you can of course define new ones if you wish to have a different set of screen resolutions available.}} |
{{Tip|While it's easiest to just reuse the existing screen definitions, you can of course define new ones if you wish to have a different set of screen resolutions available.}} |
||
+ | この新しいレイアウトを使用するには、{{ic|startx}} スクリプトを使ってゲームを起動します: |
||
− | To use this new layout, launch the game via the {{ic|startx}} script: |
||
# Launch Xonotic on a new X11 display using the "Gaming" layout |
# Launch Xonotic on a new X11 display using the "Gaming" layout |
2015年3月24日 (火) 19:56時点における版
関連記事
マルチヘッド, マルチスクリーン, マルチディスプレイ, マルチモニターは複数のディスプレイデバイスをコンピューターに接続して使用することを言います。この記事ではマルチディスプレイを設定する方法の説明や、設定例を示します。
目次
歴史的背景
全てとはいわなくてもほとんどの Unix/Linux コンピュータでは GUI を提供するために X Window System を基盤のグラフィカルインターフェイスとして使っています。X は1984年に MIT で開発されました。開発は35年間も続いており、その間に新しい機能や概念が追加され、ちょっとした化物と言われるようにまでなっています。長い開発の歴史の中で、タイムシェアリングシステムによって Xterminal に個別のビューを提供する単一の X というのが最も一般的な設定だったということを覚えておきましょう。近年になって、デスクトップやノートパソコンに単一のスクリーンを提供する X が標準となったのです。
All of this means that there are many ways of achieving the same thing and many slightly different things that can meet the same purpose. In modern X versions sometimes you can get away with limited or no configuration. In the last few years the beast is that X is self configuring. Certainly the best practice rule of thumb is less configuration is better - that is only configure what is wrong.
画面の分割
This is the original way of configuring multiple monitors with X, and it has been around for decades. Each physical monitor is assigned as an X screen, and while you can move the mouse between them, they are more or less independent.
Normally the X display has a single identifier such as :0
set in the DISPLAY
environment variable, but in this configuration each screen has a different $DISPLAY
value. The first screen is :0.0
, the second is :0.1
and so on.
With this configuration it is not possible to move windows between screens, apart from a few special programs like GIMP and Emacs which have multi-screen support. For most programs you must change the DISPLAY
environment variable when launching to have the program appear on another screen:
# Launch a terminal on the second screen $ DISPLAY=:0.1 urxvt &
Alternatively if you have a terminal on each screen launching programs will inherit the DISPLAY
value and appear on the same screen they were launched on. But moving an application between screens involves closing it and reopening it again on the other screen.
Working this way does have certain advantages, such as windows popping up on one screen won't steal the focus away from you if you are working on another screen - each screen is quite independent.
Xinerama
Xinerama は X のマルチスクリーンを実現する古い手段です。Xinerama は全てのモニターを単一のスクリーン (:0
) にまとめるため、スクリーンを通り越してウィンドウをドラッグすることができます。
Xinerama は X の設定ファイルをカスタマイズすることで設定します。以下に例を挙げます:
This is a ServerLayout section which controls where each monitor sits relative to the others.
/etc/X11/xorg.conf.d/90-serverlayout.conf
Section "ServerLayout" Identifier "Main" Screen 0 "Primary" Screen 1 "DellPortraitLeft" RightOf "Primary" Screen 2 "Wacom" RightOf "DellPortraitLeft" Screen 3 "U2412" LeftOf "Primary" Option "Xinerama" "1" # enable XINERAMA extension. Default is disabled. EndSection
Each Screen in the above section is defined in a separate file, such as this one:
/etc/X11/xorg.conf.d/30-screen-dell2001.conf
# Define the monitor's physical specs Section "Monitor" Identifier "Dell 2001FP" VertRefresh 60 Option "dpms" "on" # Modelines are probably unnecessary these days, but it does give you fine grained control # 1600x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 160.96 MHz Modeline "1600x1200" 160.96 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +Vsync EndSection # Define a screen that uses the above monitor. Note the Monitor value matches the above # Identifier value, and the Device value matches one of the video cards defined below # (the card and connector this monitor is actually plugged in to.) Section "Screen" Identifier "DellPortraitLeft" Device "GeForce 8600GTb" Monitor "Dell 2001FP" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1600x1200" ViewPort 0 0 Virtual 1600 1200 EndSubsection # This screen is in portrait mode Option "Rotate" "left" EndSection
You will need to create a Device
section for each monitor, i.e. a dual head video card will have two Device sections. The following example shows how to configure two video cards each providing two outputs, for a total of four monitors.
/etc/X11/xorg.conf.d/20-nvidia.conf
# First head of first video card in the system Section "Device" Identifier "GeForce 8600GT" Driver "nvidia" # If you have multiple video cards, the BusID controls which one this definition refers # to. You can omit it if you only have one card. BusID "PCI:1:0:0" # Need to flag this as only referring to one output on the card Screen 0 # For nVidia devices, this controls which connector the monitor is connected to. Option "UseDisplayDevice" "DFP-0" # We want control! Option "DynamicTwinView" "FALSE" # Various performance and configuration options Option "AddARGBGLXVisuals" "true" Option "UseEDIDDpi" "false" Option "DPI" "96 x 96" Option "Coolbits" "1" EndSection # Second head of same video card (note different Identifier but same BusID.) We can omit # the UseDisplayDevice option this time as it will pick whichever one is remaining. Section "Device" Identifier "GeForce 8600GTb" Driver "nvidia" BusID "PCI:1:0:0" # This is the second output on this card Screen 1 # Same config options for all cards Option "AddARGBGLXVisuals" "true" Option "UseEDIDDpi" "false" Option "DPI" "96 x 96" Option "Coolbits" "1" Option "DynamicTwinView" "FALSE" EndSection # First head of second video card, note different BusID. Section "Device" Identifier "G210" Driver "nvidia" BusID "PCI:2:0:0" Screen 0 # Same config options for all cards Option "AddARGBGLXVisuals" "true" Option "UseEDIDDpi" "false" Option "DPI" "96 x 96" Option "Coolbits" "1" Option "DynamicTwinView" "FALSE" EndSection # Second head of second video card. Output connector is set here, which means the previous # Device will use the other connector, whatever it may be. Section "Device" Identifier "G210b" Driver "nvidia" BusID "PCI:2:0:0" Screen 1 Option "UseDisplayDevice" "DFP-1" # Same config options for all cards Option "AddARGBGLXVisuals" "true" Option "UseEDIDDpi" "false" Option "DPI" "96 x 96" Option "Coolbits" "1" Option "DynamicTwinView" "FALSE" EndSection
TwinView
TwinView is nVidia's extension which makes two monitors attached to a video card appear as a single screen. TwinView provides Xinerama extensions so that applications are aware there are two monitors connected, and thus it is incompatible with Xinerama. However if you only have two monitors and they are both connected to the same nVidia card, there is little difference between TwinView and Xinerama (although in this situation TwinView may offer slightly better performance.)
If you wish to attach more than two monitors or monitors attached to other video cards, you will need to use Xinerama instead of TwinView. Likewise as of April 2012, both monitors must be in the same orientation - you cannot have one in landscape and the other in portrait mode.
In the past, TwinView was the only way to get OpenGL acceleration with nVidia cards while being able to drag windows between screens. However modern versions of the nVidia closed-source driver are able to provide OpenGL acceleration even when using Xinerama.
設定例は NVIDIA#TwinView を見て下さい。
RandR
RandR (Rotate and Resize) はクライアントが動的にスクリーンを変更 (例: リサイズ、回転、反転) できるようにする、X Window System の拡張です。ほとんどの場合、RandR は旧 Xinerama のセットアップを完全に置き換えることができます。RandR が Xinerama よりも優れている理由については この説明 を見て下さい。
RandR は xrandr ツールを使って現在のセッションに限って設定を行ったり、xorg.conf ファイルで永続的に設定することができます。
xrandr を使って設定
相対的にスクリーンを配列したり (--right-of
, --left-of
, --above
, --below
オプションを使用)、絶対座標を使って配置することができます (--pos
オプションを使用。絶対座標を使う場合はモニターの解像度を知る必要があります)。詳しくは man xrandr
を見て下さい。よく使われる設定については以下で説明します。
HDMI1 の左側に適切な解像度で VGA1 を表示
$ xrandr --output VGA1 --auto --output HDMI1 --auto --right-of VGA1
--right-of
はスクリーン (HDMI1
) を指定したスクリーン (VGA1
) の右に配置します。
HDMI1 の右側に指定した解像度で VGA1 を表示
$ xrandr --output VGA1 --mode 1024x768 --pos 1920x0 --output HDMI1 --mode 1920x1080 --pos 0x0
または
$ xrandr --output VGA1 --mode 1024x768 --output HDMI1 --mode 1920x1080 --left-of VGA1
--left-of
はスクリーン (HDMI1
) を指定したスクリーン (VGA1
) の左に配置します。
xorg.conf を使って設定
xrandr を使用する方法と似ており、各スクリーンごとに Monitor
セクションを記述します。Identifier
には、xrandr -q
によって確認できる値と同じ値を使用します (--output VGA1
ではなく Identifier "VGA1"
を用います)。
例: 相対座標を用いるデュアルヘッド設定
/etc/X11/xorg.conf
Section "Monitor" Identifier "VGA1" Option "Primary" "true" EndSection Section "Monitor" Identifier "HDMI1" Option "LeftOf" "VGA1" EndSection
例: 絶対座標を用いるデュアルヘッド設定
/etc/X11/xorg.conf
Section "Monitor" Identifier "VGA1" Option "PreferredMode" "1024x768" Option "Position" "1920 312" EndSection Section "Monitor" Identifier "HDMI1" Option "PreferredMode" "1920x1080" Option "Position" "0 0" EndSection
負の座標はありません。一番左上の座標は 0,0 になります。
(0,0)-----------------+ | |(1920,312)---+ | 1920 x 1080 || | | HDMI1 || 1024 x 768 | | || VGA1 | +---------------------++------------+
アプリケーションのサポート
このセクションでは個別のアプリケーションに関してのヒントを記述しています。
- mplayer:
-xineramascreen 1
を使えば動画をセカンドスクリーンで再生できます。~/.mplayer/config
にxineramascreen=1
を追加することで永続的に設定できます。 - Xonotic: if you are playing across multiple screens and you are unable to turn left/right properly, set
vid_stick_mouse
to 1 in~/.xonotic/data/config.cfg
ウィンドウマネージャ
このセクションではウィンドウマネージャのマルチモニター対応状況を載せています。
- Awesome - 動作します。
- FVWM - 動作します。Xinerama をサポートしており、Single Logical Screen のようなマルチスクリーンディスプレイが使えます。
- i3 - 動作します。
- KDE - 動作します。
- MATE - 動作します。
- Spectrwm - Works (screens are different workspaces, both accessible and switching is possible by both keyboard and mouse) - as of March 2015
- Xmonad - Works (screens are different workspaces, both accessible and switching is possible by both keyboard and mouse) - as of April 2014
ディスプレイマネージャ
- GDM: gdm is not configured by gnome display settings, resulting in the login screen not being displayed on the primary monitor. A workaround is explained here. It just consists in copying the user monitor configuration file to gdm's.
- KDM: 動作します。
Users may prefer to use startx
and ~/.xinitrc
instead of a display manager due to the lack of working support with multiple displays.
フルスクリーンゲーム
Many games require their window to appear at (0,0) when running in full-screen. If the screen you have at (0,0) - the left-most one - is not one you wish to game on, it is almost impossible to move a full-screen game onto a different screen.
A workaround for this is to create a separate X11 configuration (a new layout) just for playing games, which may have less (or only one) screen configured. You can then launch games using this separate layout, while normal desktop work uses the original multihead configuration.
To create a new layout, copy /etc/X11/xorg.d/90-serverlayout.conf
and call it 91-serverlayout-gaming.conf
. It is important to use a number larger than 90, as the one with the lowest number will become the default used when you first load X.
Adjust this new configuration file to your preferred gaming configuration. Here is an example (based on the example Xinerama configuration above) with only one screen defined, noting that the screen specifics (such as resolution) are defined in other files and are unchanged from and shared with the normal configuration:
/etc/X11/xorg.conf.d/91-serverlayout-gaming.conf
# New screen layout only using a single screen called "Primary" Section "ServerLayout" Identifier "Gaming" Screen 0 "Primary" Absolute 0 0 EndSection
この新しいレイアウトを使用するには、startx
スクリプトを使ってゲームを起動します:
# Launch Xonotic on a new X11 display using the "Gaming" layout startx /usr/bin/xonotic-glx -fullscreen -- :1 -layout Gaming
Note that:
- You must specify the full path to the command to run, here
/usr/bin/xonotic-glx
. - The
:1
must refer to an empty unused display. The first display you are likely using for your desktop is:0
, so:1
will be fine for most people. But should you want to launch a second game at the same time, you would have to change this to:2
. - Just as you can switch between text consoles with Alt+Ctrl+F1 and back to X with Alt+Ctrl+F7, the new display will sit on Alt+Ctrl+F8. So you can switch back to your desktop with Alt+Ctrl+F7 and back to the game with Alt+Ctrl+F8. This is because you are running an independent X desktop, so if you switch out of the game with Alt+Tab or equivalent there will be an empty desktop with no window manager running.