Xorg

提供: ArchWiki
2015年1月5日 (月) 18:54時点におけるKusakata (トーク | 投稿記録)による版 (Kusakata がページ「Xorg (日本語)」を「Xorg」に移動しました)
ナビゲーションに移動 検索に移動

テンプレート:Related articles start (日本語)

  • ログイン時に X を起動
  • X が起動した後にコマンドを実行
  • ディスプレイマネージャ
  • ウィンドウマネージャ
  • フォント設定
  • カーソルテーマ
  • デスクトップ環境
  • Wayland
  • Mir
  • xinitrc
  • http://www.x.org/wiki/ より:

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

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

    目次

    インストール

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

    また、設定作業などに必要なパッケージのいくつかが xorg-server-utils メタパッケージに入っており、それぞれ関連するセクションで説明しています。他の有用なパッケージは xorg-apps グループの中にあります。

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

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

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

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

    $ lspci | grep -e VGA -e 3D
    

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

    $ pacman -Ss xf86-video
    

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

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

    ノート: オンボードのグラフィックカードとディスクリート GPU が混載されていて、NVIDIA Optimus が有効になっているノートパソコンを使用する場合は、Bumblebee を見て下さい。
    ブランド 種別 ドライバ Multilib ドキュメント
     AMD/ATI  オープンソース xf86-video-ati lib32-mesa-libgl ATI
    プロプライエタリ catalyst-dkmsAUR lib32-catalyst-utilsAUR AMD Catalyst
    Intel オープンソース xf86-video-intel lib32-mesa-libgl Intel Graphics
    Nvidia オープンソース xf86-video-nouveau lib32-mesa-libgl Nouveau
    プロプライエタリ nvidia lib32-nvidia-libgl NVIDIA
    nvidia-340xx lib32-nvidia-340xx-libgl
    nvidia-304xx lib32-nvidia-304xx-libgl
    VIA オープンソース xf86-video-openchrome VIA

    他のビデオドライバーは xorg-drivers グループで見つけることができます。

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

    起動

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

    ヒント: 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 のベーシックな環境を起動します。詳しくは xinitrc を見て下さい。

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

    設定

    ノート: Arch はデフォルトの設定ファイルを /usr/share/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 を設定するツールが含まれているかもしれません。詳しくは NVIDIAAMD Catalyst などあなたの使っているビデオカードの記事を見て下さい。

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

    設定サンプル

    • xorg.conf
    Sample 1
    ノート: 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
    ノート: 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
    ノート: nvidia-ck binary drivers (v325); Dual GPU, Dual Monitor, Dual Screen; No Twinview, No Xinerama; Rotated and vertically placed screen1 above screen0.

    入力デバイス

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

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

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

    次のページを参照してください: マウスのアクセラレーション

    追加のマウスボタン

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

    タッチパッド

    次のページを参照してください: Touchpad Synaptics

    タッチスクリーン

    次のページを参照してください: Touchscreen

    キーボードの設定

    次のページを参照してください: 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 としています。

    モニターの設定

    はじめに

    ノート: 新しいバージョンの 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 固有の手順は以下を参照してください:

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

    利用するドライバを正しく定めてグラフィックカードのバス 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
    
    ノート: 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 は自由に設定することができ、Qt や GTK を使用しているアプリケーションはそれにあわせてスケールしますが、スケールによる画像の乱れがビットマップを使用する GUI に現れないように dpi は 96, 120 (25% 増分), 144 (50% 増分), 168 (75% 増分), 192 (100% 増分) などに設定するのを推奨します。また、アイコンの最低 dpi は基本的に 96 になっているので、96 dpi 未満に設定しても GUI のグラフィックのサイズは小さくなりません。

    RandR に対応しているドライバ (例えばオープンソースの ATI ドライバ) なら、次のコマンドで設定できます:

    $ xrandr --dpi 144
    
    ノート: 変更はすぐにはアプリケーションに適用されません。再起動する必要があります。

    設定を永続的にするには xprofile を見て下さい。

    プロプライエタリの NVIDIA ドライバー

    使う解像度が一つの場合 DPI を手動で設定することができます (DPI calculator):

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

    /etc/X11/xorg.conf.d/20-nvidia.conf 内で以下のオプションを (Device セクションに) 追加して DPI を手動設定できます:

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

    DPMS

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

    コンポジット

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

    コンポジットマネージャ一覧

    http://cairo-compmgr.tuxfamily.org/ || cairo-compmgr-gitAUR
    • Compiz — Aiglx や Xgl、プラグインと CCSM に対応するコンポジットマネージャ
    http://www.compiz.org/ || compizAUR
    • Compton — X コンポジタ (xcompmgr-dana のフォーク)
    https://github.com/chjj/compton || comptonAUR
    • Xcompmgr — X.org 向けのウィンドウ効果ができるコンポジットマネージャ
    http://cgit.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr

    Tips and tricks

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

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

    $ man Xserver
    

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

    • 16ビットフォントの遅延ロードを有効にする:
    -deferglyphs 16
    
    ノート: 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 プログラムを実行する

    次の記事を参照してください: SSH#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.logGDM を使っている場合は systemd の journal をチェックしてください [2]
    • キーボード・マウス・タッチパッドなどに問題がおこる場合は Category:Input devices (日本語) 内のそれぞれのページを見て下さい。
    • 最後に、ATIIntelNVIDIA の記事に問題の解決方法が載ってないか調べてください。

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

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

    • デフォルトのターゲットを 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 サーバーは何も知らせません。

    Rootless Xorg (v1.16)

    バージョン 1.16 から [3]、Xorg は logind を利用して通常ユーザーの権限で動作させることが出来るようになっています。このために必要なのは:

    • systemd; 複数のインスタンスを扱えるバージョン216以降
    • xinit で X を起動; ディスプレイマネージャはサポートされていません
    • プロプライエタリのディスプレイドライバにおける KMS 実装は自動的に検出できないため /etc/X11/Xwrapper.configneeds_root_rights = no を手動で設定する必要があります

    以上の条件を満たさない場合、/etc/X11/Xwrapper.config で root 権限を有効にしてください:

    needs_root_rights = yes
    

    Systemd/ユーザー#systemd のユーザーサービスとしての Xorg も参照。

    リダイレクトが機能しない

    ユーザーの Xorg ログが ~/.local/share/X11/Xorg.log に保存されるとき、X セッションからの出力はログに含まれません。リダイレクトを有効にするには、-keeptty フラグを使って X を起動してください:

    exec startx -- -keeptty -nolisten tcp > ~/.xorg.log 2>&1
    

    もしくは /etc/X11/xinit/xserverrc~/.xserverrc にコピーして、-keeptty を追記して下さい。[4] を参照。