「Xorg」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
 
(7人の利用者による、間の87版が非表示)
1行目: 1行目:
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
[[Category:グラフィック]]
 
[[cs:Xorg]]
 
[[da:Xorg]]
 
 
[[de:X]]
 
[[de:X]]
[[el:Xorg]]
 
 
[[en:Xorg]]
 
[[en:Xorg]]
[[es:Xorg]]
 
 
[[fr:Xorg]]
 
[[fr:Xorg]]
[[it:Xorg]]
 
[[nl:Xorg]]
 
[[pl:Xorg]]
 
 
[[pt:Xorg]]
 
[[pt:Xorg]]
[[ro:Xorg]]
 
 
[[ru:Xorg]]
 
[[ru:Xorg]]
[[tr:X Sunucusu]]
+
[[uk:Xorg]]
[[zh-CN:Xorg]]
+
[[zh-hans:Xorg]]
[[zh-TW:Xorg]]
 
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|ログイン時に X を起動}}
 
 
{{Related|自動起動}}
 
{{Related|自動起動}}
 
{{Related|ディスプレイマネージャ}}
 
{{Related|ディスプレイマネージャ}}
26行目: 15行目:
 
{{Related|デスクトップ環境}}
 
{{Related|デスクトップ環境}}
 
{{Related|Wayland}}
 
{{Related|Wayland}}
{{Related|Mir}}
+
{{Related|xinit}}
{{Related|xinitrc}}
+
{{Related|xrandr}}
  +
{{Related|XDMCP}}
 
{{Related articles end}}
 
{{Related articles end}}
http://www.x.org/wiki/ より:
+
https://www.x.org/wiki/ より:
:''X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。''
+
:''X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。X.Org Foundation は理事会がこの取り組みを提供し、メンバーがこの作業を主導する教育非営利法人です。''
   
'''Xorg''' は X window system バジョン 11 オーンソスのリファレンス実装です。Linux ユーザー中で Xorg が一番ポピュラーな選択となってから、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の [[Wikipedia:ja:X.Org Server|Xorg]] や [http://www.x.org/wiki/ Xorg のウェブサイト] を見て下さい。
+
'''Xorg''' (一般的に単に '''X''' と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスレイサーバーです。普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の [[Wikipedia:ja:X.Org Server|Xorg]] や [https://www.x.org/wiki/ Xorg のウェブサイト] を見て下さい。
  +
  +
Xorg の代替かつ後継については [[Wayland]] を参照してください。
   
 
==インストール==
 
==インストール==
   
X サーバーを[[pacman|インストール]]するに、まず[[公式リポジトリ]]の {{Pkg|xorg-server}} パッケージインストールする必要があります。
+
Xorg は {{Pkg|xorg-server}} パッケージで[[インストール]]できます。
   
また、設定作業などに必要なパッケージのいくつかが {{Pkg|xorg-server-utils}} メタパッケに入っており、それぞれ関連するセクションで説明しています。他の有用なパッケージは {{Grp|xorg-apps}} グループの中にあります。
+
また、設定作業などに必要なパッケージのいくつかが {{Grp|xorg-apps}} グルに入っており、それぞれ関連するセクションで説明しています。
   
  +
{{Grp|xorg}} グループも利用できます。このグループには Xorg サーバのパッケージや {{Grp|xorg-apps}} のパッケージ、フォントが含まれています。
{{Tip|デフォルトの X 環境はほとんど裸の状態です。基本的に、X を使うにあたって[[ウィンドウマネージャ]]か[[デスクトップ環境]]をインストールすることになるでしょう。}}
 
   
 
=== ドライバーのインストール ===
 
=== ドライバーのインストール ===
   
Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、OpenGL や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。
+
Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、[[OpenGL]] や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。
   
 
まず、あなたのカードを確認してください:
 
まず、あなたのカードを確認してください:
54行目: 46行目:
 
$ pacman -Ss xf86-video
 
$ pacman -Ss xf86-video
   
  +
Xorg はインストールされているドライバーを自動的に検索します:
デフォルトのグラフィックドライバーは ''vesa'' ({{Pkg|xf86-video-vesa}} パッケージ) で、ほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。より良いドライバが見つからなかったり、ロードできなかった場合、Xorg は ''vesa'' ドライバに戻ります。
 
   
  +
* 使用しているハードウェアに合うドライバー(以下に記載)がインストールされていない場合、Xorg はまず最初に ''fbdev'' ({{pkg|xf86-video-fbdev}}) を検索します。
ビデオアクセラレーション機能を動かしたり、GPU が設定できる全てのモードを表示するには、正しいビデオドライバが必要です:
 
  +
* ''fbdev'' が存在しなかった場合、次に汎用ドライバーである ''vesa'' ({{pkg|xf86-video-vesa}}) を検索します。''vesa'' はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。
  +
* ''vesa'' も見つからない場合、Xorg は[[Kernel Mode Setting|カーネルモードセッティング]]にフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます ({{man|4|modesetting}} を参照)。
   
  +
ビデオアクセラレーション機能を動かしたり、GPU が設定できる全てのモードを表示するには、適切なビデオドライバが必要です:
{{Note|オンボードのグラフィックカードとディスクリート GPU が混載されていて、NVIDIA Optimus が有効になっているノートパソコンを使用する場合は、[[Bumblebee]] を見て下さい。}}
 
   
 
{| class="wikitable" style="text-align:center"
 
{| class="wikitable" style="text-align:center"
 
|-
 
|-
  +
! ブランド
! ブランド !! 種別 !! ドライバ !! OpenGL !! OpenGL ([[Multilib]]) !! ドキュメント
 
  +
! 種類
  +
! ドキュメント
  +
! ドライバ
  +
! OpenGL
  +
! OpenGL ([[multilib]])
  +
! Vulkan
  +
! Vulkan ([[multilib]])
 
|-
 
|-
  +
| rowspan="3" | AMD (旧 ATI)
| rowspan="3" bgcolor=#f7e3e3| '''<span style="color: #e62c2c;">&nbsp;AMD/ATI&nbsp;</span>''' || rowspan="2" | オープンソース || {{Pkg|xf86-video-amdgpu}} || rowspan="2" | {{Pkg|mesa-libgl}} || rowspan="2" | {{Pkg|lib32-mesa-libgl}} || [[AMDGPU]]
 
  +
| rowspan="2" | オープンソース
  +
| [[AMDGPU]]
  +
| {{Pkg|xf86-video-amdgpu}}
  +
| rowspan="2" | {{Pkg|mesa}}
  +
| rowspan="2" | {{Pkg|lib32-mesa}}
  +
| {{Pkg|vulkan-radeon}} / {{Pkg|amdvlk}}<sup>4</sup>
  +
| {{Pkg|lib32-vulkan-radeon}} / {{Pkg|lib32-amdvlk}}<sup>4</sup>
 
|-
 
|-
| {{Pkg|xf86-video-ati}} || [[ATI]]
+
| [[ATI]]
  +
| {{Pkg|xf86-video-ati}}
  +
| colspan="2" | 無し
 
|-
 
|-
| プロプライエタリ || {{AUR|catalyst}} || {{AUR|catalyst-libgl}} || {{AUR|lib32-catalyst-libgl}} || [[AMD Catalyst]]
+
| プロプライエタリ
  +
| [[AMDGPU PRO]]
  +
| {{Pkg|xf86-video-amdgpu}}
  +
| {{AUR|amdgpu-pro-oglp}}
  +
| {{AUR|lib32-amdgpu-pro-oglp}}
  +
| {{AUR|vulkan-amdgpu-pro}}
  +
| {{AUR|lib32-vulkan-amdgpu-pro}}
 
|-
 
|-
  +
| Intel
| bgcolor=#e3ecf7| '''<span style="color: #2a6dc8;">Intel</span>''' || オープンソース || {{Pkg|xf86-video-intel}} || {{Pkg|mesa-libgl}} || {{Pkg|lib32-mesa-libgl}} || [[Intel Graphics]]
 
  +
| オープンソース
  +
| [[Intel graphics]]
  +
| {{Pkg|xf86-video-intel}}<sup>2</sup>
  +
| {{Pkg|mesa}} または {{Pkg|mesa-amber}}<sup>3</sup>
  +
| {{Pkg|lib32-mesa}}
  +
| {{Pkg|vulkan-intel}}
  +
| {{Pkg|lib32-vulkan-intel}}
 
|-
 
|-
  +
| rowspan="4" | NVIDIA
| rowspan="4" bgcolor=#e3f7e6| '''<span style="color: #409044;">Nvidia</span>'''
 
  +
| オープンソース
| オープンソース || {{Pkg|xf86-video-nouveau}} || {{Pkg|mesa-libgl}} || {{Pkg|lib32-mesa-libgl}} || [[Nouveau]]
 
  +
| [[Nouveau]]<sup>1</sup>
  +
| {{Pkg|xf86-video-nouveau}}
  +
| {{Pkg|mesa}}
  +
| {{Pkg|lib32-mesa}}
  +
| {{Pkg|vulkan-nouveau}}
  +
| {{Pkg|lib32-vulkan-nouveau}}
 
|-
 
|-
| rowspan="3"| プロプライエタリ || {{Pkg|nvidia}} || {{Pkg|nvidia-libgl}} || {{Pkg|lib32-nvidia-libgl}} || rowspan="3" | [[NVIDIA]]
+
| rowspan="3" | プロプライエタリ
  +
| rowspan="3" | [[NVIDIA]]<sup>1</sup>
  +
| {{Pkg|nvidia}}
  +
| {{Pkg|nvidia-utils}}
  +
| {{Pkg|lib32-nvidia-utils}}
  +
| {{Pkg|nvidia-utils}}
  +
| {{Pkg|lib32-nvidia-utils}}
 
|-
 
|-
  +
| {{AUR|nvidia-470xx-dkms}}
| {{Pkg|nvidia-340xx}} || {{Pkg|nvidia-340xx-libgl}} || {{Pkg|lib32-nvidia-340xx-libgl}}
 
  +
| {{AUR|nvidia-470xx-utils}}
  +
| {{AUR|lib32-nvidia-470xx-utils}}
  +
| {{AUR|nvidia-470xx-utils}}
  +
| {{AUR|lib32-nvidia-470xx-utils}}
 
|-
 
|-
  +
| {{AUR|nvidia-390xx-dkms}}
| {{Pkg|nvidia-304xx}} || {{Pkg|nvidia-304xx-libgl}} || {{Pkg|lib32-nvidia-304xx-libgl}}
 
  +
| {{AUR|nvidia-390xx-utils}}
|-
 
  +
| {{AUR|lib32-nvidia-390xx-utils}}
| bgcolor=#f7f2e3| '''<span style="color: #9a4e16;">VIA</span>'''
 
  +
| {{AUR|nvidia-390xx-utils}}
| オープンソース || {{Pkg|xf86-video-openchrome}} || colspan="2" | – || [[Via|VIA]]
 
  +
| {{AUR|lib32-nvidia-390xx-utils}}
 
|}
 
|}
  +
  +
# 統合 GPU と専用 GPU を組み合わせて使用する NVIDIA Optimus 対応のノート PC に関しては [[NVIDIA Optimus]] を参照してください。
  +
# 第4世代及びそれ以降の Intel グラフィックスに関しては、[[Intel graphics#インストール]] で利用可能なドライバを確認してください。
  +
# 古いハードウェア用のクラシック OpenGL (Gallium3D でない) ドライバです (Mesa 22.0 及びそれ以降では、i915 クラシックドライバのサポートが落とされています)。
  +
# {{Pkg|vulkan-radeon}} / {{Pkg|lib32-vulkan-radeon}} は {{Pkg|amdvlk}} / {{Pkg|lib32-amdvlk}} よりも推奨されます ([[AMDGPU#インストール]] を参照)。
   
 
他のビデオドライバーは {{Grp|xorg-drivers}} グループで見つけることができます。
 
他のビデオドライバーは {{Grp|xorg-drivers}} グループで見つけることができます。
   
Xorg はクローズドソースのドライバーがなくとも問題なく動作するはずです。基本的に、ゲームのための 3D 支援レンダリングや、デュアルスクリーン、TV 出力など高度な機能を使う場合にのみプロプライエタリのドライバが必要になります。
+
Xorg はクローズドソースのドライバーがなくとも問題なく動作するはずです。基本的に、ゲームのための 3D 支援レンダリングや、デュアルスクリーン、TV 出力など高度な機能を使う場合にのみプロプライエタリのドライバが必要になります。オープンソースのドライバーでサポートされない最近の GPU (特に NVIDIA GPU)は例外です。
   
==起動==
+
==== AMD ====
=== ディスプレイマネージャ ===
 
   
  +
モデル名 (例: ''Radeon RX 6800'') から GPU アーキテクチャ (例: ''RDNA 2'') への変換は、[[Wikipedia:List of AMD graphics processing units#Features overview]] を見てください。
X を起動する楽な方法は[[ディスプレイマネージャ]]を使うことです。ただし、他のアプリケーションや依存パッケージが必要になります。
 
   
  +
{| class="wikitable" style="text-align:center"
=== 手動 ===
 
  +
|-
ディスプレイマネージャを使わずに X サーバーを起動したい場合、[[Xinitrc]] を見て下さい。
 
  +
! GPU アーキテクチャ !! オープンソースドライバ !! プロプライエタリドライバ
  +
|-
  +
| RDNA 及びそれ以降 || rowspan=2 | [[AMDGPU]] || rowspan=2 | [[AMDGPU PRO]]
  +
|-
  +
| GCN 3 及びそれ以降
  +
|-
  +
| GCN 1 と 2 || [[AMDGPU]]<sup>1</sup> / [[ATI]] || ''利用不可''
  +
|-
  +
| TeraScale<br/>及びそれ以前 || [[ATI]] || ''利用不可''
  +
|-
  +
|}
  +
  +
# 試験的。
  +
  +
== 起動 ==
  +
  +
{{man|1|Xorg}} コマンドを直接実行することは通常ありません。代わりに、[[ディスプレイマネージャ]] か [[xinit]] を用いて X サーバを起動します。
  +
  +
{{Tip| たいてい、X の機能を補完するために [[ウィンドウマネージャ]] や [[デスクトップ環境]] をインストールすることになるでしょう。}}
   
 
== 設定 ==
 
== 設定 ==
  +
 
{{Note|Arch はデフォルトの設定ファイルを {{ic|/usr/share/X11/xorg.conf.d}} に配置しており、ほとんどの場合、追加の設定は必要ありません。}}
 
{{Note|Arch はデフォルトの設定ファイルを {{ic|/usr/share/X11/xorg.conf.d}} に配置しており、ほとんどの場合、追加の設定は必要ありません。}}
   
Xorg は初期設定に {{ic|xorg.conf}} という名前の設定ファイルと {{ic|.conf}} が末尾につくファイルを使います: これらのファイルが使われるフォルダの一覧 [http://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml] を見たり {{ic|man xorg.conf}} を実行ることで(利用できるオプションの説明と一緒に)調べることがでます
+
Xorg は初期設定に {{ic|xorg.conf}} という名前の設定ファイルと {{ic|.conf}} が末尾につくファイルを使います: これらのファイルが検索されるフォルダの完全なリストは {{man|5|xorg.conf}} で見られま(利用可能なすべてのオプションの詳細な説明)
   
 
=== .conf ファイルを使う ===
 
=== .conf ファイルを使う ===
  +
{{ic|/etc/X11/xorg.conf.d/}} ディレクトリにはユーザー定義の設定を保存します。あなたは自由に設定ファイルを {{ic|/etc/X11/xorg.conf.d/}} に追加することができますが、ファイル名には {{ic|XX-}} (XX は数字です) を先頭につけ拡張子は {{ic|.conf}} である必要があります (例えば 10 は 20 より早く読み込まれます)。これらのファイルは X サーバーの起動時にパースされ従来の {{ic|xorg.conf}} 設定ファイルの一部として扱われます。基本的に X サーバーは設定ファイルの集合を {{ic|xorg.conf}} の最後のエントリとしてひとつの大きなファイルとして扱います。
 
  +
{{ic|/etc/X11/xorg.conf.d/}} ディレクトリにはホスト固有の設定を保存します。あなたは自由に設定ファイルをそのディレクトリに追加することができますが、ファイル名には {{ic|.conf}} 拡張子がなければなりません。さらに、これらのファイルは ASCII 順で読み込まれます。これらのファイル名は {{ic|XX-}} (2桁の整数とハイフン)で始めるのが慣例です(例えば 10 は 20 よりも早く読み込まれます)。これらのファイルは X サーバーの起動時にパースされオリジナルの {{ic|xorg.conf}} 設定ファイルの一部として扱われます。設定が競合した場合は、一番最後のファイルが処理されることに注意してください。これにより、最も一般的な設定ファイルは名前順で一番最初にあるべきです。{{ic|xorg.conf}} ファイル内の設定エントリは一番最後に処理されます。
  +
  +
設定オプションの例は [[Fedora:Input device configuration#xorg.conf.d]] を見てください。
   
 
=== xorg.conf を使う ===
 
=== xorg.conf を使う ===
  +
 
{{ic|/etc/X11/xorg.conf}} や {{ic|/etc/xorg.conf}} で Xorg を設定することもできます。{{ic|xorg.conf}} のスケルトンを生成するには
 
{{ic|/etc/X11/xorg.conf}} や {{ic|/etc/xorg.conf}} で Xorg を設定することもできます。{{ic|xorg.conf}} のスケルトンを生成するには
  +
 
# Xorg :0 -configure
 
# Xorg :0 -configure
   
113行目: 182行目:
 
{{Tip|既に X サーバーを動作させている場合は、別のディスプレイを使って下さい、例: {{ic|Xorg :2 -configure}}。}}
 
{{Tip|既に X サーバーを動作させている場合は、別のディスプレイを使って下さい、例: {{ic|Xorg :2 -configure}}。}}
   
もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは [[NVIDIA]] や [[AMD Catalyst]] などあなたの使っているビデオカードの記事を見て下さい。
+
もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは [[NVIDIA]] や [[AMDGPU PRO]] などあなたの使っているビデオカードの記事を見て下さい。
   
 
{{Note|設定ファイルは大文字・小文字を区別しません、また “_” は無視されます。(Option など) 設定ファイル内のほとんどの文字列も大文字・小文字・空白・“_” を区別しません。}}
 
{{Note|設定ファイルは大文字・小文字を区別しません、また “_” は無視されます。(Option など) 設定ファイル内のほとんどの文字列も大文字・小文字・空白・“_” を区別しません。}}
   
=== 設定サンプル ===
+
== 入力デバイス ==
   
  +
入力デバイスのドライバーについては、X サーバーはデフォルトで libinput ドライバー ({{Pkg|xf86-input-libinput}}) を使用しますが、{{Pkg|xf86-input-evdev}} と関連するドライバーも使用できます [https://www.archlinux.jp/news/xorg-server-1191-is-now-in-extra/]。
* {{ic|xorg.conf}}
 
: [http://pastebin.com/raw.php?i=EuSKahkn Sample 1]
 
: {{Note|Sample configuration file using {{ic|/etc/X11/xorg.conf.d/10-evdev.conf}} for the keyboard layouts. Note the commented out {{ic|InputDevice}} sections.}}
 
* {{ic|/etc/X11/xorg.conf.d/10-evdev.conf}}
 
: [http://pastebin.com/raw.php?i=4mPY35Mw Sample 1]
 
: {{Note|This is the {{ic|10-evdev.conf}} file that goes with the xorg.conf sample 1.}}
 
* {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}
 
:# [http://pastebin.com/raw.php?i=fJv8EXGb VMware]
 
:# [http://pastebin.com/raw.php?i=NRz7v0Kn KVM]
 
:# [https://gist.github.com/daemox/6325050 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]] があなたのハードウェアを検知し、{{ic|/usr/share/X11/xorg.conf.d/}} ディレクトリに入っているデフォルト設定ファイル {{ic|10-evdev.conf}} と {{ic|40-libinput.conf}} によって、evdev と [[libinput]] がほとんど全てのデバイスのホットプラグ・インプットドライバーとして動作します。[[Udev]] は {{Pkg|systemd}} によって提供されています。
==入力デバイス==
 
   
  +
X サーバーの起動後、ログファイルを確認することで、どちらのドライバーがデバイスによってホットプラグされているか確認できます (ログファイルの名前は違っているかもしれません):
[[Udev]] があなたのハードウェアを検知し、[[Wikipedia:evdev|evdev]] がほとんど全てのデバイスのホットプラグ・インプットドライバとして動作します。[[Udev]] は {{Pkg|systemd}} によって提供され、{{Pkg|xf86-input-evdev}} は {{Pkg|xorg-server}} から必要とされます。従ってこれらのパッケージを別個にインストールする必要はありません。
 
  +
$ grep -e "Using input driver " Xorg.0.log
   
  +
evdev や libinput があなたの持っているデバイスをサポートしていないときは、必要なドライバーを {{Grp|xorg-drivers}} グループからインストールしてください。
{{ic|/etc/X11/xorg.conf.d}} ディレクトリには {{ic|10-evdev.conf}} が必要です。キーボード・マウス・タッチパッド・タッチスクリーンを管理します。
 
   
  +
ホットプラグの動作については[[#設定]]を見てください。
evdev があなたの持っているデバイスをサポートしていないときは、必要なドライバーを {{Grp|xorg-drivers}} グループからインストールしてください。evdev と同じように、[[libinput]] ({{Pkg|xf86-input-libinput}}) も様々なタイプのデバイスをサポートしているドライバーです。
 
  +
  +
より詳細な手順については、[[libinput]] の記事や以下に述べる記事、より多くの例は [[Fedora:Input device configuration]] を見てください。
  +
  +
=== 入力の識別 ===
  +
  +
[[キーボード入力#Xorg でキーコードを確認する]] を見てください。
   
 
=== マウスのアクセラレーション ===
 
=== マウスのアクセラレーション ===
   
次のページを参照してください: [[マウスのアクセラレーション]]
+
[[マウスのアクセラレーション]] を見てください。
   
 
=== 特殊なマウスボタン ===
 
=== 特殊なマウスボタン ===
   
次のページを参照してください: [[全てのマウスボタンを動作させる]]
+
[[全てのマウスボタンを動作させる]] を見てください。
   
 
=== タッチパッド ===
 
=== タッチパッド ===
   
  +
[[libinput]] または [[Synaptics タッチパッド]] を見てください。
次のページを参照してください: [[Touchpad Synaptics]] または [[libinput]]
 
   
 
=== タッチスクリーン ===
 
=== タッチスクリーン ===
   
次のページを参照してください: [[タッチスクリーン]]
+
[[タッチスクリーン]] を見てください。
   
 
=== キーボードの設定 ===
 
=== キーボードの設定 ===
   
次のページを参照してください: [[Xorg でのキーボード設定]]
+
[[Xorg でのキーボード設定]] を見てください。
   
  +
== モニターの設定 ==
===InputClass===
 
   
  +
=== 手動設定 ===
'''参照: https://fedoraproject.org/wiki/Input_device_configuration'''
 
   
  +
{{Note|
InputClass は、ひとつのデバイスではなく「あるクラス」のデバイス(ホットプラグのデバイスを含む)に適用される新しいタイプの設定セクションです。InputClass セクションの適用範囲は指定された ''match'' によって決まります &ndash; 入力デバイスに適用するには、全ての match をデバイスにあてがう必要があります。例えば InputClass セクションは以下のように使われます:
 
  +
* Xorg の新しいバージョンは自動設定されます。なので、手動設定は必要ないはずです。
 
  +
* Xorg がモニタを検出できない場合や自動設定をしたくない場合、設定ファイルを使用することができます。これが必要になる一般的なケースとしては、モニタ無しで起動し、Xorg が自動的に起動するヘッドレスなシステムに[[仮想端末に自動ログイン|仮想コンソール]]や[[ディスプレイマネージャ]]を使用して[[xinit#ログイン時に X を自動起動|ログイン]]する場合です。
{{bc|
 
Section "InputClass"
 
Identifier "touchpad catchall"
 
MatchIsTouchpad "on"
 
Driver "synaptics"
 
EndSection
 
 
}}
 
}}
   
  +
ヘッドレスな環境においては、{{pkg|xf86-video-dummy}} ドライバが必須です; それを[[インストール]]し、例えば以下のような設定ファイルを作成してください:
次のスニペットも理解するのに役立つかもしれません:
 
{{bc|
 
Section "InputClass"
 
Identifier "evdev touchpad catchall"
 
MatchIsTouchpad "on"
 
MatchDevicePath "/dev/input/event*"
 
Driver "evdev"
 
EndSection
 
}}
 
   
  +
{{hc|/etc/X11/xorg.conf.d/10-headless.conf|
このスニペットが {{ic|xorg.conf}} や xorg.conf.d に存在する場合、システム上の全てのタッチパッドに synaptics ドライバが割り当てられます。優先順位 (xorg.conf.d の英数字の順番) によってドライバーの設定は前の設定を上書きすることに注意してください &ndash; 一般的なクラスほど、初めの方に置くべきです。{{Pkg|xorg-server}} パッケージによって提供されるデフォルトのスニペットは {{ic|00-evdev.conf}} であり、全ての入力デバイスに evdev ドライバを割り当てます。
 
 
match オプションによってセクションを適用するのはどのデバイスなのか指定します。全ての match 行を満たしたデバイスだけに、セクションが適用されます。使うことができる match は以下の通り:
 
* {{ic|MatchIsPointer}}, {{ic|MatchIsKeyboard}}, {{ic|MatchIsTouchpad}}, {{ic|MatchIsTouchscreen}}, {{ic|MatchIsJoystick}} &ndash; デバイスグループに適用するための boolean オプション。
 
* {{ic|MatchProduct "foo&#124;bar"}}: 製品の名前に "foo" か "bar" が含まれているデバイスにマッチ
 
* {{ic|MatchVendor "foo&#124;bar&#124;baz"}}: 製造者(ベンダー)名に "foo" や "bar"、"baz" が含まれているデバイスにマッチ
 
* {{ic|MatchDevicePath "/dev/input/event*"}}: デバイスパスが一致しているデバイスにマッチ (利用できるパターンは fnmatch(3) を見て下さい)
 
* {{ic|MatchTag "foo&#124;bar"}}: "foo" や "bar" といったタグが付けられたデバイスにマッチ。タグはバックエンドの設定 &ndash; udev によって指定され特別な設定が必要なデバイスをラベリングします。
 
 
ユーザー定義設定のためのセクションの例:
 
 
{{bc|
 
Section "InputClass"
 
Identifier "lasermouse slowdown"
 
MatchIsPointer "on"
 
MatchProduct "Lasermouse"
 
MatchVendor "LaserMouse Inc."
 
Option "ConstantDeceleration" 20
 
EndSection
 
}}
 
 
このセクションは、"Lasermouse Inc." によって作られた "Lasermouse" という名前を持つポインティングデバイスにマッチし、デバイスには 20 の値の constant deceleration が適用されます。20倍マウスの速度が遅くなります。
 
 
X サーバーによって扱って欲しくないデバイスがあるかもしれません。設定によってそうしたデバイスを無視させることができます:
 
 
{{bc|
 
Section "InputClass"
 
Identifier "no need for accelerometers in X"
 
MatchProduct "accelerometer"
 
Option "Ignore" "on"
 
EndSection
 
}}
 
 
====設定例====
 
 
以下のサブセクションでは一般的に使われる設定オプションのための設定例を記述しています。あなたが GNOME や KDE などのデスクトップ環境を使っている場合、xorg.conf に設定したオプションはログイン時にユーザー定義オプションによって上書きされてしまう''可能性があります''。
 
 
=====例: (トラックポイント用の) ホイールエミュレーション=====
 
 
トラックポイントのある PC (例: Thinkpad) を使っている場合、以下を {{ic|xorg.conf}} に追加することでミドルボタンを使ってマウスホイールをエミュレートできます:
 
 
{{bc|
 
Section "InputClass"
 
Identifier "Wheel Emulation"
 
MatchIsPointer "on"
 
MatchProduct "TrackPoint"
 
Option "EmulateWheelButton" "2"
 
Option "EmulateWheel" "on"
 
EndSection
 
}}
 
 
(横スクロールを含む) トラックポイントの完全なサポートをするには以下を使って下さい:
 
{{bc|<nowiki>
 
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
 
</nowiki>}}
 
 
=====例: Tap-to-click=====
 
Tap-to-click は(タッチパッドタブの)マウス設定ダイアログから有効にすることができますが、gdm でタップを有効にする必要があるなら、以下のスニペットを使って下さい:
 
{{bc|
 
Section "InputClass"
 
Identifier "tap-by-default"
 
MatchIsTouchpad "on"
 
Option "TapButton1" "1"
 
EndSection
 
}}
 
 
=====例: Acer 5920G ラップトップのキーボードレイアウト・モデル=====
 
 
キーボードモデルやレイアウトは {{ic|/etc/X11/xorg.conf.d/keyboard.conf}} ファイルや同じディレクトリの他の .conf ファイルで設定できます。
 
* {{ic|MatchIsKeyboard "yes"}}: 入力デバイスをキーボードに設定
 
* {{ic|Option "XkbModel" "acer_laptop"}}: キーボードモデルを Acer ラップトップキーボードに設定。{{ic|acer_laptop}} はあなたの使っているキーボードに置き換えられます。
 
* {{ic|Option "XkbLayout" "jp"}}: キーボードレイアウトを日本語に設定。{{ic|jp}} は使いたいレイアウトに変えることができます。
 
* {{ic|Option "XkbVariant" "sundeadkeys"}}: レイアウトのバリアントを Sun dead keys に設定。デフォルトのバリアントを使うなら {{ic|XkbVariant}} オプションは省略できます。
 
 
キーボードレイアウト・モデルのリストは {{ic|/usr/share/X11/xkb/rules/base.lst}} にあります。
 
 
{{bc|
 
Section "InputClass"
 
Identifier "Keyboard Defaults"
 
MatchIsKeyboard "yes"
 
Option "XkbModel" "acer_laptop"
 
Option "XkbLayout" "jp"
 
Option "XkbVariant" "sundeadkeys"
 
EndSection
 
}}
 
 
=====例: (3ボタンマウス用の) 中ボタンのエミュレーション=====
 
中ボタンのエミュレーションによって、右・左ボタンを一緒に押すことで3つ目のボタンのイベントを発動させるようにすることができます。これは X でのコピーアンドペーストに役に立つでしょう。
 
 
{{ic|/etc/X11/xorg.conf.d/10-evdev.conf}} の mouse input catchall を修正します
 
{{bc|
 
Section "InputClass"
 
Identifier "evdev pointer catchall"
 
MatchIsPointer "on"
 
MatchDevicePath "/dev/input/event*"
 
Driver "evdev"
 
Option "Emulate3Buttons" "True"
 
Option "Emulate3Timeout" "25"
 
EndSection
 
}}
 
 
{{ic|Option "Emulate3Buttons" "True"}} オプションで3ボタンのエミュレートを有効にして {{ic|Option "Emulate3Timeout" "25"}} オプションで中ボタンのクリックとして認識する時間を 25ms としています。
 
 
==モニターの設定==
 
 
===はじめに===
 
 
{{Note|新しいバージョンの Xorg は自動で設定を行います。あなたが設定をする必要はありません。}}
 
 
まず、{{ic|/etc/X11/xorg.conf.d/10-monitor.conf}} のような、新しい設定ファイルを作成します。
 
 
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|<nowiki>
 
 
Section "Monitor"
 
Section "Monitor"
Identifier "Monitor0"
+
Identifier "dummy_monitor"
  +
HorizSync 28.0-80.0
  +
VertRefresh 48.0-75.0
  +
Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
 
EndSection
 
EndSection
   
 
Section "Device"
 
Section "Device"
Identifier "Device0"
+
Identifier "dummy_card"
  +
VideoRam 256000
Driver "vesa" #Choose the driver used for this monitor
 
  +
Driver "dummy"
 
EndSection
 
EndSection
   
 
Section "Screen"
 
Section "Screen"
  +
Identifier "dummy_screen"
Identifier "Screen0" #Collapse Monitor and Device section to Screen section
 
Device "Device0"
+
Device "dummy_card"
Monitor "Monitor0"
+
Monitor "dummy_monitor"
  +
SubSection "Display"
DefaultDepth 16 #Choose the depth (16||24)
 
SubSection "Display"
+
EndSubSection
Depth 16
 
Modes "1024x768_75.00" #Choose the resolution
 
EndSubSection
 
 
EndSection
 
EndSection
  +
}}
</nowiki>}}
 
 
{{Note|デフォルトでは、Xorg はモニターを検出する必要があり、できなかった場合は起動しません。そのようなときは上記のような設定ファイルを作成して自動検出をさせないことで解決できます。これが必要な場合としては、モニターがない状態で起動して Xorg を自動的に起動するヘッドレスシステムが考えられます。[[ログイン時に X を起動|ログイン]]時に自動的に起動する方法は[[仮想端末に自動ログイン|仮想端末]]や[[ディスプレイマネージャ]]を使います。}}
 
   
===マルチモニター===
+
=== マルチモニター ===
   
 
一般的な情報は[[マルチディスプレイ]]を見て下さい。
 
一般的な情報は[[マルチディスプレイ]]を見て下さい。
   
  +
==== 複数のグラフィックカード ====
GPU 固有の手順は以下を参照してください:
 
* [[NVIDIA#マルチモニター]]
 
* [[Nouveau#デュアルディスプレイ]]
 
* [[AMD Catalyst#デュアルディスプレイ (デュアルヘッド / デュアルスクリーン / Xinerama)]]
 
* [[ATI#マルチモニターの設定]]
 
   
  +
利用するドライバを正しく定めてグラフィックカードのバス ID を(10進数表記で)入力する必要があります。
====複数のグラフィックカード====
 
   
利用するドライバを正しく定めてグラフィックカードのバス ID を入力する必要があります。
 
 
{{bc|
 
{{bc|
 
Section "Device"
 
Section "Device"
 
Identifier "Screen0"
 
Identifier "Screen0"
Driver "nouveau"
+
Driver "intel"
BusID "PCI:0:12:0"
+
BusID "PCI:0:2:0"
 
EndSection
 
EndSection
   
 
Section "Device"
 
Section "Device"
 
Identifier "Screen1"
 
Identifier "Screen1"
Driver "radeon"
+
Driver "nouveau"
 
BusID "PCI:1:0:0"
 
BusID "PCI:1:0:0"
 
EndSection
 
EndSection
 
}}
 
}}
   
バス ID を取得するには:
+
(16進数の)バス ID を取得するには:
   
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<nowiki>
+
{{hc|$ lspci {{!}} grep -e VGA -e 3D|
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)
+
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
  +
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
</nowiki>}}
 
  +
}}
   
この場合バス ID は 1:0:0。
+
この場合バス ID は {{ic|0:2:0}} と {{ic|1:0:0}} となります
   
 
=== 画面サイズと DPI ===
 
=== 画面サイズと DPI ===
   
  +
2009 以降、デフォルトで Xorg は常に DPI を 96 に設定します([https://bugs.freedesktop.org/show_bug.cgi?id=23705] を参照)。適切な DPI を自動検出する変更がバージョン 21.1 で加えられましたが、差し戻されました({{Bug|72661}} を参照)。
X サーバーの DPI は以下の順番で決定されます:
 
# -dpi コマンドラインオプションが一番優先されます。
 
# オプションが使われていない場合、X 設定ファイルの DisplaySize 設定が DPI の設定に使われます。
 
# DisplaySize が設定されていない場合、DDC のモニターサイズ値が DPI の設定に使われます。
 
# DDC がサイズを指定していない場合、75 DPI がデフォルトで使われます。
 
   
  +
X サーバの DPI は {{ic|-dpi}} コマンドラインオプションで設定できます。
正しいドット密度 (DPI) を設定するには、ディスプレイのサイズを知る必要があります。(フォントレンダリングなど)細部の設定が必要な場合、適切な DPI の設定は特に重要です。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。DPI を設定するために、Xorg サーバーはグラフィックカードを通して [[wikipedia:ja:VESA Display Data Channel|DDC]] によってモニターの物理的な画面サイズを自動検出します。<s>When the Xorg server knows the physical screen size, it will be able to set the correct DPI depending on resolution size.</s>
 
  +
  +
細かなディーテールが要求される場面(フォントレンダリングなど)では、正しい DPI を設定すると役に立つことがあります。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。
   
 
ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには:
 
ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには:
376行目: 302行目:
 
$ xdpyinfo | grep -B2 resolution
 
$ xdpyinfo | grep -B2 resolution
   
dimensions がディスプレイサイズと一致しているかチェックしてください。正しく画面サイズを計算できない時、Xorg サーバは 75x75 DPI をデフォルトにするので、あなたはそれを計算する必要があります
+
寸法がディスプレイサイズと一致しているかチェックしてください。
   
スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます:
+
スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます(実際の xrandr の出力に合わせて Identifier を調整してください):
   
 
{{bc|
 
{{bc|
 
Section "Monitor"
 
Section "Monitor"
Identifier "Monitor0"
+
Identifier "DVI-D-0"
 
DisplaySize 286 179 # ミリメートル単位
 
DisplaySize 286 179 # ミリメートル単位
 
EndSection
 
EndSection
396行目: 322行目:
 
}}
 
}}
   
  +
{{Note|プロプライエタリな NVIDIA ドライバを使用している場合、上記の変更を反映させるために、{{ic|Device}} か {{ic|Screen}} セクションに {{ic|Option "UseEdidDpi" "FALSE"}} を追加する必要がある場合があります。}}
スクリーンの横と縦の物理的な長さがわからないときは(最近は対角線の長さ(インチ数)しかわからないことも多い)、モニターの最大解像度(アスペクト比)か対角線の長さを使って縦と横の長さを計算できます。(ピタゴラスの定理を使って)最大解像度1280x800(もしくはアスペクト比16:10)、13.3インチのスクリーンの場合:
 
  +
  +
スクリーンの横と縦の物理的な長さがわからないときは(最近は対角線の長さ(インチ数)しかわからないことも多い)、モニターの最大解像度(またはアスペクト比)と対角線の長さを使って縦と横の長さを計算できます。ピタゴラスの定理を使って最大解像度1280x800(もしくはアスペクト比16:10)、13.3インチのスクリーンの場合:
   
 
$ echo 'scale=5;sqrt(1280^2+800^2)' | bc # 1509.43698
 
$ echo 'scale=5;sqrt(1280^2+800^2)' | bc # 1509.43698
405行目: 333行目:
 
$ echo 'scale=5;(13.3/1509)*800*25.4' | bc # 179.01920
 
$ echo 'scale=5;(13.3/1509)*800*25.4' | bc # 179.01920
   
  +
{{Note|上記の計算はピクセルアスペクト比が1:1のモニターでは上手く行きますが、モニターによってはアスペクト比が潰されることがあります (例: 16:10 のアスペクト解像度が 16:9 のモニターに適用される)。その場合、画面の大きさを手動で計測する必要があります。}}
{{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 を設定する ====
417行目: 345行目:
 
{{Note|変更はすぐにはアプリケーションに適用されません。再起動する必要があります。}}
 
{{Note|変更はすぐにはアプリケーションに適用されません。再起動する必要があります。}}
   
設定を永続的にするには [[xprofile]] を見て下さい。
+
設定を永続的にするには [[自動起動#Xorg のスタートアップ]] を見て下さい。
   
 
===== プロプライエタリの NVIDIA ドライバー =====
 
===== プロプライエタリの NVIDIA ドライバー =====
   
  +
{{ic|Device}} か {{ic|Screen}} セクション下にオプションを追加することで DPI を手動で設定できます:
使う解像度が一つの場合 DPI を手動で設定することができます ([http://pxcalc.com/ DPI calculator]):
 
   
  +
Option "DPI" "96 x 96"
{{bc|
 
Section "Monitor"
 
Identifier "Monitor0"
 
Option "DPI" "96 x 96"
 
EndSection
 
}}
 
   
  +
===== Manual DPI Setting Caveat =====
{{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} 内で以下のオプションを ('''Device''' セクションに) 追加して DPI を手動設定できます:
 
   
  +
GTK はしばしば、オプションの Xresource {{ic|Xft.dpi}} を通して Xorg サーバの DIP を上書きします。これがあなたの環境で起こっているかどうかを確認するには:
Option "UseEdidDpi" "False"
 
Option "DPI" "96 x 96"
 
   
  +
$ xrdb -query | grep dpi
===DPMS===
 
   
  +
GTK ライブラリのバージョン 3.16 以降、この変数が明示的に設定されていない場合、GTK はこの変数の値を 96 に設定します。GTK アプリがサーバの DPI に従うようにするには、{{ic|Xft.dpi}} の値をサーバのもとと同じに明示的に設定する必要があります。{{ic|Xft.dpi}} リソースは、一部のデスクトップ環境の個人設定で DIP を特定の値に強制的に設定する手段です。[[KDE]] と [[TDE]] がその例です。
DPMS (Display Power Management Signaling) はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で standby にすることができます。[[DPMS]] を見て下さい。
 
  +
  +
=== Display Power Management ===
  +
  +
[[DPMS]] はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で待機状態にすることができます。
   
 
== コンポジット ==
 
== コンポジット ==
   
 
X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: [[Wikipedia:ja:コンポジット型ウィンドウマネージャ]]。
 
X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: [[Wikipedia:ja:コンポジット型ウィンドウマネージャ]]。
  +
  +
ウィンドウマネージャによっては、コンポジットマネージャをインストールしなくてもコンポジットが行われます (例: [[Compiz]], [[Enlightenment]], KWin, Marco, Metacity, Muffin, Mutter, [[Xfwm]])。そうでないウィンドウマネージャの場合、スタンドアロンのコンポジットマネージャを使用します。
   
 
=== コンポジットマネージャ一覧 ===
 
=== コンポジットマネージャ一覧 ===
   
  +
* {{App|[[Picom]]|影、高度なぼかし、フェード機能を搭載した軽量なコンポジタ。Compton からフォークされました。|https://github.com/yshui/picom|{{Pkg|picom}}}}
* {{App|[[Cairo Compmgr|Cairo Composite Manager]]|Cairo ベースのコンポジットマネージャ。|http://cairo-compmgr.tuxfamily.org/|{{AUR|cairo-compmgr-git}}}}
 
* {{App|[[Compiz]]|Aiglx や Xgl、プラグイと CCSM に対応するコンポジットマネージャ。|http://www.compiz.org/|{{AUR|compiz}}}}
+
* {{App|[[Xcompmgr]]|X.org 向けのウィドウ効果ができるコンポジットマネージャ。|https://gitlab.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}}
* {{App|[[Compton]]|X コンポジタ (xcompmgr-dana フォーク)。|https://github.com/chjj/compton|{{Pkg|compton}}}}
+
* {{App|[[Gamescope]]|Valve のマイクロコンポジタ。FSR アップスケーリングなどのゲーム志向の機能が搭載されています。steamos-compositor からフォークされました。|https://github.com/ValveSoftware/gamescope|{{Pkg|gamescope}}}}
  +
* {{App|steamos-compositor-plus|Valve のコンポジタ。いくつかの調整と修正が加えられています。|https://github.com/chimeraos/steamos-compositor-plus|{{AUR|steamos-compositor-plus}}}}
* {{App|[[Xcompmgr]]|X.org 向けのウィンドウ効果ができるコンポジットマネージャ。|http://cgit.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}}
 
* {{App|Unagi|モジュール式のコンポジットマネージャ。C で書かれており XCB をベースにしています。|http://projects.mini-dweeb.org/projects/unagi|{{AUR|unagi}}}}
 
   
  +
==ヒントとテクニック==
==Tips and tricks==
 
===X スタートアップ (startx) 調整===
 
X のオプションを見るには:
 
$ man Xserver
 
   
  +
=== 自動化 ===
以下のオプションは {{ic|/usr/bin/startx}} ファイルの {{ic|"defaultserverargs"}} 変数に追加してください:
 
   
  +
このセクションでは、キーボード/マウスの入力やウィンドウ操作(移動、リサイズ、レイズなど)の自動化のためのユーティリティを挙げています。
* 16ビットフォントの遅延ロードを有効にする:
 
-deferglyphs 16
 
   
  +
{| class="wikitable"
{{Note|1=kdm から X を起動したとき、startx スクリプトが実行されないように思われるかもしれません。X オプションを {{ic|/usr/share/config/kdm/kdmrc}} ファイルの {{ic|"ServerArgsLocal"}} に加える必要があります。}}
 
  +
! ツール !! パッケージ !! マニュアル !! [[Keysym]]<br>インプット !! ウィンドウ<br>操作 !! 備考
  +
|-
  +
! xautomation
  +
| {{Pkg|xautomation}} || {{man|1|xte}} || {{Yes}} || {{No}} || スクリーンスクレイピングツールも同梱。{{ic|F13}} などのシミュレート不可。
  +
|-
  +
! xdo
  +
| {{Pkg|xdo}} || {{man|1|xdo}} || {{No}} || {{Yes}} || ウィンドウの基本的なアクションを行う小さな X ユーティリティ。
  +
|-
  +
! xdotool
  +
| {{Pkg|xdotool}} || {{man|1|xdotool}} || {{Yes}} || {{Yes}} || [https://github.com/jordansissel/xdotool/issues バグが多く]、活発に開発されていない。例: CLI パースが壊れている[https://github.com/jordansissel/xdotool/issues/14#issuecomment-327968132][https://github.com/jordansissel/xdotool/issues/71]
  +
|-
  +
! xvkbd
  +
| {{AUR|xvkbd}} || {{man|1|xvkbd|url=http://t-sato.in.coocan.jp/xvkbd/#option}} || {{Yes}} || {{No}} || Xorg のための仮想キーボード。文字を送るための {{ic|-text}} オプションもあり。
  +
|-
  +
! AutoKey
  +
| {{AUR|autokey-qt}} {{AUR|autokey-gtk}} || [https://github.com/autokey/autokey#documentation ドキュメント] || {{Yes}} || {{Yes}} || 高レベルで強力なマクロとスクリプトユーティリティ。Qt と Gtk の両方のフロントエンドあり。
  +
|}
   
  +
[[クリップボード#ツール]] と [https://venam.nixers.net/blog/unix/2019/01/07/win-automation.html X 自動化ツールの概要] も参照してください。
===ネストした X セッション===
 
  +
  +
=== ネストした X セッション ===
 
他のデスクトップ環境に入れ子になったセッションを起動するには:
 
他のデスクトップ環境に入れ子になったセッションを起動するには:
  +
 
$ /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
   
470行目: 413行目:
   
 
このためには {{Pkg|xorg-server-xnest}} パッケージをインストールする必要があります。
 
このためには {{Pkg|xorg-server-xnest}} パッケージをインストールする必要があります。
  +
  +
X セッションをネストする、よりモダンな方法は [[Xephyr]] です。
  +
  +
=== ウィンドウマネージャ無しでアプリケーションを起動する ===
  +
  +
[[xinit#ウィンドウマネージャを使わずにアプリケーションを起動]] を見てください。
   
 
===リモートで GUI プログラムを実行する===
 
===リモートで GUI プログラムを実行する===
   
次の記事を参照してください: [[Secure Shell#X11 フォワーディング]]
+
次の記事を参照してください: [[OpenSSH#X11 フォワーディング]]
   
 
===必要に応じて入力ソースを有効化・無効化===
 
===必要に応じて入力ソースを有効化・無効化===
{{ic|xinput}} を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。
 
   
  +
''xinput'' を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。
{{Pkg|xorg-xinput}} パッケージから {{ic|xinput}} をインストールしてください: {{bc|# pacman -S xorg-xinput}}
 
  +
  +
{{Pkg|xorg-xinput}} パッケージを[[インストール]]してください。
   
 
無効化したいデバイスの ID を調べて下さい:
 
無効化したいデバイスの ID を調べて下さい:
486行目: 436行目:
 
例えば Lenovo ThinkPad T500 では、出力は以下のようになります:
 
例えば Lenovo ThinkPad T500 では、出力は以下のようになります:
   
{{hc|$ xinput|<nowiki>⎡ Virtual core pointer id=2 [master pointer (3)]
+
{{hc|$ xinput|<nowiki>
Virtual core XTEST pointer id=4 [slave pointer (2)]
+
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)]
+
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)]
+
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)]
Virtual core keyboard id=3 [master keyboard (2)]
+
SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)]
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
+
⎣ Virtual core keyboard id=3 [master keyboard (2)]
Power Button id=6 [slave keyboard (3)]
+
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Video Bus id=7 [slave keyboard (3)]
+
Power Button id=6 [slave keyboard (3)]
Sleep Button id=8 [slave keyboard (3)]
+
Video Bus id=7 [slave keyboard (3)]
AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
+
Sleep Button id=8 [slave keyboard (3)]
ThinkPad Extra Buttons id=12 [slave keyboard (3)]</nowiki>
+
AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
  +
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]
}}
 
  +
</nowiki>}}
   
 
{{ic|xinput --disable ''device_id''}} (''device_id'' は無効化したいデバイスの ID) でデバイスを無効にします。次の例では Synaptics Touchpad の ID 10 を無効にします:
 
{{ic|xinput --disable ''device_id''}} (''device_id'' は無効化したいデバイスの ID) でデバイスを無効にします。次の例では Synaptics Touchpad の ID 10 を無効にします:
506行目: 457行目:
   
 
$ xinput --enable 10
 
$ xinput --enable 10
  +
  +
もしくはデバイス名を使うこともできます。タッチパッドを無効化するコマンドは:
  +
  +
$ xinput --disable "SynPS/2 Synaptics TouchPad"
  +
  +
=== 入力ソースを永続的に無効化する ===
  +
  +
以下の設定スニペットを使用することで、特定の入力ソースを無効化できます:
  +
  +
{{hc|/etc/X11/xorg.conf.d/30-disable-''device''.conf|
  +
Section "InputClass"
  +
Identifier "disable-''device''"
  +
Driver "''driver_name''"
  +
MatchProduct "''device_name''"
  +
Option "Ignore" "True"
  +
EndSection
  +
}}
  +
  +
{{ic|''device''}} は任意の名前です。{{ic|''driver_name''}} は入力ドライバの名前です (例: {{ic|libinput}})。{{ic|''device_name''}} は、適切なデバイスとマッチするように使用されるものです。正しいデバイスを指定する他の方法 ([[libinput]] の {{ic|MatchIsTouchscreen}} など) は、使用している入力ドライバのドキュメントを調べてください。この例では libinput を使用していますが、これはドライバに依存しない方法であり、対象のデバイスがドライバに伝達されないようにします。
   
 
=== ホットキーでアプリケーションを終了 ===
 
=== ホットキーでアプリケーションを終了 ===
  +
 
ホットキーでスクリプトを実行:
 
ホットキーでスクリプトを実行:
   
#!/bin/bash
+
#!/bin/sh
windowFocus=$(xdotool getwindowfocus);
+
windowFocus=$(xdotool getwindowfocus)
pid=$(xprop -id $windowFocus | grep PID);
+
pid=$(xprop -id "$windowFocus" | grep PID)
kill -9 $pid
+
kill -9 "$pid"
   
 
依存パッケージ: {{Pkg|xorg-xprop}}, {{Pkg|xdotool}}
 
依存パッケージ: {{Pkg|xorg-xprop}}, {{Pkg|xdotool}}
   
  +
[[#視覚的にアプリケーションを kill する]] も参照。
==トラブルシューティング==
 
===共通===
 
Xorg が起動しない、画面が真っ暗、キーボードやマウスが動かないなどの場合は、まず以下の手順を踏んで下さい:
 
*ログファイルをチェック: {{ic|cat /var/log/Xorg.0.log}}。[[GDM]] を使っている場合は [[systemd]] の journal をチェックしてください [https://bbs.archlinux.org/viewtopic.php?id=184639]。
 
*キーボード・マウス・タッチパッドなどに問題がおこる場合は [[:カテゴリ:入力デバイス]]内のそれぞれのページを見て下さい。
 
*最後に、[[ATI]]、[[Intel Graphics|Intel]]、[[NVIDIA]] の記事に問題の解決方法が載ってないか調べてください。
 
   
  +
=== TTY へのアクセスをブロック ===
===右 CTRL キーが oss キーマップとして動作しない===
 
root で {{ic|/usr/share/X11/xkb/symbols/fr}} を編集して:
 
{{bc|include "level5(rctrl_switch)"}}
 
 
{{bc|// include "level5(rctrl_switch)"}}
 
に変更して X を再起動するか次を実行してください:
 
   
  +
X から tty へのアクセスをブロックしたい場合、以下を {{ic|xorg.conf}} に追加してください:
setxkbmap fr oss
 
   
  +
{{bc|
==="su" で X クライアントの起動が失敗する===
 
  +
Section "ServerFlags"
  +
Option "DontVTSwitch" "True"
  +
EndSection
  +
}}
   
  +
これは、信頼できないユーザによる、システムのコマンドラインへのアクセスを制限するのに役立ちます。
"Client is not authorized to connect to server" と表示される場合、次の行を {{ic|/etc/pam.d/su}} に追加して下さい:
 
   
  +
=== ユーザーが X を終了できないようにする ===
session optional pam_xauth.so
 
   
  +
X が動作しているときにユーザーから kill されないようにしたい場合、以下を [[#設定|xorg.conf]] に追加してください:
{{ic|pam_xauth}} が正しく環境変数を設定し {{ic|xauth}} キーを管理します。
 
   
  +
{{bc|
===プログラムが "font '(null)'" を要求する===
 
  +
Section "ServerFlags"
  +
Option "DontZap" "True"
  +
EndSection
  +
}}
   
  +
{{Note|{{ic|Ctrl+Alt+Backspace}} ショートカットは、直接 X サーバの kill をトリガーするものではなく、キーマップの {{ic|Terminate_Server}} アクションをトリガーします。通常、これはデフォルトで設定されていません。[[Xorg でのキーボード設定#Ctrl+Alt+Backspace で Xorg を終了する]] を見てください。}}
*エラーメッセージ: "''unable to load font `(null)'.''"
 
  +
いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、{{Pkg|xorg-fonts-75dpi}} と {{Pkg|xorg-fonts-100dpi}} です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、次を実行してください:
 
  +
=== 視覚的にアプリケーションを kill する ===
$ xdpyinfo | grep resolution
 
  +
それからあなたに適している方を使って下さい (XX は 75 か 100 に置き換える):
 
  +
アプリケーションが誤動作したり固まったりした場合、ターミナルから {{ic|kill}} や {{ic|killall}} を使うためにプロセス ID や名前を見つける代わりに、{{Pkg|xorg-xkill}} を使えばアプリケーションをクリックして X サーバとの接続を閉じることができます。多くの既存のアプリケーションは、X サーバとの接続が閉じるとアボートしますが、一部のアプリケーションは実行し続ける可能性があります。
# pacman -S xorg-fonts-XXdpi
 
  +
  +
=== Rootless Xorg ===
  +
  +
Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気な[[ディスプレイマネージャ]] (例: [https://github.com/canonical/lightdm/issues/18 LightDM] や [[XDM]]) はルートレス Xorg をサポートしていないことに注意してください。
  +
  +
Xorg がどのユーザーとして実行されているかは {{ic|1=ps -o user= -C Xorg}} で確認できます。
  +
  +
{{man|1|Xorg.wrap}}, {{man|8|systemd-logind}}, [[Systemd/ユーザー#systemd のユーザーサービスとしての Xorg|systemd のユーザーサービスとしての Xorg]], [[Fedora:Changes/XorgWithoutRootRights]] , {{Bug|41257}} も参照して下さい。
  +
  +
==== xinitrc の使用 ====
  +
  +
[[xinitrc]] を使ってルートレス Xorg を設定するには:
  +
  +
* {{ic|startx}} を直接実行し、{{ic|exec startx}} を使用しないでください。
  +
* [[Xinit#xserverrc|.xserverrc]] を介して {{ic|$XDG_VTNR}} で logind から渡されたパーミッションの仮想コンソールを Xorg が使用することを確認してください。
  +
* 特定のプロプライエタリなディスプレイドライバを使用している場合、[[Kernel Mode Setting|カーネルモードセッティング]]の[https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xfree86/xorg-wrapper.c#L222 自動検出]は失敗します。その場合は、{{ic|/etc/X11/Xwrapper.config}} で {{ic|1=needs_root_rights = no}} を設定する必要があります。
  +
  +
==== GDM の使用 ====
  +
  +
[[カーネルモード設定]]を使用する場合、[[GDM]] はデフォルトで root 権限なしに Xorg を実行します。
  +
  +
==== セッションログのリダイレクト ====
  +
  +
Xorg をルートレスモードで実行すると、Xorg のログは、{{ic|~/.local/share/xorg/Xorg.log}} に保存されます。しかし、Xorg セッションからの stdout と stderr の出力はこのログにリダイレクトされません。リダイレクトを再度有効にするには、Xorg を {{ic|-keeptty}} フラグで起動し、stdout と stderr の出力をファイルにリダイレクトします。
  +
  +
startx -- -keeptty >~/.xorg.log 2>&1
  +
  +
もしくは、{{ic|/etc/X11/xinit/xserverrc}} を {{ic|~/.xserverrc}} にコピーして、{{ic|-keeptty}} を追加します。[https://bbs.archlinux.org/viewtopic.php?pid=1446402#p1446402] を参照してください。
  +
  +
=== root として Xorg を実行 ===
  +
  +
上記の通り、rootless Xorg がデフォルトであるような状況が存在します。rootless Xorg がデフォルトである環境で Xorg を root として実行する必要がある場合、{{man|1|Xorg.wrap}} を設定して root を要求するようにできます。
  +
  +
{{Warning| Xorg を root として実行するとセキュリティ上の問題を引き起こします。さらなる議論については [[#Rootless Xorg]] を見てください。}}
  +
  +
{{hc|1=/etc/X11/Xwrapper.config|2=
  +
needs_root_rights = yes
  +
}}
  +
  +
== トラブルシューティング ==
  +
=== 一般 ===
  +
  +
何か問題が発生したらログを確認してください。ログは {{ic|/var/log/}} または (v1.16 からデフォルトのルートレス X の場合) {{ic|~/.local/share/xorg/}} の中に保存されています。[[GDM]] を使っている場合は [[systemd/ジャーナル|systemd のジャーナル]]をチェックしてください [https://bbs.archlinux.org/viewtopic.php?id=184639]。
  +
  +
ログファイルの名前は {{ic|Xorg.n.log}} という形式を取ります: {{ic|n}} はディスプレイ番号です。デフォルト設定のシングルユーザーマシンの場合は {{ic|Xorg.0.log}} を確認すれば良いですが、他の構成の場合は見るべきログは違うかもしれません。X サーバーのセッションが起動したときのタイムスタンプと X が起動するのに使われたコンソールを確認することで適切なログファイルを見分けられます。例:
  +
  +
{{hc|$ grep -e Log -e tty Xorg.0.log|2=
  +
[ 40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014
  +
[ 40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty
  +
}}
  +
  +
{{Tip|読みやすいタイムスタンプをログに追加するには、{{man|1|tail}} の出力を {{man|1|ts}} ({{Pkg|moreutils}} パッケージに含まれています) にパイプで繋ぐことができます。ただし、コマンドが実行されている時にログに追加された行にしか正しいタイムスタンプは追加されません。例:
  +
$ tail -f ~/.local/share/xorg/Xorg.0.log {{!}} ts
  +
}}
  +
  +
* ログファイルの中に {{ic|(EE)}} で始まる行が存在しないか確認してください。{{ic|(EE)}} はエラーです。また、{{ic|(WW)}} は警告です。
  +
* {{ic|$HOME}} に存在する {{ic|.xinitrc}} ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せず {{ic|Xorg.0.log}} にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。
  +
* 画面がブラックアウト場合、異なる仮想コンソールに切り替えて(例: {{ic|Ctrl+Alt+F6}})、スクリーンの出力無しで root としてログインできます。そうするには、{{ic|root}} と入力し(その後 {{ic|Enter}} を押して)、root のパスワードを入力してください(その後、再び {{ic|Enter}} を押してください)。
  +
  +
: 次のコマンドで X サーバーを終了させることが可能です:
  +
: {{bc|# pkill -x X}}
  +
: 上記のコマンドが機能しない場合、再起動してください:
  +
: {{bc|# reboot}}
  +
  +
* キーボード・マウス・タッチパッドなどに問題がおこる場合は [[:カテゴリ:入力デバイス]] 内のそれぞれのページを見て下さい。
  +
* [[AMDGPU]]、[[Intel Graphics]]、[[NVIDIA]] の記事に問題の解決方法が載ってないか調べてください。
  +
  +
=== 一部またはすべてのユーザで黒画面、No protocol specified、Resource temporarily unavailable ===
  +
  +
X は設定ファイルと一時ファイルをユーザーのホームディレクトリに作成します。あなたのホームディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。
  +
  +
=== Matrox カードで DRI が停止する ===
  +
  +
Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を {{ic|xorg.conf}} のビデオカードの Device セクションに追加してください:
  +
  +
Option "OldDmaInit" "On"
   
===フレームバッファモード問題===
+
=== フレームバッファモード問題 ===
   
以下のログメッセージを残して X の起動が失敗する場合
+
以下のログメッセージを残して X の起動が失敗する場合:
 
{{bc|<nowiki>
 
{{bc|<nowiki>
 
(WW) Falling back to old probe method for fbdev
 
(WW) Falling back to old probe method for fbdev
565行目: 610行目:
 
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices
 
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices
 
</nowiki>}}
 
</nowiki>}}
fbdev をアンインストールしてください:
+
{{pkg|xf86-video-fbdev}} パッケージ[[pacman#パッケージの削除|アンインストール]]してください
# pacman -R xf86-video-fbdev
 
   
===Matrox カードで DRI が停止する===
+
=== プログラムが "font '(null)'" を要求する ===
   
  +
エラーメッセージ: {{ic|unable to load font `(null)'}}
Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を {{ic|xorg.conf}} のビデオカードの Device セクションに追加してください:
 
   
  +
いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、{{Pkg|xorg-fonts-75dpi}} と {{Pkg|xorg-fonts-100dpi}} です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、{{Pkg|xorg-xdpyinfo}} の {{ic|xdpyinfo}} を試してください:
Option "OldDmaInit" "On"
 
   
  +
$ xdpyinfo | grep resolution
===リカバリ: GUI ログインの前に Xorg を無効化===
 
  +
  +
そして、出力された値に最も近い方のフォントを使用してください。
  +
  +
=== リカバリ: GUI ログインの前に Xorg を無効化 ===
   
 
Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、以下の2つの方法でこれを達成できます。
 
Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、以下の2つの方法でこれを達成できます。
586行目: 634行目:
 
* {{ic|~/.xinitrc}} の名前を変更するか {{ic|exec}} 行をコメントアウト。
 
* {{ic|~/.xinitrc}} の名前を変更するか {{ic|exec}} 行をコメントアウト。
   
  +
=== "su" で X クライアントの起動が失敗する ===
===X が起動できない: Keyboard initialization failed===
 
   
  +
"Client is not authorized to connect to server" と表示される場合、次の行を {{ic|/etc/pam.d/su}} と {{ic|/etc/pam.d/su-l}} に追加して下さい:
ハードディスクが満杯の場合、startx は失敗します。{{ic|/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
 
   
  +
session optional pam_xauth.so
root パーティションに空き容量を作ってから X を起動してください。
 
   
  +
{{ic|pam_xauth}} が正しく環境変数を設定し {{ic|xauth}} キーを管理します。
===black screen, No protocol specified.., Resource temporarily unavailable for all or some users===
 
   
  +
=== X が起動できない: Keyboard initialization failed ===
X は設定と一時ファイルをユーザーの home ディレクトリに作成します。あなたの home ディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。
 
   
  +
ファイルシステム(特に {{ic|/tmp}})が満杯の場合、{{ic|startx}} は失敗します。ログファイルには以下のように出力されます:
=== Rootless Xorg (v1.16) ===
 
   
  +
{{bc|
バージョン 1.16 から [https://www.archlinux.org/news/xorg-server-116-is-now-available/]、Xorg は {{ic|logind}} を利用して通常ユーザーの権限で動作させることが出来るようになっています。このために必要なのは:
 
  +
(EE) Error compiling keymap (server-0)
  +
(EE) XKB: Could not compile keymap
  +
(EE) XKB: Failed to load keymap. Loading default keymap instead.
  +
(EE) Error compiling keymap (server-0)
  +
(EE) XKB: Could not 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.
  +
...
  +
}}
   
  +
関連するファイルシステムにいくらかの空き領域を作れば X は起動するでしょう。
* [[systemd]]; 複数のインスタンスを扱えるバージョン216以降
 
* [[xinitrc|xinit]] で X を起動; ディスプレイマネージャはサポートされていません
 
* プロプライエタリのディスプレイドライバにおける [[KMS]] 実装は自動的に検出できないため {{ic|/etc/X11/Xwrapper.config}} で {{ic|1=needs_root_rights = no}} を手動で設定する必要があります [http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/xorg-wrapper.c#n222]
 
   
  +
=== 動画を視聴しようとすると緑色の画面が表示される ===
以上の条件を満たさない場合、{{ic|/etc/X11/Xwrapper.config}} で root 権限を有効にしてください:
 
   
  +
色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。
needs_root_rights = ''yes''
 
   
  +
=== SocketCreateListener エラー ===
[http://manned.org/Xorg.wrap.1 Xorg.wrap(1)] や [[systemd/ユーザー#systemd のユーザーサービスとしての Xorg]] も参照。
 
   
  +
{{ic|SocketCreateListener() failed}} というエラーメッセージを吐いて X が落ちてしまう場合、{{ic|/tmp/.X11-unix}} 内のソケットファイルを削除する必要があります。この問題は、(例えば {{ic|xorg.conf}} を生成するために)前回に Xorg を root として実行した場合に発生することがあります。
==== リダイレクトが機能しない ====
 
   
  +
=== プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key ===
ユーザーの Xorg ログが {{ic|~/.local/share/xorg/Xorg.log}} に保存されるとき、X セッションからの出力はログに含まれません。リダイレクトを有効にするには、{{ic|-keeptty}} フラグを使って X を起動してください:
 
   
  +
このエラーは、現在のユーザのみが X サーバへのアクセス権を持っていることを意味しています。解決策は root にアクセス権を与えることです:
exec startx -- -keeptty -nolisten tcp > ~/.xorg.log 2>&1
 
   
  +
$ xhost +si:localuser:root
もしくは {{ic|/etc/X11/xinit/xserverrc}} を {{ic|~/.xserverrc}} にコピーして、{{ic|-keeptty}} を追記して下さい。[https://bbs.archlinux.org/viewtopic.php?pid=1446402#p1446402] を参照。
 
   
  +
このコマンドは、root 以外のユーザに X へのアクセス権を与える際にも使用できます。
=== 動画を視聴しようとすると緑色の画面が表示される ===
 
   
  +
=== Xorg-server Fatal server error: (EE) AddScreen/ScreenInit ===
色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。
 
  +
  +
Xorg サーバがランダムに動作しなくなり、Xorg のログに以下が出力される場合:
  +
  +
systemd-logind: failed to take device /dev/dri/card0: Operation not permitted
  +
...
  +
AddScreen/ScreenInit failed for driver 0
  +
  +
この問題は [https://github.com/systemd/systemd/issues/13943 systemd issue 13943] により発生する場合があります。[[Kernel Mode Setting#Early KMS start|KMS の早期起動]]をセットアップしてください。
  +
  +
== 参照 ==
  +
  +
* [https://magcius.github.io/xplain/article/ Xplain] - X Window System の詳しい解説
  +
* {{man|1|Xorg}}
  +
* [https://developer.ibm.com/tutorials/l-lpic1-106-1/ Prepare for LPIC-1 exam 2 - topic 106.1: X11] - アーキテクチャ、[[#設定]]、[[デスクトップ環境]]、リモートでの使用、[[Wayland]] に関して簡単に説明しています。
  +
* {{man|5|xorg.conf}}
  +
* [[Gentoo:Xorg/Guide/ja#設定]]
  +
  +
{{TranslationStatus|Xorg|2024-07-04|807409}}

2024年7月4日 (木) 23:56時点における最新版

関連記事

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

X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。X.Org Foundation は理事会がこの取り組みを提供し、メンバーがこの作業を主導する教育非営利法人です。

Xorg (一般的には単に X と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。その普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の XorgXorg のウェブサイト を見て下さい。

Xorg の代替かつ後継については Wayland を参照してください。

目次

インストール

Xorg は xorg-server パッケージでインストールできます。

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

xorg グループも利用できます。このグループには Xorg サーバのパッケージや xorg-apps のパッケージ、フォントが含まれています。

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

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

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

$ lspci | grep -e VGA -e 3D

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

$ pacman -Ss xf86-video

Xorg はインストールされているドライバーを自動的に検索します:

  • 使用しているハードウェアに合うドライバー(以下に記載)がインストールされていない場合、Xorg はまず最初に fbdev (xf86-video-fbdev) を検索します。
  • fbdev が存在しなかった場合、次に汎用ドライバーである vesa (xf86-video-vesa) を検索します。vesa はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。
  • vesa も見つからない場合、Xorg はカーネルモードセッティングにフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます (modesetting(4) を参照)。

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

ブランド 種類 ドキュメント ドライバ OpenGL OpenGL (multilib) Vulkan Vulkan (multilib)
AMD (旧 ATI) オープンソース AMDGPU xf86-video-amdgpu mesa lib32-mesa vulkan-radeon / amdvlk4 lib32-vulkan-radeon / lib32-amdvlk4
ATI xf86-video-ati 無し
プロプライエタリ AMDGPU PRO xf86-video-amdgpu amdgpu-pro-oglpAUR lib32-amdgpu-pro-oglpAUR vulkan-amdgpu-proAUR lib32-vulkan-amdgpu-proAUR
Intel オープンソース Intel graphics xf86-video-intel2 mesa または mesa-amber3 lib32-mesa vulkan-intel lib32-vulkan-intel
NVIDIA オープンソース Nouveau1 xf86-video-nouveau mesa lib32-mesa vulkan-nouveau lib32-vulkan-nouveau
プロプライエタリ NVIDIA1 nvidia nvidia-utils lib32-nvidia-utils nvidia-utils lib32-nvidia-utils
nvidia-470xx-dkmsAUR nvidia-470xx-utilsAUR lib32-nvidia-470xx-utilsAUR nvidia-470xx-utilsAUR lib32-nvidia-470xx-utilsAUR
nvidia-390xx-dkmsAUR nvidia-390xx-utilsAUR lib32-nvidia-390xx-utilsAUR nvidia-390xx-utilsAUR lib32-nvidia-390xx-utilsAUR
  1. 統合 GPU と専用 GPU を組み合わせて使用する NVIDIA Optimus 対応のノート PC に関しては NVIDIA Optimus を参照してください。
  2. 第4世代及びそれ以降の Intel グラフィックスに関しては、Intel graphics#インストール で利用可能なドライバを確認してください。
  3. 古いハードウェア用のクラシック OpenGL (Gallium3D でない) ドライバです (Mesa 22.0 及びそれ以降では、i915 クラシックドライバのサポートが落とされています)。
  4. vulkan-radeon / lib32-vulkan-radeonamdvlk / lib32-amdvlk よりも推奨されます (AMDGPU#インストール を参照)。

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

Xorg はクローズドソースのドライバーがなくとも問題なく動作するはずです。基本的に、ゲームのための 3D 支援レンダリングや、デュアルスクリーン、TV 出力など高度な機能を使う場合にのみプロプライエタリのドライバが必要になります。オープンソースのドライバーでサポートされない最近の GPU (特に NVIDIA GPU)は例外です。

AMD

モデル名 (例: Radeon RX 6800) から GPU アーキテクチャ (例: RDNA 2) への変換は、Wikipedia:List of AMD graphics processing units#Features overview を見てください。

GPU アーキテクチャ オープンソースドライバ プロプライエタリドライバ
RDNA 及びそれ以降 AMDGPU AMDGPU PRO
GCN 3 及びそれ以降
GCN 1 と 2 AMDGPU1 / ATI 利用不可
TeraScale
及びそれ以前
ATI 利用不可
  1. 試験的。

起動

Xorg(1) コマンドを直接実行することは通常ありません。代わりに、ディスプレイマネージャxinit を用いて X サーバを起動します。

ヒント: たいてい、X の機能を補完するために ウィンドウマネージャデスクトップ環境 をインストールすることになるでしょう。

設定

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

Xorg は初期設定に xorg.conf という名前の設定ファイルと .conf が末尾につくファイルを使います: これらのファイルが検索されるフォルダの完全なリストは xorg.conf(5) で見られます(利用可能なすべてのオプションの詳細な説明付き)。

.conf ファイルを使う

/etc/X11/xorg.conf.d/ ディレクトリにはホスト固有の設定を保存します。あなたは自由に設定ファイルをそのディレクトリに追加することができますが、ファイル名には .conf 拡張子がなければなりません。さらに、これらのファイルは ASCII 順で読み込まれます。これらのファイル名は XX- (2桁の整数とハイフン)で始めるのが慣例です(例えば 10 は 20 よりも早く読み込まれます)。これらのファイルは X サーバーの起動時にパースされオリジナルの xorg.conf 設定ファイルの一部として扱われます。設定が競合した場合は、一番最後のファイルが処理されることに注意してください。これにより、最も一般的な設定ファイルは名前順で一番最初にあるべきです。xorg.conf ファイル内の設定エントリは一番最後に処理されます。

設定オプションの例は Fedora:Input device configuration#xorg.conf.d を見てください。

xorg.conf を使う

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

# Xorg :0 -configure

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

ヒント: 既に X サーバーを動作させている場合は、別のディスプレイを使って下さい、例: Xorg :2 -configure

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

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

入力デバイス

入力デバイスのドライバーについては、X サーバーはデフォルトで libinput ドライバー (xf86-input-libinput) を使用しますが、xf86-input-evdev と関連するドライバーも使用できます [1]

Udev があなたのハードウェアを検知し、/usr/share/X11/xorg.conf.d/ ディレクトリに入っているデフォルト設定ファイル 10-evdev.conf40-libinput.conf によって、evdev と libinput がほとんど全てのデバイスのホットプラグ・インプットドライバーとして動作します。Udevsystemd によって提供されています。

X サーバーの起動後、ログファイルを確認することで、どちらのドライバーがデバイスによってホットプラグされているか確認できます (ログファイルの名前は違っているかもしれません):

$ grep -e "Using input driver " Xorg.0.log

evdev や libinput があなたの持っているデバイスをサポートしていないときは、必要なドライバーを xorg-drivers グループからインストールしてください。

ホットプラグの動作については#設定を見てください。

より詳細な手順については、libinput の記事や以下に述べる記事、より多くの例は Fedora:Input device configuration を見てください。

入力の識別

キーボード入力#Xorg でキーコードを確認する を見てください。

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

マウスのアクセラレーション を見てください。

特殊なマウスボタン

全てのマウスボタンを動作させる を見てください。

タッチパッド

libinput または Synaptics タッチパッド を見てください。

タッチスクリーン

タッチスクリーン を見てください。

キーボードの設定

Xorg でのキーボード設定 を見てください。

モニターの設定

手動設定

ノート:
  • Xorg の新しいバージョンは自動設定されます。なので、手動設定は必要ないはずです。
  • Xorg がモニタを検出できない場合や自動設定をしたくない場合、設定ファイルを使用することができます。これが必要になる一般的なケースとしては、モニタ無しで起動し、Xorg が自動的に起動するヘッドレスなシステムに仮想コンソールディスプレイマネージャを使用してログインする場合です。

ヘッドレスな環境においては、xf86-video-dummy ドライバが必須です; それをインストールし、例えば以下のような設定ファイルを作成してください:

/etc/X11/xorg.conf.d/10-headless.conf
Section "Monitor"
        Identifier "dummy_monitor"
        HorizSync 28.0-80.0
        VertRefresh 48.0-75.0
        Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection

Section "Device"
        Identifier "dummy_card"
        VideoRam 256000
        Driver "dummy"
EndSection

Section "Screen"
        Identifier "dummy_screen"
        Device "dummy_card"
        Monitor "dummy_monitor"
        SubSection "Display"
        EndSubSection
EndSection

マルチモニター

一般的な情報はマルチディスプレイを見て下さい。

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

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

Section "Device"
    Identifier             "Screen0"
    Driver                 "intel"
    BusID                  "PCI:0:2:0"
EndSection

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

(16進数の)バス ID を取得するには:

$ lspci | grep -e VGA -e 3D
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)

この場合、バス ID は 0:2:01:0:0 となります。

画面サイズと DPI

2009 以降、デフォルトで Xorg は常に DPI を 96 に設定します([2] を参照)。適切な DPI を自動検出する変更がバージョン 21.1 で加えられましたが、差し戻されました(FS#72661 を参照)。

X サーバの DPI は -dpi コマンドラインオプションで設定できます。

細かなディーテールが要求される場面(フォントレンダリングなど)では、正しい DPI を設定すると役に立つことがあります。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。

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

$ xdpyinfo | grep -B2 resolution

寸法がディスプレイサイズと一致しているかチェックしてください。

スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます(実際の xrandr の出力に合わせて Identifier を調整してください):

Section "Monitor"
    Identifier             "DVI-D-0"
    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
ノート: プロプライエタリな NVIDIA ドライバを使用している場合、上記の変更を反映させるために、DeviceScreen セクションに Option "UseEdidDpi" "FALSE" を追加する必要がある場合があります。

スクリーンの横と縦の物理的な長さがわからないときは(最近は対角線の長さ(インチ数)しかわからないことも多い)、モニターの最大解像度(またはアスペクト比)と対角線の長さを使って縦と横の長さを計算できます。ピタゴラスの定理を使って最大解像度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
ノート: 上記の計算はピクセルアスペクト比が1:1のモニターでは上手く行きますが、モニターによってはアスペクト比が潰されることがあります (例: 16:10 のアスペクト解像度が 16:9 のモニターに適用される)。その場合、画面の大きさを手動で計測する必要があります。

手動で 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
ノート: 変更はすぐにはアプリケーションに適用されません。再起動する必要があります。

設定を永続的にするには 自動起動#Xorg のスタートアップ を見て下さい。

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

DeviceScreen セクション下にオプションを追加することで DPI を手動で設定できます:

Option              "DPI" "96 x 96"
Manual DPI Setting Caveat

GTK はしばしば、オプションの Xresource Xft.dpi を通して Xorg サーバの DIP を上書きします。これがあなたの環境で起こっているかどうかを確認するには:

$ xrdb -query | grep dpi

GTK ライブラリのバージョン 3.16 以降、この変数が明示的に設定されていない場合、GTK はこの変数の値を 96 に設定します。GTK アプリがサーバの DPI に従うようにするには、Xft.dpi の値をサーバのもとと同じに明示的に設定する必要があります。Xft.dpi リソースは、一部のデスクトップ環境の個人設定で DIP を特定の値に強制的に設定する手段です。KDETDE がその例です。

Display Power Management

DPMS はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で待機状態にすることができます。

コンポジット

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

ウィンドウマネージャによっては、コンポジットマネージャをインストールしなくてもコンポジットが行われます (例: Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm)。そうでないウィンドウマネージャの場合、スタンドアロンのコンポジットマネージャを使用します。

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

  • Picom — 影、高度なぼかし、フェード機能を搭載した軽量なコンポジタ。Compton からフォークされました。
https://github.com/yshui/picom || picom
  • Xcompmgr — X.org 向けのウィンドウ効果ができるコンポジットマネージャ。
https://gitlab.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr
  • Gamescope — Valve のマイクロコンポジタ。FSR アップスケーリングなどのゲーム志向の機能が搭載されています。steamos-compositor からフォークされました。
https://github.com/ValveSoftware/gamescope || gamescope
  • steamos-compositor-plus — Valve のコンポジタ。いくつかの調整と修正が加えられています。
https://github.com/chimeraos/steamos-compositor-plus || steamos-compositor-plusAUR

ヒントとテクニック

自動化

このセクションでは、キーボード/マウスの入力やウィンドウ操作(移動、リサイズ、レイズなど)の自動化のためのユーティリティを挙げています。

ツール パッケージ マニュアル Keysym
インプット
ウィンドウ
操作
備考
xautomation xautomation xte(1) Yes No スクリーンスクレイピングツールも同梱。F13 などのシミュレート不可。
xdo xdo xdo(1) No Yes ウィンドウの基本的なアクションを行う小さな X ユーティリティ。
xdotool xdotool xdotool(1) Yes Yes バグが多く、活発に開発されていない。例: CLI パースが壊れている[3][4]
xvkbd xvkbdAUR xvkbd(1) Yes No Xorg のための仮想キーボード。文字を送るための -text オプションもあり。
AutoKey autokey-qtAUR autokey-gtkAUR ドキュメント Yes Yes 高レベルで強力なマクロとスクリプトユーティリティ。Qt と Gtk の両方のフロントエンドあり。

クリップボード#ツールX 自動化ツールの概要 も参照してください。

ネストした X セッション 

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

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

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

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

X セッションをネストする、よりモダンな方法は Xephyr です。

ウィンドウマネージャ無しでアプリケーションを起動する

xinit#ウィンドウマネージャを使わずにアプリケーションを起動 を見てください。

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

次の記事を参照してください: OpenSSH#X11 フォワーディング

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

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

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

もしくはデバイス名を使うこともできます。タッチパッドを無効化するコマンドは:

$ xinput --disable "SynPS/2 Synaptics TouchPad"

入力ソースを永続的に無効化する

以下の設定スニペットを使用することで、特定の入力ソースを無効化できます:

/etc/X11/xorg.conf.d/30-disable-device.conf
Section "InputClass"
       Identifier   "disable-device"
       Driver       "driver_name"
       MatchProduct "device_name"
       Option       "Ignore" "True"
EndSection

device は任意の名前です。driver_name は入力ドライバの名前です (例: libinput)。device_name は、適切なデバイスとマッチするように使用されるものです。正しいデバイスを指定する他の方法 (libinputMatchIsTouchscreen など) は、使用している入力ドライバのドキュメントを調べてください。この例では libinput を使用していますが、これはドライバに依存しない方法であり、対象のデバイスがドライバに伝達されないようにします。

ホットキーでアプリケーションを終了

ホットキーでスクリプトを実行:

#!/bin/sh
windowFocus=$(xdotool getwindowfocus)
pid=$(xprop -id "$windowFocus" | grep PID)
kill -9 "$pid"

依存パッケージ: xorg-xprop, xdotool

#視覚的にアプリケーションを kill する も参照。

TTY へのアクセスをブロック

X から tty へのアクセスをブロックしたい場合、以下を xorg.conf に追加してください:

Section "ServerFlags"
    Option "DontVTSwitch" "True"
EndSection

これは、信頼できないユーザによる、システムのコマンドラインへのアクセスを制限するのに役立ちます。

ユーザーが X を終了できないようにする

X が動作しているときにユーザーから kill されないようにしたい場合、以下を xorg.conf に追加してください:

Section "ServerFlags"
    Option "DontZap"      "True"
EndSection
ノート: Ctrl+Alt+Backspace ショートカットは、直接 X サーバの kill をトリガーするものではなく、キーマップの Terminate_Server アクションをトリガーします。通常、これはデフォルトで設定されていません。Xorg でのキーボード設定#Ctrl+Alt+Backspace で Xorg を終了する を見てください。

視覚的にアプリケーションを kill する

アプリケーションが誤動作したり固まったりした場合、ターミナルから killkillall を使うためにプロセス ID や名前を見つける代わりに、xorg-xkill を使えばアプリケーションをクリックして X サーバとの接続を閉じることができます。多くの既存のアプリケーションは、X サーバとの接続が閉じるとアボートしますが、一部のアプリケーションは実行し続ける可能性があります。

Rootless Xorg

Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気なディスプレイマネージャ (例: LightDMXDM) はルートレス Xorg をサポートしていないことに注意してください。

Xorg がどのユーザーとして実行されているかは ps -o user= -C Xorg で確認できます。

Xorg.wrap(1), systemd-logind(8), systemd のユーザーサービスとしての Xorg, Fedora:Changes/XorgWithoutRootRights , FS#41257 も参照して下さい。

xinitrc の使用

xinitrc を使ってルートレス Xorg を設定するには:

  • startx を直接実行し、exec startx を使用しないでください。
  • .xserverrc を介して $XDG_VTNR で logind から渡されたパーミッションの仮想コンソールを Xorg が使用することを確認してください。
  • 特定のプロプライエタリなディスプレイドライバを使用している場合、カーネルモードセッティング自動検出は失敗します。その場合は、/etc/X11/Xwrapper.configneeds_root_rights = no を設定する必要があります。

GDM の使用

カーネルモード設定を使用する場合、GDM はデフォルトで root 権限なしに Xorg を実行します。

セッションログのリダイレクト

Xorg をルートレスモードで実行すると、Xorg のログは、~/.local/share/xorg/Xorg.log に保存されます。しかし、Xorg セッションからの stdout と stderr の出力はこのログにリダイレクトされません。リダイレクトを再度有効にするには、Xorg を -keeptty フラグで起動し、stdout と stderr の出力をファイルにリダイレクトします。

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

もしくは、/etc/X11/xinit/xserverrc~/.xserverrc にコピーして、-keeptty を追加します。[5] を参照してください。

root として Xorg を実行

上記の通り、rootless Xorg がデフォルトであるような状況が存在します。rootless Xorg がデフォルトである環境で Xorg を root として実行する必要がある場合、Xorg.wrap(1) を設定して root を要求するようにできます。

警告: Xorg を root として実行するとセキュリティ上の問題を引き起こします。さらなる議論については #Rootless Xorg を見てください。
/etc/X11/Xwrapper.config
needs_root_rights = yes

トラブルシューティング

一般

何か問題が発生したらログを確認してください。ログは /var/log/ または (v1.16 からデフォルトのルートレス X の場合) ~/.local/share/xorg/ の中に保存されています。GDM を使っている場合は systemd のジャーナルをチェックしてください [6]

ログファイルの名前は Xorg.n.log という形式を取ります: n はディスプレイ番号です。デフォルト設定のシングルユーザーマシンの場合は Xorg.0.log を確認すれば良いですが、他の構成の場合は見るべきログは違うかもしれません。X サーバーのセッションが起動したときのタイムスタンプと X が起動するのに使われたコンソールを確認することで適切なログファイルを見分けられます。例:

$ grep -e Log -e tty Xorg.0.log
[    40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014
[    40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty
ヒント: 読みやすいタイムスタンプをログに追加するには、tail(1) の出力を ts(1) (moreutils パッケージに含まれています) にパイプで繋ぐことができます。ただし、コマンドが実行されている時にログに追加された行にしか正しいタイムスタンプは追加されません。例:
$ tail -f ~/.local/share/xorg/Xorg.0.log | ts
  • ログファイルの中に (EE) で始まる行が存在しないか確認してください。(EE) はエラーです。また、(WW) は警告です。
  • $HOME に存在する .xinitrc ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せず Xorg.0.log にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。
  • 画面がブラックアウト場合、異なる仮想コンソールに切り替えて(例: Ctrl+Alt+F6)、スクリーンの出力無しで root としてログインできます。そうするには、root と入力し(その後 Enter を押して)、root のパスワードを入力してください(その後、再び Enter を押してください)。
次のコマンドで X サーバーを終了させることが可能です:
# pkill -x X
上記のコマンドが機能しない場合、再起動してください:
# reboot

一部またはすべてのユーザで黒画面、No protocol specified、Resource temporarily unavailable

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

Matrox カードで DRI が停止する

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

Option "OldDmaInit" "On"

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

以下のログメッセージを残して 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

xf86-video-fbdev パッケージをアンインストールしてください。

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

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

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

$ xdpyinfo | grep resolution

そして、出力された値に最も近い方のフォントを使用してください。

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

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

  • デフォルトのターゲットを rescue.target に変更してください。systemd#起動時のデフォルトターゲットを変更する を参照。
  • 誤ってシステムを設定して Xorg を使えなくしただけでなく、GRUB メニューの待ち時間をゼロに設定、または起動時から Xorg を無効にするのに GRUB を使えない場合、Arch Linux のライブ CD を使って下さい。インストールガイドに従ってインストールした Arch Linux をマウントして chroot します。もしくは、Ctrl+Alt + function キー (通常は X によって使用されていない F1 から F7) を使って tty を切り替えてから root でログインして以下を行います。

設定に応じて、以下の作業のどれか、または複数を行う必要があります:

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

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

session        optional        pam_xauth.so

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

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

ファイルシステム(特に /tmp)が満杯の場合、startx は失敗します。ログファイルには以下のように出力されます:

(EE) Error compiling keymap (server-0)
(EE) XKB: Could not compile keymap
(EE) XKB: Failed to load keymap. Loading default keymap instead.
(EE) Error compiling keymap (server-0)
(EE) XKB: Could not 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.
...

関連するファイルシステムにいくらかの空き領域を作れば X は起動するでしょう。

動画を視聴しようとすると緑色の画面が表示される

色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。

SocketCreateListener エラー

SocketCreateListener() failed というエラーメッセージを吐いて X が落ちてしまう場合、/tmp/.X11-unix 内のソケットファイルを削除する必要があります。この問題は、(例えば xorg.conf を生成するために)前回に Xorg を root として実行した場合に発生することがあります。

プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key

このエラーは、現在のユーザのみが X サーバへのアクセス権を持っていることを意味しています。解決策は root にアクセス権を与えることです:

$ xhost +si:localuser:root

このコマンドは、root 以外のユーザに X へのアクセス権を与える際にも使用できます。

Xorg-server Fatal server error: (EE) AddScreen/ScreenInit

Xorg サーバがランダムに動作しなくなり、Xorg のログに以下が出力される場合:

systemd-logind: failed to take device /dev/dri/card0: Operation not permitted
...
AddScreen/ScreenInit failed for driver 0

この問題は systemd issue 13943 により発生する場合があります。KMS の早期起動をセットアップしてください。

参照

翻訳ステータス: このページは en:Xorg の翻訳バージョンです。最後の翻訳日は 2024-07-04 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。