# Xorg (日本語)

関連記事

- ログイン時に X を起動する
- X が起動した後にコマンドを実行
- ディスプレイマネージャ
- ウィンドウマネージャ
- フォント設定
- カーソルテーマ
- デスクトップ環境
- Wayland
- Mir

http://www.x.org/wiki/ より:

  X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。

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

## インストール

X サーバーをインストールするには、まず公式リポジトリの xorg-server パッケージをインストールする必要があります。

また、設定作業などに有用なユーティリティを xorg-apps グループからインストールすることもできます。ユーティリティはそれぞれのページで説明されています。

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

### ドライバーのインストール

Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、OpenGL や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。

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

    $ lspci | grep VGA

それから適切なドライバーをインストールしてください。パッケージデータベースを検索してオープンソースビデオドライバーの一覧を表示することができます:

    $ pacman -Ss xf86-video

デフォルトのグラフィックドライバーは vesa (xf86-video-vesa パッケージ) で、ほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。より良いドライバが見つからなかったり、ロードできなかった場合、Xorg は vesa ドライバに戻ります。

ビデオアクセラレーション機能を動かしたり、GPU が設定できる全てのモードを表示するには、正しいビデオドライバが必要です:

ブランド | 種別 | ドライバ | Multilib パッケージ (Arch x86_64 環境の32ビットアプリ用) | ドキュメント
--- | --- | --- | --- | ---
AMD/ATI | オープンソース | xf86-video-ati | lib32-ati-dri | ATI
プロプライエタリ | catalyst-dkms | lib32-catalyst-utils | AMD Catalyst
Intel | オープンソース | xf86-video-intel | lib32-intel-dri | Intel Graphics
Nvidia | オープンソース | xf86-video-nouveau | lib32-nouveau-dri | Nouveau
xf86-video-nv | – | (legacy driver)
プロプライエタリ | nvidia | lib32-nvidia-libgl | NVIDIA
nvidia-304xx | lib32-nvidia-304xx-utils
nvidia-173xx | lib32-nvidia-173xx-utils
nvidia-96xx | lib32-nvidia-96xx-utils
VIA | オープンソース | xf86-video-openchrome | – | VIA

Xorg はクローズドソースのドライバーがなくとも問題なく動作するはずです。基本的に、ゲームのための 3D アクセラレートレンダリングや、デュアルスクリーン、TV 出力など高度な機能を使う場合にのみプロプライエタリのドライバが必要になります。

## 起動

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

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

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

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

Note:

- logind セッションを維持するために、X はログインしたのと同じ tty で実行させる必要があります。これはデフォルトの `/etc/X11/xinit/xserverrc` で管理されています。詳細は General Troubleshooting#Session permissions を参照してください。
- 問題が発生したら、`/var/log/Xorg.0.log` のログを見て下さい。`(EE)` (エラーを意味する) や `(WW)` (警告などを示す) で始まっている行をチェックする必要があります。
- あなたの `$HOME` に空の `.xinitrc` ファイルがある場合、X を正しく起動するためにそれを削除するか編集してください。それをしないと X は `Xorg.0.log` に何のエラーも残さずに黒画面を表示します。削除したときはデフォルトの X 環境が起動するようになります。

Warning: `startx` の代わりに `xinit` を使う場合は、`-nolisten tcp` を渡して、異なる tty で X を起動することでセッションが破壊されることがないようにしてください。

## 設定

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

Xorg は初期設定に `xorg.conf` という名前の設定ファイルと `.conf` が末尾につくファイルを使います: これらのファイルが使われるフォルダの一覧は [1] を見たり `man xorg.conf` を実行することで（利用できるオプションの説明と一緒に）調べることができます。

### .conf ファイルを使う

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

### xorg.conf を使う

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

     # Xorg :0 -configure

上のコマンドで `/root/` に `xorg.conf.new` ファイルが作られるはずです。これを `/etc/X11/xorg.conf` にコピーして上書きすることができます。

もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは NVIDIA や AMD Catalyst などあなたの使っているビデオカードの記事を見て下さい。

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

### 設定サンプル

- `xorg.conf`

  Sample 1
  Note: Sample configuration file using `/etc/X11/xorg.conf.d/10-evdev.conf` for the keyboard layouts. Note the commented out `InputDevice` sections.

- `/etc/X11/xorg.conf.d/10-evdev.conf`

  Sample 1
  Note: This is the `10-evdev.conf` file that goes with the xorg.conf sample 1.

- `/etc/X11/xorg.conf.d/10-monitor.conf`

  1. VMware
  2. KVM
  3. NVIDIA
  Note: nvidia-ck binary drivers (v325); Dual GPU, Dual Monitor, Dual Screen; No Twinview, No Xinerama; Rotated and vertically placed screen1 above screen0.

## 入力デバイス

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

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

### マウスのアクセラレーション

次のページを参照してください: Mouse acceleration (日本語)

### 追加のマウスボタン

次のページを参照してください: All Mouse Buttons Working

### Touchpad Synaptics

次のページを参照してください: Touchpad Synaptics (日本語)

### キーボードの設定

次のページを参照してください: Keyboard Configuration in Xorg (日本語)

### InputClass

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

InputClass は、ひとつのデバイスではなく「あるクラス」のデバイス（ホットプラグのデバイスを含む）に適用される新しいタイプの設定セクションです。InputClass セクションの適用範囲は指定された match によって決まります – 入力デバイスに適用するには、全ての match をデバイスにあてがう必要があります。例えば InputClass セクションは以下のように使われます:

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

次のスニペットも理解するのに役立つかもしれません:

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

このスニペットが `xorg.conf` や xorg.conf.d に存在する場合、システム上の全てのタッチパッドに synaptics ドライバが割り当てられます。優先順位 (xorg.conf.d の英数字の順番) によってドライバーの設定は前の設定を上書きすることに注意してください – 一般的なクラスほど、初めの方に置くべきです。xorg-server パッケージによって提供されるデフォルトのスニペットは `00-evdev.conf` であり、全ての入力デバイスに evdev ドライバを割り当てます。

match オプションによってセクションを適用するのはどのデバイスなのか指定します。全ての match 行を満たしたデバイスだけに、セクションが適用されます。使うことができる match は以下の通り:

- `MatchIsPointer`, `MatchIsKeyboard`, `MatchIsTouchpad`, `MatchIsTouchscreen`, `MatchIsJoystick` – デバイスグループに適用するための boolean オプション。
- `MatchProduct "foo|bar"`: 製品の名前に "foo" か "bar" が含まれているデバイスにマッチ
- `MatchVendor "foo|bar|baz"`: 製造者（ベンダー）名に "foo" や "bar"、"baz" が含まれているデバイスにマッチ
- `MatchDevicePath "/dev/input/event*"`: デバイスパスが一致しているデバイスにマッチ (利用できるパターンは fnmatch(3) を見て下さい)
- `MatchTag "foo|bar"`: "foo" や "bar" といったタグが付けられたデバイスにマッチ。タグはバックエンドの設定 – udev によって指定され特別な設定が必要なデバイスをラベリングします。

ユーザー定義設定のためのセクションの例:

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

このセクションは、"Lasermouse Inc." によって作られた "Lasermouse" という名前を持つポインティングデバイスにマッチし、デバイスには 20 の値の constant deceleration が適用されます &ndash 20倍マウスの速度が遅くなります。

X サーバーによって扱って欲しくないデバイスがあるかもしれません。設定によってそうしたデバイスを無視させることができます:

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

#### 設定例

以下のサブセクションでは一般的に使われる設定オプションのための設定例を記述しています。あなたが GNOME や KDE などのデスクトップ環境を使っている場合、xorg.conf に設定したオプションはログイン時にユーザー定義オプションによって上書きされてしまう可能性があります。

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

トラックポイントのある PC (例: Thinkpad) を使っている場合、以下を `xorg.conf` に追加することでミドルボタンを使ってマウスホイールをエミュレートできます:

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

(横スクロールを含む) トラックポイントの完全なサポートをするには以下を使って下さい:

    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 は（タッチパッドタブの）マウス設定ダイアログから有効にすることができますが、gdm でタップを有効にする必要があるなら、以下のスニペットを使って下さい:

    Section "InputClass"
        Identifier            "tap-by-default"
        MatchIsTouchpad       "on"
        Option                "TapButton1" "1"
    EndSection

##### 例: Acer 5920G ラップトップのキーボードレイアウト・モデル

キーボードモデルやレイアウトは `/etc/X11/xorg.conf.d/keyboard.conf` ファイルや同じディレクトリの他の .conf ファイルで設定できます。

- `MatchIsKeyboard "yes"`: 入力デバイスをキーボードに設定
- `Option "XkbModel" "acer_laptop"`: キーボードモデルを Acer ラップトップキーボードに設定。`acer_laptop` はあなたの使っているキーボードに置き換えられます。
- `Option "XkbLayout" "jp"`: キーボードレイアウトを日本語に設定。`jp` は使いたいレイアウトに変えることができます。
- `Option "XkbVariant" "sundeadkeys"`: レイアウトのバリアントを Sun dead keys に設定。デフォルトのバリアントを使うなら `XkbVariant` オプションは省略できます。

キーボードレイアウト・モデルのリストは `/usr/share/X11/xkb/rules/base.lst` にあります。

    Section "InputClass"
        Identifier             "Keyboard Defaults"
        MatchIsKeyboard        "yes"
        Option                 "XkbModel" "acer_laptop"
        Option                 "XkbLayout" "jp"
        Option                 "XkbVariant" "sundeadkeys"
    EndSection

##### 例: (3ボタンマウス用の) 中ボタンのエミュレーション

中ボタンのエミュレーションによって、右・左ボタンを一緒に押すことで3つ目のボタンのイベントを発動させるようにすることができます。これは X でのコピーアンドペーストに役に立つでしょう。

`/etc/X11/xorg.conf.d/10-evdev.conf` の mouse input catchall を修正します

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

`Option "Emulate3Buttons" "True"` オプションで3ボタンのエミュレートを有効にして `Option "Emulate3Timeout" "25"` オプションで中ボタンのクリックとして認識する時間を 25ms としています。

## モニターの設定

### はじめに

Note: 新しいバージョンの Xorg は自動で設定を行います。あなたが設定をする必要はありません。

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

    /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

### マルチモニター

一般的な情報は Multihead を見て下さい。

GPU 固有の手順は以下を参照してください:

- NVIDIA (日本語)#マルチモニター
- Nouveau (日本語)#Dual Head
- AMD Catalyst (日本語)#Double Screen (Dual Head / Dual Screen / Xinerama)
- ATI (日本語)#Dual Head setup

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

利用するドライバを正しく定めてグラフィックカードのバス 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。

### 画面サイズと DPI

X サーバーの DPI は以下の順番で決定されます:

1. -dpi コマンドラインオプションが一番優先されます。
2. オプションが使われていない場合、X 設定ファイルの DisplaySize 設定が DPI の設定に使われます。
3. DisplaySize が設定されていない場合、DDC のモニターサイズ値が DPI の設定に使われます。
4. DDC がサイズを指定していない場合、75 DPI がデフォルトで使われます。

正しいドット密度 (DPI) を設定するには、ディスプレイのサイズを知る必要があります。（フォントレンダリングなど）細部の設定が必要な場合、適切な DPI の設定は特に重要です。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。DPI を設定するために、Xorg サーバーはグラフィックカードを通して DDC によってモニターの物理的な画面サイズを自動検出します。When the Xorg server knows the physical screen size, it will be able to set the correct DPI depending on resolution size.

ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには:

    $ xdpyinfo | grep -B2 resolution

dimensions がディスプレイサイズと一致しているかチェックしてください。正しく画面サイズを計算できない時、Xorg サーバは 75x75 DPI をデフォルトにするので、あなたはそれを計算する必要があります。

スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます:

    Section "Monitor"
        Identifier             "Monitor0"
        DisplaySize             286 179    # ミリメートル単位
    EndSection

フルの xorg.conf を作成しないでモニタの仕様の入力だけを行いたい場合は新しい設定ファイルを作成してください。例えば (`/etc/X11/xorg.conf.d/90-monitor.conf`):

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

スクリーンの横と縦の物理的な長さがわからないときは（最近は対角線の長さ（インチ数）しかわからないことも多い）、モニターの最大解像度（アスペクト比）か対角線の長さを使って縦と横の長さを計算できます。（ピタゴラスの定理を使って）最大解像度1280x800（もしくはアスペクト比16:10）、13.3インチのスクリーンの場合:

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

このコマンドでピクセルの対角線の長さがわかり、この値を使うことで物理的な縦と横の長さを知ることができます (そしてそれをミリメートルに変換できます):

    $ 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 を手動で設定することができます (DPI calculator):

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

NVIDIA カードを使っているのなら、`/etc/X11/xorg.conf.d/20-nvidia.conf` 内で以下のオプションを (Device セクションに) 追加して DPI を手動設定できます:

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

RandR に対応しているドライバなら、次のコマンドでも設定できます:

    $ xrandr --dpi 96

設定を永続的にするには Execute commands after X start を見て下さい。

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 を見て下さい。

## コンポジット

X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは以下のページを見て下さい。

- Compiz -- Novell によるオリジナルのコンポジット・ウィンドウマネージャ
- Xcompmgr -- シャドウと透過ができるシンプルなコンポジットマネージャ
- Compton -- 機能の追加とバグフィックスを行った xcompmgr のフォーク
- Cairo Composite Manager -- 拡張性のあるコンポジットマネージャ、レンダリングに cairo を使用
- Wikipedia:ja:コンポジット型ウィンドウマネージャ

## Tips and tricks

### X スタートアップ (startx) 調整

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

    $ man Xserver

以下のオプションは `/usr/bin/startx` ファイルの `"defaultserverargs"` 変数に追加してください:

- 16ビットフォントの遅延ロードを有効にする:

    -deferglyphs 16

Note: kdm から X を起動したとき、startx スクリプトが実行されないように思われるかもしれません。X オプションを `/usr/share/config/kdm/kdmrc` ファイルの `"ServerArgsLocal"` に加える必要があります。

### ネストした X セッション

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

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

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

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

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

次の記事を参照してください: Secure Shell (日本語)#X11 フォワーディング

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

`xinput` を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。

xorg-xinput パッケージから `xinput` をインストールしてください:

    # pacman -S xorg-xinput

無効化したいデバイスの ID を調べて下さい:

    $ xinput

例えば Lenovo ThinkPad T500 では、出力は以下のようになります:

    $ 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)]

`xinput --disable device_id` (device_id は無効化したいデバイスの ID) でデバイスを無効にします。次の例では　Synaptics Touchpad の ID 10 を無効にします:

    $ xinput --disable 10

デバイスを有効にするには、次のコマンドを実行してください:

    $ xinput --enable 10

## トラブルシューティング

### 共通問題

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

- ログファイルをチェック: `cat /var/log/Xorg.0.log`
- キーボード・マウス・タッチパッドなどに問題がおこる場合は Category:Input devices (日本語) 内のそれぞれのページを見て下さい。
- 最後に、ATI、Intel、NVIDIA の記事に問題の解決方法が載ってないか調べてください。

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

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

    include "level5(rctrl_switch)"

を

    // include "level5(rctrl_switch)"

に変更して X を再起動するか次を実行してください:

    setxkbmap fr oss

### "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)'."

いくつかのプログラムはビットマップフォントでだけ動作します。２つの主要なビットマップフォントのパッケージがあります、xorg-fonts-75dpi と xorg-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 が起動するのを防ぎたい場合（例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合）、２つのメソッドを使ってこれを達成できます。

- デフォルトのターゲットを rescue.target に変更してください。systemd (日本語)#起動時のデフォルトターゲットを変更する を見て下さい。
- 誤ってシステムを設定して Xorg を使えなくしただけでなく、GRUB メニューの待ち時間をゼロに設定、または起動時から Xorg を無効にするのに GRUB を使えない場合、Arch Linux のライブ CD を使って下さい。ライブ CD を起動して root でログインします。`/mnt` のようなマウントポイントが必要なので、マウントしたいパーティションの名前を知る必要があります。

次のコマンドを使ってパーティションを見ることができます:

    # fdisk -l

通常、あなたがマウントするパーティションは `/dev/sda1` です。それから、パーティションを `/mnt` にマウントします、次を実行してください

    # mount /dev/sda1 /mnt

これでファイルシステムが `/mnt` の下に表示されるようになります。ここから、`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 を起動してください。

### black screen, No protocol specified.., Resource temporarily unavailable for all or some users

X は設定と一時ファイルをユーザーの home ディレクトリに作成します。あなたの home ディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。

Categories:

- X Server (日本語)
- Graphics (日本語)