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

From ArchWiki
Jump to: navigation, search
m (InputClass)
m (参照)
Line 532: Line 532:
 
*[[AIGLX]]
 
*[[AIGLX]]
 
*[[Compiz]] -- Novell によるオリジナルのコンポジット・ウィンドウマネージャ
 
*[[Compiz]] -- Novell によるオリジナルのコンポジット・ウィンドウマネージャ
*[[Xcompmgr]] -- A simple composite manager capable of drop shadows and primitive transparency
+
*[[Xcompmgr]] -- シャドウと透過ができるシンプルなコンポジットマネージャ
*[[Compton]] -- A fork of [[xcompmgr]] with feature improves and bug fix
+
*[[Compton]] -- 機能の追加とバグフィックスを行った [[xcompmgr]] のフォーク
*[[Cairo Compmgr|Cairo Composite Manager]] -- A versatile and extensible composite manager which uses cairo for rendering.
+
*[[Cairo Compmgr|Cairo Composite Manager]] -- 拡張性のあるコンポジットマネージャ、レンダリングに cairo を使用
 
*[[Wikipedia:Compositing window manager]]
 
*[[Wikipedia:Compositing window manager]]
  

Revision as of 09:19, 25 February 2013

概括 help replacing me
Xorg のインストール・管理の包括的な説明。
概要
Template:Graphical user interface overview (日本語)
関連項目
Start X at Login (日本語)
xprofile (日本語)
Display Manager (日本語)
Window Manager (日本語)
Font Configuration
X11 Cursors
Get All Mouse Buttons Working
Desktop Environment (日本語)
Wayland (日本語)
フリービデオドライバ
Intel Graphics (日本語)
ATI
Nouveau
プロプライエタリビデオドライバ
AMD Catalyst
NVIDIA

Xorg は X window system バージョン 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

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-x11-drv-Xorg パッケージによって提供されるデフォルトのスニペットは 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 としています。

グラフィック

ドライバのインストール

デフォルトのグラフィックドライバは 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

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

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

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 を手動で設定することができます (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 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。

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: kdm から X を起動したとき、startx スクリプトが実行されないように思われるかもしれません。X オプションは /usr/share/config/kdm/kdmrc ファイルの "ServerArgsLocal""ServerCmd" に加える必要があります。デフォルトの kdm オプションは:
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 プログラムを実行する

(ssh など) リモートでログインしている時に、X を使うプログラムを起動するには、リモートログインの Bash シェルから以下を実行する必要があります:

export DISPLAY=:0

それからシェルからプログラムを呼び出してください。

Hint: 上の行を ~/.bashrc に追加すればログイン毎に毎回自動で実行されます。

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

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 (DEVICE は無効化したいデバイスの ID) でデバイスを無効にします。次の例では Synaptics Touchpad の ID 10 を無効にします:

xinput --disable 10

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

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 を起動してください。