Difference between revisions of "Xorg (日本語)"

From ArchWiki
Jump to: navigation, search
m (トラブルシューティング)
m
Line 164: Line 164:
 
{{Note|この方法を使ってキーボードレイアウトを変更するにはホットプラグを無効にする必要があります。}}
 
{{Note|この方法を使ってキーボードレイアウトを変更するにはホットプラグを無効にする必要があります。}}
  
To change the keyboard layout, use the XkbLayout option in the keyboard InputDevice section. For example, if you have a keyboard with the English (Great Britain) layout, your keyboard InputDevice section might look similar to this:
+
キーボードレイアウトを変えるには、キーボードの InputDevice セクションで XkbLayout オプションを使って下さい。例えば、あなたが英語(グレートブリテン)レイアウトのキーボードを持っている場合、あなたのキーボード InputDevice セクションを以下のようにします:
  
 
  Section "InputDevice"
 
  Section "InputDevice"
Line 172: Line 172:
 
  EndSection
 
  EndSection
  
To change the keyboard model, use the XkbModel option in the keyboard InputDevice section. For example, if you have a Microsoft Wireless Multimedia Keyboard:
+
キーボードモデルを変更するには、キーボードの InputDevice セクションで XkbModel オプションを使って下さい。例えば、あなたのキーボードが Microsoft Wireless Multimedia Keyboard の場合:
  
 
  Option "XkbModel" "microsoftmult"
 
  Option "XkbModel" "microsoftmult"
  
 
====キーボードレイアウトの切り替え====
 
====キーボードレイアウトの切り替え====
To be able to easily switch keyboard layouts, modify the Options used in either of the above two methods. For example, to switch between a US and a Swedish layout using the {{Keypress|Caps Lock}} key, create a file {{ic|/etc/X11/xorg.conf.d/01-keyboard-layout.conf}} with the following content:
+
簡単にキーボードレイアウトを切り替えられるようにするには、上記の2つのメソッドにあるそれぞれの Option を修正してください。例えば、英語とスウェーデン語のレイアウトを {{Keypress|Caps Lock}} キーを使って切り替えるようにするには、以下の内容で {{ic|/etc/X11/xorg.conf.d/01-keyboard-layout.conf}} ファイルを作成します:
 
  Section "InputClass"
 
  Section "InputClass"
 
         Identifier            "keyboard-layout"
 
         Identifier            "keyboard-layout"
Line 185: Line 185:
 
  EndSection
 
  EndSection
  
As an alternative, you can add the following to your {{ic|.xinitrc}}:
+
または、次の行を {{ic|.xinitrc}} に加えることでも可能です:
  
 
  setxkbmap -layout "us, se" -option "grp:caps_toggle"
 
  setxkbmap -layout "us, se" -option "grp:caps_toggle"
  
This is mainly useful if you run a Desktop Environment which does not take care of keyboard layouts for you.
+
主としてあなたが動作させているデスクトップ環境がキーボードレイアウトの世話を見ないときに便利になるでしょう。
  
{{Tip|If you want to get a list of possible values for the layout and options, you can find them in {{ic|/usr/share/X11/xkb/rules/xorg.lst}}. They are under sections {{ic|! layout}} and {{ic|! option}} respectively. These values work for both the configuration file solution, and the command line alternative.}}
+
{{Tip|レイアウトやオプションに設定できる値のリストを見るには、{{ic|/usr/share/X11/xkb/rules/xorg.lst}} の中を探して下さい。それぞれ {{ic|! layout}} {{ic|! option}} のセクションの下にあります。設定ファイルでもコマンドラインでも同じ値を使うことができます。}}
  
 
====マウスキーを有効にする====
 
====マウスキーを有効にする====
Line 419: Line 419:
 
この場合バス ID は 1:0:0。
 
この場合バス ID は 1:0:0。
  
=====Script to toggle internal/external display for laptops=====
+
=====ラップトップでディスプレイの表示を切り替えるスクリプト=====
 
Run the following script after connecting to external displays with your computer to change the display used by Xorg. It checks if a display is connected to the port specified in {{ic|EXT}} before changing displays.
 
Run the following script after connecting to external displays with your computer to change the display used by Xorg. It checks if a display is connected to the port specified in {{ic|EXT}} before changing displays.
  
Line 552: Line 552:
  
 
==Tips and tricks==
 
==Tips and tricks==
===X startup ({{ic|/usr/bin/startx}}) tweaking===
+
===X スタートアップ ({{ic|/usr/bin/startx}}) 調整===
For X's option reference see:
+
X のオプションを見るには:
 
  $ man Xserver
 
  $ man Xserver
  
Line 566: Line 566:
 
}}
 
}}
  
===Nested X session===
+
===ネストした X セッション===
To run a nested session of another desktop environment:
+
他のデスクトップ環境に入れ子になったセッションを起動するには:
 
  $ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
 
  $ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
  
This will launch a Window Maker session in a 1024 by 768 window within your current X session.
+
上記で現在の X セッションの中に 1024x768 のウィンドウの Window Maker セッションが起動します。
  
This needs the package {{Pkg|xorg-server-xnest}} to be installed.
+
このためには {{Pkg|xorg-server-xnest}} パッケージをインストールする必要があります。
  
 
===リモートで GUI プログラムを実行する===
 
===リモートで GUI プログラムを実行する===
Line 583: Line 583:
 
Hint: Add that line to ~/.bashrc to have it happen automatically every time you log in.
 
Hint: Add that line to ~/.bashrc to have it happen automatically every time you log in.
  
===On-Demand Disabling and Enabling of Input Sources===
+
===必要に応じて入力ソースを有効化・無効化===
 
With the help of {{ic|xinput}} you can temporarily disable or enable input sources. This might be useful, for example, on systems that have more than one mouse, such as the ThinkPads and you would rather use just one to avoid unwanted mouse clicks. Let's see how to accomplish this.
 
With the help of {{ic|xinput}} you can temporarily disable or enable input sources. This might be useful, for example, on systems that have more than one mouse, such as the ThinkPads and you would rather use just one to avoid unwanted mouse clicks. Let's see how to accomplish this.
  

Revision as of 10:15, 2 February 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Xorg は X window system version 11 の公然なオープンソース実装です。Linux ユーザーの中で Xorg が一番ポピュラーな選択となってから、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の XorgXorg のウェブサイト を見て下さい。

Contents

インストール

X サーバーをインストールするには、まず公式リポジトリxorg-server パッケージをインストールする必要があります。また、便利なユーティリティを xorg-apps グループからインストールすることもできます。

Udev があなたのハードウェアを検知し、evdev がほとんど全てのデバイスのホットプラグ・インプットドライバとして動作します。Udevsystemd によって提供され、xf86-input-evdevxorg-server から必要とされます。従ってこれらのパッケージを別個にインストールする必要はありません。

Tip: デフォルトの X 環境はほとんど裸の状態です。基本的に、X を使うにあたってウィンドウマネージャデスクトップ環境をインストールすることになるでしょう。

起動

参照: Start X at Login (日本語)

Tip: X を起動する一番簡単な方法は GDM, KDM, SLiM (日本語) などのディスプレイマネージャを使うことです。

ディスプレイマネージャを使わずに X を起動したいなら、xorg-xinit パッケージをインストールしてください。任意で、下で述べているデフォルト環境のために xorg-twm, xorg-xclock, xterm もインストールできます。

startxxinit コマンドで X サーバーとクライアントを起動します (startx スクリプトは単に xinit コマンドのフロントエンドにすぎません)。起動するクライアントを決めるために、まず startx/xinit はユーザーの home ディレクトリにある ~/.xinitrc ファイルをパースします。~/.xinitrc がない場合、代わりにユーザー共通の /etc/X11/xinit/xinitrc ファイルが使われます。このファイルにはデフォルトで Twm ウィンドウマネージャ、XclockXterm のベーシックな環境を起動します。

Note: logind セッションを維持するために、X はログインしたのと同じ tty で実行させる必要があります。これはデフォルトの /etc/X11/xinit/xserverrc で管理されています。
Warning: startx の代わりに xinit を使う場合は、-nolisten tcp を渡して、異なる tty で X を起動することでセッションが破壊されることがないようにしてください。

詳しくは xinitrc (日本語) を見て下さい。

Note:
  • 問題が発生したら、/var/log/Xorg.0.log のログを見て下さい。(EE) (エラーを意味する) や (WW) (警告などを示す) で始まっている行をチェックする必要があります。
  • あなたの $HOME空の .xinitrc ファイルがある場合、X を正しく起動するためにそれを削除するか編集してください。それをしないと X は Xorg.0.log に何のエラーも残さずに黒画面を表示します。削除したときはデフォルトの X 環境が起動するようになります。

設定

Note: Arch はデフォルトの設定ファイルを /etc/X11/xorg.conf.d に提供しており、ほとんどの場合、追加の設定は必要ありません。

複数のファイルを使う

/etc/X11/xorg.conf.d/ ディレクトリにはユーザー定義の設定を保存します。あなたは自由に設定ファイルを /etc/X11/xorg.conf.d/ に追加することができますが、ファイル名には XX- (XX は数字です) を先頭につけ拡張子は .conf である必要があります (例えば 10 は 20 より早く読み込まれます)。これらのファイルは X サーバーの起動時にパースされ従来の xorg.conf 設定ファイルの一部として扱われます。基本的に X サーバーは設定ファイルの集合を xorg.conf の最後のエントリとしてひとつの大きなファイルとして扱います。

ひとつのファイルを使う

/etc/X11/xorg.conf/etc/xorg.conf で Xorg を設定することもできます。xorg.conf のスケルトンを生成するには

 # Xorg :0 -configure

上のコマンドで /root/xorg.conf.new ファイルが作られるはずです。あなたはこれを /etc/X11/xorg.conf にコピーすることができます。詳しくは man xorg.conf を見て下さい。

もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。NVIDIA の場合、nvidia-xconfig を試して下さい。ATI のプロプライエタリドライバの場合、aticonfig を試して下さい。

Note: 設定ファイルは大文字・小文字を区別しません、また “_” は無視されます。(Option など) 設定ファイル内のほとんどの文字列も大文字・小文字・空白・“_” を区別しません。

入力デバイス

ハードウェアのほとんどはインプットドライバのインストールを必要としません。とは言え、evdev があなたのデバイスをサポートしていない場合は、xorg-drivers グループから必要なドライバをインストールしてください (pacman -Sg xorg-drivers で一覧できます)。

/etc/X11/xorg.conf.d ディレクトリには 10-evdev.conf が必要です。これはキーボード・マウス・タッチパッド・タッチスクリーンを管理します。

Touchpad Synaptics

Main page: Touchpad Synaptics

ラップトップを使っている場合、公式リポジトリxf86-input-synaptics パッケージによって提供されるタッチパッドドライバをインストールする必要があります。

インストールすると、/etc/X11/xorg.conf.d ディレクトリに 10-synaptics.conf が作られます。10-evdev.conf のタッチパッドに関する InputClass 行をコメントアウト・削除しても問題ありません。

ホットプラグの無効化

バージョン 1.8 から Xorg-server はデバイスの検知に udev を使っています。以下によって udev の使用を無効にできます。

Section "ServerFlags"
    Option          "AutoAddDevices" "False"
EndSection
Warning: これは全ての入力デバイスのホットプラグを無効にし xorg-server 1.4 と同じ挙動に戻ります。udev であなたのデバイスを設定したほうが便利です。従って、ホットプラグの無効化は推奨されません。

キーボード設定

Xorg はあなたのキーボードの検出を失敗するかもしれません。このときキーボードレイアウトやキーボードモデルが正しくセットされない問題が起こる可能性があります。

キーボードモデル、レイアウト、変数とオプションの一覧を見るには、/usr/share/X11/xkb/rules/xorg.lst を開いて下さい。

現在の Xorg セッションにキーマップをセットするには:

# setxkbmap dvorak

キーのリピート速度と遅延時間

xset r rate DELAY RATE を使って下さい、xinitrc (日本語) を使えば設定を永続的にできます。

キーボード設定の表示

$ setxkbmap -print -verbose 10

 Setting verbose level to 10
 locale is C
 Applied rules from evdev:
 model:      evdev
 layout:     us
 options:    terminate:ctrl_alt_bksp
 Trying to build keymap using the following components:
 keycodes:   evdev+aliases(qwerty)
 types:      complete
 compat:     complete
 symbols:    pc+us+inet(evdev)+terminate(ctrl_alt_bksp)
 geometry:   pc(pc104)
 xkb_keymap {
         xkb_keycodes  { include "evdev+aliases(qwerty)" };
         xkb_types     { include "complete"      };
         xkb_compat    { include "complete"      };
         xkb_symbols   { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)"    };
         xkb_geometry  { include "pc(pc104)"     };
 };

キーボードレイアウトの設定(ホットプラグ)

Note: GNOME を使っている場合、以下の設定は無視されます。GNOME のキーボードアプレットからキーボードレイアウトを設定する必要があります。XkbOptions については、GNOME#Modify_Keyboard_with_XkbOptions を見て下さい。

キーボードレイアウトを変えるには、以下の内容で number-*.conf ファイル (例: 10-keyboard.conf) を作成してください:

/etc/X11/xorg.conf.d/10-keyboard.conf
Section "InputClass"
    Identifier             "Keyboard Defaults"
    MatchIsKeyboard	   "yes"
    Option	           "XkbLayout" "us"
    Option                 "XkbVariant" "colemak"
EndSection

または、XkbLayoutXkbVariant をまとめることもできます:

/etc/X11/xorg.conf.d/10-keyboard.conf
Section "InputClass"
    Identifier             "Keyboard Defaults"
    MatchIsKeyboard	   "yes"
    Option	           "XkbLayout" "us(colemak)"
EndSection

キーボードレイアウトの設定(ホットプラグなし・非推奨)

Note: この方法を使ってキーボードレイアウトを変更するにはホットプラグを無効にする必要があります。

キーボードレイアウトを変えるには、キーボードの InputDevice セクションで XkbLayout オプションを使って下さい。例えば、あなたが英語(グレートブリテン)レイアウトのキーボードを持っている場合、あなたのキーボード InputDevice セクションを以下のようにします:

Section "InputDevice"
    Identifier             "Keyboard0"
    Driver                 "kbd"
    Option                 "XkbLayout" "gb"
EndSection

キーボードモデルを変更するには、キーボードの InputDevice セクションで XkbModel オプションを使って下さい。例えば、あなたのキーボードが Microsoft Wireless Multimedia Keyboard の場合:

Option "XkbModel" "microsoftmult"

キーボードレイアウトの切り替え

簡単にキーボードレイアウトを切り替えられるようにするには、上記の2つのメソッドにあるそれぞれの Option を修正してください。例えば、英語とスウェーデン語のレイアウトを Template:Keypress キーを使って切り替えるようにするには、以下の内容で /etc/X11/xorg.conf.d/01-keyboard-layout.conf ファイルを作成します:

Section "InputClass"
        Identifier             "keyboard-layout"
        MatchIsKeyboard        "on"
        Option "XkbLayout"     "us, se"
        Option "XkbOptions"    "grp:caps_toggle"
EndSection

または、次の行を .xinitrc に加えることでも可能です:

setxkbmap -layout "us, se" -option "grp:caps_toggle"

主としてあなたが動作させているデスクトップ環境がキーボードレイアウトの世話を見ないときに便利になるでしょう。

Tip: レイアウトやオプションに設定できる値のリストを見るには、/usr/share/X11/xkb/rules/xorg.lst の中を探して下さい。それぞれ ! layout! option のセクションの下にあります。設定ファイルでもコマンドラインでも同じ値を使うことができます。

マウスキーを有効にする

現在マウスキーはデフォルトで無効にされているので手動で有効にする必要があります:

/etc/X11/xorg.conf.d/20-enable-pointerkeys.conf
Section "InputClass"
    Identifier             "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option                 "XkbOptions" "keypad:pointerkeys"
EndSection

次を実行することでも可能です:

$ setxkbmap -option keypad:pointerkeys

どちらでも Template:Keypress ショートカットがマウスキーに使われるようになります。

InputClass

参照: https://fedoraproject.org/wiki/Input_device_configuration

InputClasses are a new type of configuration section that does not apply to a single device but rather to a class of devices, including hotplugged devices. An InputClass section's scope is limited by the matches specified – to apply to an input device, all matches must apply to a device. An example InputClass section is provided below:

Section "InputClass"
    Identifier             "touchpad catchall"
    MatchIsTouchpad        "on"
    Driver                 "synaptics"
EndSection

The next snippet might also be helpful:

Section "InputClass"
        Identifier             "evdev touchpad catchall"
        MatchIsTouchpad        "on"
        MatchDevicePath        "/dev/input/event*"
        Driver                 "evdev"
EndSection

If this snippet is present in the xorg.conf or xorg.conf.d, any touchpad present in the system is assigned the synaptics driver. Note that due to precedence order (alphanumeric sorting of xorg.conf.d snippets) the Driver setting overwrites previously set driver options – the more generic the class, the earlier it should be listed. The default snippet shipped with the xorg-x11-drv-Xorg package is 00-evdev.conf and applies the evdev driver to all input devices.

The match options specify which devices a section may apply to. To match a device, all match lines must apply. The following match lines are supported (with examples):

  • MatchIsPointer, MatchIsKeyboard, MatchIsTouchpad, MatchIsTouchscreen, MatchIsJoystick – boolean options to apply to a group of devices.
  • MatchProduct "foo|bar": match any device with a product name containing either "foo" or "bar"
  • MatchVendor "foo|bar|baz": match any device with a vendor string containing either "foo", "bar", or "baz"
  • MatchDevicePath "/dev/input/event*": match any device with a device path matching the given patch (see fnmatch(3) for the allowed pattern)
  • MatchTag "foo|bar": match any device with a tag of either "foo" or "bar". Tags may be assigned by the config backend – udev in our case – to label devices that need quirks or special configuration.

An example section for user-specific configuration is:

Section "InputClass"
    Identifier             "lasermouse slowdown"
    MatchIsPointer         "on"
    MatchProduct           "Lasermouse"
    MatchVendor            "LaserMouse Inc."
    Option                 "ConstantDeceleration" 20
EndSection

This section would match a pointer device containing "Lasermouse" from "Lasermouse Inc." and apply a constant deceleration of 20 on this device – slowing it down by factor 20.

Some devices may get picked up by the X server when they really should not be. These devices can be configured to be ignored:

Section "InputClass"
    Identifier            "no need for accelerometers in X"
    MatchProduct          "accelerometer"
    Option                "Ignore" "on"
EndSection

設定例

The following subsections describe example configurations for commonly used configuration options. Note that if you use a desktop environment such as GNOME or KDE, options you set in the xorg.conf may get overwritten with user-specific options upon login.

例: (トラックポイント用の) ホイールエミュレーション

If you own a computer with a Trackpoint (a Thinkpad, for example) you can add the following to the xorg.conf to use the middle button to emulate a mouse wheel:

Section "InputClass"
    Identifier            "Wheel Emulation"
    MatchIsPointer        "on"
    MatchProduct          "TrackPoint"
    Option                "EmulateWheelButton" "2"
    Option                "EmulateWheel" "on"
EndSection

For full support of TrackPoints (including horizontal scrolling) you can use the following:

Section "InputClass"
    Identifier            "Trackpoint Wheel Emulation"
    MatchProduct	  "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device"
    MatchDevicePath	  "/dev/input/event*"
    Option		  "EmulateWheel"		"true"
    Option		  "EmulateWheelButton"	        "2"
    Option		  "Emulate3Buttons"	        "false"
    Option		  "XAxisMapping"		"6 7"
    Option		  "YAxisMapping"		"4 5"
EndSection
例: Tap-to-click

Tap-to-click can be enabled in the mouse configuration dialog (in the touchpad tab) but if you need tapping enabled at gdm already, the following snippet does it for you:

Section "InputClass"
    Identifier            "tap-by-default"
    MatchIsTouchpad       "on"
    Option                "TapButton1" "1"
EndSection
例: Acer 5920G ラップトップのキーボードレイアウト・モデル

Keyboard model and layout may be set in the file /etc/X11/xorg.conf.d/keyboard.conf or any other .conf file in the same directory.

  • MatchIsKeyboard "yes": set the input device to a keyboard
  • Option "XkbModel" "acer_laptop": set the keyboard model to an Acer * Option "XkbLayout" "be": set the keyboard layout to belgian. You may replace be with whatever layout you have.
  • Option "XkbVariant" "sundeadkeys": set the layout variant to Sun dead keys. You may omit the XkbVariant option if you stick with the default variant.

laptop keyboard. You may replace acer_laptop with your actual keyboard layout.

Note that a list of keyboard layouts and models can be found in /usr/share/X11/xkb/rules/base.lst

Section "InputClass"
    Identifier             "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option                 "XkbModel" "acer_laptop"
    Option                 "XkbLayout" "be"
    Option                 "XkbVariant" "sundeadkeys"
EndSection
例: (3ボタンマウス用の) 中ボタンのエミュレーション

Third button emulation allows you to use the 1 and 2 buttons (left and right click) together to produce a button 3 event (middle-click), which is really useful for copy and paste in X.

We will modify the mouse input catchall in /etc/X11/xorg.conf.d/10-evdev.conf

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "Emulate3Buttons"     "True"
        Option "Emulate3Timeout"     "25"
EndSection

Here you see the Option "Emulate3Buttons" "True" and Option "Emulate3Timeout" "25" options that specify that 3 buttons should be emulated and the delay to recognize both buttons down as a middle click is 25ms.

グラフィック

ドライバのインストール

デフォルトのグラフィックドライバは vesa (xf86-video-vesa) で、多くのチップセットをサポートしていますが 2D 又は 3D アクセラレーションは含まれていません。グラフィックアクセラレーションを有効にするには、あなたのグラフィックカードに合わせてドライバをインストールする必要があります。

まず、あなたのカードを確認してください:

$ lspci | grep VGA

それから、適切なドライバをインストールしてください。次のコマンドでパッケージを検索できます:

$ pacman -Ss xf86-video

一般的なオープンソースドライバ:

一般的なプロプライエタリドライバ:

Xorg はクローズドソースのドライバがなくともスムーズに動作しますが、ゲームのための高速な 3D レンダリングやデュアルスクリーン、TV 出力などの高度な機能を使うために必要になるかもしれません。

モニター設定

はじめに

Note: このステップは任意です。何をやっているのかわからない限り行うべきではありません。
デュアルモニタや nouveau ドライバを使う場合はこのステップは任意ではありませんNouveau#Configuration を見て下さい。

まず、/etc/X11/xorg.conf.d/10-monitor.conf のような、新しい設定ファイルを作成します。

作成した設定ファイルに以下のコードを挿入してください:

Section "Monitor"
    Identifier             "Monitor0"
EndSection

Section "Device"
    Identifier             "Device0"
    Driver                 "vesa" #Choose the driver used for this monitor
EndSection

Section "Screen"
    Identifier             "Screen0"  #Collapse Monitor and Device section to Screen section
    Device                 "Device0"
    Monitor                "Monitor0"
    DefaultDepth            16 #Choose the depth (16||24)
    SubSection             "Display"
        Depth               16
        Modes              "1024x768_75.00" #Choose the resolution
    EndSubSection
EndSection

マルチモニター/デュアルスクリーン

NVIDIA

参照: NVIDIA#Multiple monitors

複数のグラフィックカード

利用するドライバを正しく定めてグラフィックカードのバス ID を入力する必要があります。

Section "Device"
    Identifier             "Screen0"
    Driver                 "nouveau"
    BusID                  "PCI:0:12:0"
EndSection

Section "Device"
    Identifier             "Screen1"
    Driver                 "radeon"
    BusID                  "PCI:1:0:0"
EndSection

バス ID を取得するには:

$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)

この場合バス ID は 1:0:0。

ラップトップでディスプレイの表示を切り替えるスクリプト

Run the following script after connecting to external displays with your computer to change the display used by Xorg. It checks if a display is connected to the port specified in EXT before changing displays.

To find out the display names to be specified in EXT run:

# xrandr -q

The internal display should be connected when running the script, which is always true for a laptop. To use this script the package xorg-xrandr needs to be installed.

#!/bin/bash

IN="LVDS1"
EXT="VGA1"

if (xrandr | grep "$EXT" | grep "+")
    then
    xrandr --output $EXT --off --output $IN --auto
    else
        if (xrandr | grep "$EXT" | grep " connected")
            then
            xrandr --output $IN --off --output $EXT --auto
        fi
fi

画面サイズと DPI

The DPI of the X server is determined in the following manner:

  1. The -dpi command line option has highest priority.
  2. If this is not used, the DisplaySize setting in the X config file is used to derive the DPI, given the screen resolution.
  3. If no DisplaySize is given, the monitor size values from DDC are used to derive the DPI, given the screen resolution.
  4. If DDC does not specify a size, 75 DPI is used by default.

In order to get correct dots per inch (DPI) set, the display size must be recognized or set. Having the correct DPI is especially necessary where fine detail is required (like font rendering). Previously, manufacturers tried to create a standard for 96 DPI (a 10.3" diagonal monitor would be 800x600, a 13.2" monitor 1024x768). These days, screen DPIs vary and may not be equal horizontally and vertically. For example, a 19" widescreen LCD at 1440x900 may have a DPI of 89x87. To be able to set the DPI, the Xorg server attempts to auto-detect your monitor's physical screen size through the graphic card with DDC. When the Xorg server knows the physical screen size, it will be able to set the correct DPI depending on resolution size.

To see if your display size and DPI are detected/calculated correctly:

$ xdpyinfo | grep -B2 resolution

Check that the dimensions match your display size. If the Xorg server is not able to correctly calculate the screen size, it will default to 75x75 DPI and you will have to calculate it yourself.

If you have specifications on the physical size of the screen, they can be entered in the Xorg configuration file so that the proper DPI is calculated:

Section "Monitor"
    Identifier             "Monitor0"
    DisplaySize             286 179    # In millimeters
EndSection

If you only want to enter the specification of your monitor without creating a full xorg.conf create a new config file. For example (/etc/X11/xorg.conf.d/90-monitor.conf):

Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize            286 179    # In millimeters
EndSection

If you do not have specifications for physical screen width and height (most specifications these days only list by diagonal size), you can use the monitor's native resolution (or aspect ratio) and diagonal length to calculate the horizontal and vertical physical dimensions. Using the Pythagorean theorem on a 13.3" diagonal length screen with a 1280x800 native resolution (or 16:10 aspect ratio):

echo 'scale=5;sqrt(1280^2+800^2)' | bc  # 1509.43698

This will give the pixel diagonal length and with this value you can discover the physical horizontal and vertical lengths (and convert them to millimeters):

echo 'scale=5;(13.3/1509)*1280*25.4' | bc  # 286.43072
echo 'scale=5;(13.3/1509)*800*25.4'  | bc  # 179.01920
Note: This calculation works for monitors with square pixels; however, there is the seldom monitor that may compress aspect ratio (e.g 16:10 aspect resolution to a 16:9 monitor). If this is the case, you should measure your screen size manually.
手動で DPI を設定する

DPI can be set manually if you only plan to use one resolution (DPI calculator):

Section "Monitor"
    Identifier             "Monitor0"
    Option                 "DPI" "96 x 96"
EndSection

If you use an NVIDIA card, you can manually set the DPI adding the options bellow on /etc/X11/xorg.conf.d/20-nvidia.conf (inside Device section):

Option              "UseEdidDpi" "False"
Option              "DPI" "96 x 96"

For RandR compliant drivers, you can set it by:

xrandr --dpi 96

See Execute commands after X start to make it permanent.

Note: while you can set any dpi you like and applications using Qt and GTK will scale accordingly, it's recommended to set it to 96, 120 (25% higher), 144 (50% higher), 168 (75% higher), 192 (100% higher) etc., to reduce scaling artifacts to GUI that use bitmaps. Reducing it below 96 dpi may not reduce size of graphical elements of GUI as typically the lowest dpi the icons are made for is 96.

DPMS

DPMS (Display Power Management Signaling) はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で standby にすることができます。DPMS を見て下さい。

コンポジット

The Composite extension for X causes an entire sub-tree of the window hierarchy to be rendered to an off-screen buffer. Applications can then take the contents of that buffer and do whatever they like. The off-screen buffer can be automatically merged into the parent window or merged by external programs, called compositing managers.

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Is this actually still true in recent Xorg releases? (Discuss in Talk:Xorg (日本語)#)

The Composite extension can't be used simultaneously with Xinerama. However, it can be used simultaneously with Nvidia Twinview.

拡張を無効にする

コンポジット拡張はデフォルトで有効になっています。無効にするには、以下を xorg.conf か /etc/xorg.conf.d 下のファイルに加えてください:

Section "Extensions"
    Option             "Composite" "Disable"
EndSection

無効にすることでドライバによってはパフォーマンスが少し向上することがあります。

参照

設定例

Anyone who has an xorg.conf file written up that works, go ahead and post a link to it here for others to look at. Please do not in-line the entire configuration file; upload it somewhere else and link to it.

Please post input hotplugging configurations only, otherwise note that your config is not using input hotplugging. (Xorg 1.8 = udev)

例1: xorg.conf & /etc/X11/xorg.conf.d/10-evdev.conf

This is a sample configuration file using /etc/X11/xorg.conf.d/10-evdev.conf for the keyboard layouts:

Note: The "InputDevice" sections are commented out, because /etc/X11/xorg.conf.d/10-evdev.conf is taking care of them.
xorg.conf: http://pastebin.com/raw.php?i=EuSKahkn
/etc/X11/xorg.conf.d/10-evdev.conf: http://pastebin.com/raw.php?i=4mPY35Mw
/etc/X11/xorg.conf.d/10-monitor.conf (VMware): http://pastebin.com/raw.php?i=fJv8EXGb
/etc/X11/xorg.conf.d/10-monitor.conf (KVM): http://pastebin.com/raw.php?i=NRz7v0Kn

Tips and tricks

X スタートアップ (/usr/bin/startx) 調整

X のオプションを見るには:

$ man Xserver

The following options have to be appended to the variable "defaultserverargs" in the /usr/bin/startx file:

  • Enable deferred glyph loading for 16 bit fonts:
-deferglyphs 16
Note: If you start X with kdm, the startx script does not seem to be executed. X options must be appended to the variable "ServerArgsLocal" or "ServerCmd" in the /usr/share/config/kdm/kdmrc file. By default kdm options are:
ServerArgsLocal=-nolisten tcp
ServerCmd=/usr/bin/X

ネストした X セッション

他のデスクトップ環境に入れ子になったセッションを起動するには:

$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1

上記で現在の X セッションの中に 1024x768 のウィンドウの Window Maker セッションが起動します。

このためには xorg-server-xnest パッケージをインストールする必要があります。

リモートで GUI プログラムを実行する

To start up a program that uses X when logged in remotely (such as through ssh), you need to type this in from the remote login Bash shell:

export DISPLAY=:0

Then invoke the program the way you would locally from the shell.

Hint: Add that line to ~/.bashrc to have it happen automatically every time you log in.

必要に応じて入力ソースを有効化・無効化

With the help of xinput you can temporarily disable or enable input sources. This might be useful, for example, on systems that have more than one mouse, such as the ThinkPads and you would rather use just one to avoid unwanted mouse clicks. Let's see how to accomplish this.

Install xinput from the xorg-xinput package:
# pacman -S xorg-xinput
Find the ID of the device you want to disable:
xinput

For example in a Lenovo ThinkPad T500, the output looks like this:

$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=11	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=10	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=9	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=12	[slave  keyboard (3)]

Disable the device with xinput --disable DEVICE, where DEVICE is the device ID you want to disable. In this example we'll disable the Synaptics Touchpad, with the ID 10:

xinput --disable 10

To re-enable the device, just issue the opposite command:

xinput --enable DEVICE

トラブルシューティング

共通問題

Xorg が起動しない、画面が真っ暗、キーボードやマウスが動かないなどの場合は、まず以下の手順を踏んで下さい:

  • ログファイルをチェック: cat /var/log/Xorg.0.log
  • インプットドライバをインストール (キーボード、マウス、ジョイスティック、タブレット、etc...)。
  • 最後に、ATIIntelNVIDIA の記事に問題の解決方法が載ってないか調べる。

Ctrl+Alt+Backspace が動作しない

Template:Keypress を戻すにはホットプラグの有りなしによって2つの方法があります; ホットプラグを使うほうが推奨されます。

ホットプラグ

ユーザー共通

/etc/X11/xorg.conf.d/10-evdev.conf 内に、以下を追加してください:

Section "InputClass"                                                            
        Identifier "Keyboard Defaults"                                          
        MatchIsKeyboard "yes"                                                   
        Option "XkbOptions" "terminate:ctrl_alt_bksp"                           
EndSection
Note: On KDE, this system-wide setting has no effect. To restore, go to Kickoff > Computer > System Settings which will open up the System Settings window. Click on 'Input Devices'. In this new window click the Keyboard tab and then click on the advanced tab. In this new window, click the box for 'Configure keyboard options.' Expand the entry for 'Key sequence to kill the X server' and ensure Template:Keypress is checked. Click Apply and close the System Settings window. You now have your Template:Keypress back in KDE.
ユーザー定義

次の行を xinitrc (日本語) に追加することでも可能です:

setxkbmap -option terminate:ctrl_alt_bksp
Note: この設定は Gnome 3 では効果がありません。

ホットプラグなし

新しい Xorg はデフォルトで Template:Keypress のザッピングを無効にしています。以下の行を /etc/X11/xorg.conf のキーボードの InputDevice セクションに追加することで有効にできます。

Option                    "XkbOptions" "terminate:ctrl_alt_bksp"

右 CTRL キーが oss キーマップとして動作しない

root で /usr/share/X11/xkb/symbols/fr を編集して:

include "level5(rctrl_switch)"

// include "level5(rctrl_switch)"

に変更して X を再起動してください。

Apple キーボードの問題

参照: Apple Keyboard

タッチパッドのタップクリックの問題

参照: Synaptics

追加のマウスボタンが認識されない

参照: Get All Mouse Buttons Working

"su" で X クライアントの起動が失敗する

"Client is not authorized to connect to server" と表示される場合、次の行を /etc/pam.d/su に追加して下さい:

session        optional        pam_xauth.so

pam_xauth が正しく環境変数を設定し xauth キーを管理します。

プログラムが "font '(null)'" を要求する

  • エラーメッセージ: "unable to load font `(null)'."

いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、xorg-fonts-75dpixorg-fonts-100dpi です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、次を実行してください:

$ xdpyinfo | grep resolution

それからあなたに適している方を使って下さい (XX は 75 か 100 に置き換える):

# pacman -S xorg-fonts-XXdpi

フレームバッファモード問題

以下のログメッセージを残して X の起動が失敗する場合、

(WW) Falling back to old probe method for fbdev
(II) Loading sub module "fbdevhw"
(II) LoadModule: "fbdevhw"
(II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so
(II) Module fbdevhw: vendor="X.Org Foundation"
       compiled for 1.6.1, module version=0.0.2
       ABI class: X.Org Video Driver, version 5.0
(II) FBDEV(1): using default device

Fatal server error:
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices

fbdev をアンインストールしてください:

# pacman -R xf86-video-fbdev

Matrox カードで DRI が停止する

Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を xorg.conf のビデオカードの Device セクションに追加してください:

Option "OldDmaInit" "On"

リカバリ: GUI ログインの前に Xorg を無効化

Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、/etc/rc.conf を間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、2つのメソッドを使ってこれを達成できます。

  • GRUB メニューから、kernel 行の最後に数字を付けることでランレベルを指定することができます。以下の例ではランレベルは 3 にセットされます:
 kernel /boot/vmlinuz-linux root=/dev/disk/by-uuid/..ro 3
  • 誤って /etc/rc.conf を設定して Xorg を使えなくしただけでなく、GRUB メニューの待ち時間をゼロに設定、または起動時から Xorg を無効にするのに GRUB を使えない場合、Arch Linux のライブ CD を使って下さい。ライブ CD を起動して root でログインします。/mnt のようなマウントポイントが必要なので、マウントしたいパーティションの名前を知る必要があります。
次のコマンドを使ってパーティションを見ることができます。
 # fdisk -l
通常、あなたがマウントするパーティションは /dev/sda1 です。それから、パーティションを /mnt にマウントします、次を実行してください
 # mount /dev/sda1 /mnt
これでファイルシステムが /mnt の下に表示されるようになります。例えば、/etc/rc.conf ファイルは /mnt/etc/rc.conf にあります。ここから、gdm デーモンを削除するなど設定ファイルの必要な変更を行なって下さい。

X が起動できない: Keyboard initialization failed

ハードディスクが満杯の場合、startx は失敗します。/var/log/Xorg.0.log の最後が次のようになるはずです:

(EE) Error compiling keymap (server-0)
(EE) XKB: Couldn't compile keymap
(EE) XKB: Failed to load keymap. Loading default keymap instead.
(EE) Error compiling keymap (server-0)
(EE) XKB: Couldn't compile keymap
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
Fatal server error:
Failed to activate core devices.
Please consult the The X.Org Foundation support  at http://wiki.x.org
for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional information.
 (II) AIGLX: Suspending AIGLX clients for VT switch

root パーティションに空き容量を作ってから X を起動してください。