「Xorg」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→ユーザーが X を終了できないようにする: === Rootless Xorg === を英語版より追加) |
(同期) |
||
(3人の利用者による、間の64版が非表示) | |||
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]] |
||
+ | [[uk:Xorg]] |
||
[[zh-hans:Xorg]] |
[[zh-hans:Xorg]] |
||
− | [[zh-hant:Xorg]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{Related|ログイン時に X を起動}} |
||
{{Related|自動起動}} |
{{Related|自動起動}} |
||
{{Related|ディスプレイマネージャ}} |
{{Related|ディスプレイマネージャ}} |
||
27行目: | 17行目: | ||
{{Related|xinit}} |
{{Related|xinit}} |
||
{{Related|xrandr}} |
{{Related|xrandr}} |
||
+ | {{Related|XDMCP}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
https://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 |
+ | '''Xorg''' (一般的には単に '''X''' と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。その普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の [[Wikipedia:ja:X.Org Server|Xorg]] や [https://www.x.org/wiki/ Xorg のウェブサイト] を見て下さい。 |
+ | |||
+ | Xorg の代替かつ後継については [[Wayland]] を参照してください。 |
||
==インストール== |
==インストール== |
||
− | + | Xorg は {{Pkg|xorg-server}} パッケージで[[インストール]]できます。 |
|
また、設定作業などに必要なパッケージのいくつかが {{Grp|xorg-apps}} グループに入っており、それぞれ関連するセクションで説明しています。 |
また、設定作業などに必要なパッケージのいくつかが {{Grp|xorg-apps}} グループに入っており、それぞれ関連するセクションで説明しています。 |
||
+ | {{Grp|xorg}} グループも利用できます。このグループには Xorg サーバのパッケージや {{Grp|xorg-apps}} のパッケージ、フォントが含まれています。 |
||
− | {{Tip|デフォルトの X 環境はほとんど裸の状態です。基本的に、X を使うにあたって[[ウィンドウマネージャ]]か[[デスクトップ環境]]をインストールすることになるでしょう。}} |
||
=== ドライバーのインストール === |
=== ドライバーのインストール === |
||
− | Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、OpenGL や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。 |
+ | Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、[[OpenGL]] や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。 |
まず、あなたのカードを確認してください: |
まず、あなたのカードを確認してください: |
||
55行目: | 48行目: | ||
Xorg はインストールされているドライバーを自動的に検索します: |
Xorg はインストールされているドライバーを自動的に検索します: |
||
− | * 使用しているハードウェアに |
+ | * 使用しているハードウェアに合うドライバー(以下に記載)がインストールされていない場合、Xorg はまず最初に ''fbdev'' ({{pkg|xf86-video-fbdev}}) を検索します。 |
* ''fbdev'' が存在しなかった場合、次に汎用ドライバーである ''vesa'' ({{pkg|xf86-video-vesa}}) を検索します。''vesa'' はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。 |
* ''fbdev'' が存在しなかった場合、次に汎用ドライバーである ''vesa'' ({{pkg|xf86-video-vesa}}) を検索します。''vesa'' はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。 |
||
* ''vesa'' も見つからない場合、Xorg は[[Kernel Mode Setting|カーネルモードセッティング]]にフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます ({{man|4|modesetting}} を参照)。 |
* ''vesa'' も見つからない場合、Xorg は[[Kernel Mode Setting|カーネルモードセッティング]]にフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます ({{man|4|modesetting}} を参照)。 |
||
63行目: | 56行目: | ||
{| 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;"> AMD/ATI </span>''' || rowspan="2" | オープンソース || {{Pkg|xf86-video-amdgpu}} || rowspan="2" | {{Pkg|mesa}} || rowspan="2" | {{Pkg|lib32-mesa}} || [[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> |
||
|- |
|- |
||
− | + | | [[ATI]] |
|
+ | | {{Pkg|xf86-video-ati}} |
||
+ | | colspan="2" | 無し |
||
|- |
|- |
||
− | | プロプライエタリ |
+ | | プロプライエタリ |
+ | | [[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}} || {{Pkg|lib32-mesa}} || [[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="3" bgcolor=#e3f7e6| '''<span style="color: #409044;">Nvidia</span>''' |
||
− | | オープンソース |
+ | | オープンソース |
+ | | [[Nouveau]]<sup>1</sup> |
||
+ | | {{Pkg|xf86-video-nouveau}} |
||
+ | | {{Pkg|mesa}} |
||
+ | | {{Pkg|lib32-mesa}} |
||
+ | | {{Pkg|vulkan-nouveau}} |
||
+ | | {{Pkg|lib32-vulkan-nouveau}} |
||
|- |
|- |
||
− | | rowspan=" |
+ | | 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- |
+ | | {{AUR|nvidia-470xx-dkms}} |
+ | | {{AUR|nvidia-470xx-utils}} |
||
+ | | {{AUR|lib32-nvidia-470xx-utils}} |
||
+ | | {{AUR|nvidia-470xx-utils}} |
||
+ | | {{AUR|lib32-nvidia-470xx-utils}} |
||
|- |
|- |
||
+ | | {{AUR|nvidia-390xx-dkms}} |
||
− | | 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}} |
||
+ | | {{AUR|nvidia-390xx-utils}} |
||
+ | | {{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 === |
+ | ==== AMD ==== |
+ | |||
+ | モデル名 (例: ''Radeon RX 6800'') から GPU アーキテクチャ (例: ''RDNA 2'') への変換は、[[Wikipedia:List of AMD graphics processing units#Features overview]] を見てください。 |
||
{| class="wikitable" style="text-align:center" |
{| class="wikitable" style="text-align:center" |
||
|- |
|- |
||
− | ! GPU アーキテクチャ |
+ | ! GPU アーキテクチャ !! オープンソースドライバ !! プロプライエタリドライバ |
− | |- |
||
− | | GCN 4 以降 || rowspan=4 | [[wikipedia:List of AMD graphics processing units|Wikipedia]] を参照 || [[AMDGPU]] || [[AMDGPU#AMDGPU PRO|AMDGPU PRO]] |
||
|- |
|- |
||
− | | |
+ | | RDNA 及びそれ以降 || rowspan=2 | [[AMDGPU]] || rowspan=2 | [[AMDGPU PRO]] |
− | |- |
||
− | | GCN 2* || [[AMDGPU]] / [[ATI]] || [[AMD Catalyst|Catalyst]]<sup>2</sup> |
||
− | |- |
||
− | | GCN 1* || [[AMDGPU]] / [[ATI]] || [[AMD Catalyst|Catalyst]]<sup>1</sup> |
||
|- |
|- |
||
+ | | GCN 3 及びそれ以降 |
||
− | | TeraScale 2&3 || HD 5000 - HD 6000 || rowspan=3 | [[ATI]] || [[AMD Catalyst|Catalyst]] |
||
|- |
|- |
||
+ | | GCN 1 と 2 || [[AMDGPU]]<sup>1</sup> / [[ATI]] || ''利用不可'' |
||
− | | TeraScale 1 || HD 2000 - HD 4000 || [[AMD Catalyst|Catalyst]] Legacy |
||
|- |
|- |
||
− | | TeraScale |
+ | | TeraScale<br/>及びそれ以前 || [[ATI]] || ''利用不可'' |
|- |
|- |
||
|} |
|} |
||
− | : *: 実験的な AMDGPU サポート。 |
||
+ | # 試験的。 |
||
− | ==起動== |
||
− | === ディスプレイマネージャ === |
||
+ | == 起動 == |
||
− | X を起動する楽な方法は[[ディスプレイマネージャ]]を使うことです。ただし、他のアプリケーションや依存パッケージが必要になります。 |
||
+ | {{man|1|Xorg}} コマンドを直接実行することは通常ありません。代わりに、[[ディスプレイマネージャ]] か [[xinit]] を用いて X サーバを起動します。 |
||
− | === 手動 === |
||
+ | |||
− | ディスプレイマネージャを使わずに X サーバーを起動したい場合、[[Xinitrc]] を見て下さい。 |
||
+ | {{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}} が末尾につくファイルを使います: これらのファイルが |
+ | 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 |
||
137行目: | 182行目: | ||
{{Tip|既に X サーバーを動作させている場合は、別のディスプレイを使って下さい、例: {{ic|Xorg :2 -configure}}。}} |
{{Tip|既に X サーバーを動作させている場合は、別のディスプレイを使って下さい、例: {{ic|Xorg :2 -configure}}。}} |
||
− | もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは [[NVIDIA]] や [[ |
+ | もしくは、あなたのビデオカードドライバに自動で 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/]。 |
入力デバイスのドライバーについては、X サーバーはデフォルトで libinput ドライバー ({{Pkg|xf86-input-libinput}}) を使用しますが、{{Pkg|xf86-input-evdev}} と関連するドライバーも使用できます [https://www.archlinux.jp/news/xorg-server-1191-is-now-in-extra/]。 |
||
153行目: | 198行目: | ||
ホットプラグの動作については[[#設定]]を見てください。 |
ホットプラグの動作については[[#設定]]を見てください。 |
||
+ | |||
+ | より詳細な手順については、[[libinput]] の記事や以下に述べる記事、より多くの例は [[Fedora:Input device configuration]] を見てください。 |
||
+ | |||
+ | === 入力の識別 === |
||
+ | |||
+ | [[キーボード入力#Xorg でキーコードを確認する]] を見てください。 |
||
=== マウスのアクセラレーション === |
=== マウスのアクセラレーション === |
||
− | + | [[マウスのアクセラレーション]] を見てください。 |
|
=== 特殊なマウスボタン === |
=== 特殊なマウスボタン === |
||
− | + | [[全てのマウスボタンを動作させる]] を見てください。 |
|
=== タッチパッド === |
=== タッチパッド === |
||
− | + | [[libinput]] または [[Synaptics タッチパッド]] を見てください。 |
|
=== タッチスクリーン === |
=== タッチスクリーン === |
||
− | + | [[タッチスクリーン]] を見てください。 |
|
=== キーボードの設定 === |
=== キーボードの設定 === |
||
− | + | [[Xorg でのキーボード設定]] を見てください。 |
|
+ | == モニターの設定 == |
||
− | ===InputClass=== |
||
+ | === 手動設定 === |
||
− | '''参照: https://fedoraproject.org/wiki/Input_device_configuration''' |
||
+ | {{Note| |
||
− | InputClass は、ひとつのデバイスではなく「あるクラス」のデバイス(ホットプラグのデバイスを含む)に適用される新しいタイプの設定セクションです。InputClass セクションの適用範囲は指定された ''match'' によって決まります – 入力デバイスに適用するには、全ての 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 |
||
− | }} |
||
− | |||
− | このスニペットが {{ic|xorg.conf}} や xorg.conf.d に存在する場合、システム上の全てのタッチパッドに synaptics ドライバが割り当てられます。優先順位 (xorg.conf.d の英数字の順番) によってドライバーの設定は前の設定を上書きすることに注意してください – 一般的なクラスほど、初めの方に置くべきです。{{Pkg|xorg-server}} パッケージによって提供されるデフォルトのスニペットは {{ic|00-evdev.conf}} であり、全ての入力デバイスに evdev ドライバを割り当てます。 |
||
− | |||
− | match オプションによってセクションを適用するのはどのデバイスなのか指定します。全ての match 行を満たしたデバイスだけに、セクションが適用されます。使うことができる match は以下の通り: |
||
− | * {{ic|MatchIsPointer}}, {{ic|MatchIsKeyboard}}, {{ic|MatchIsTouchpad}}, {{ic|MatchIsTouchscreen}}, {{ic|MatchIsJoystick}} – デバイスグループに適用するための boolean オプション。 |
||
− | * {{ic|MatchProduct "foo|bar"}}: 製品の名前に "foo" か "bar" が含まれているデバイスにマッチ |
||
− | * {{ic|MatchVendor "foo|bar|baz"}}: 製造者(ベンダー)名に "foo" や "bar"、"baz" が含まれているデバイスにマッチ |
||
− | * {{ic|MatchDevicePath "/dev/input/event*"}}: デバイスパスが一致しているデバイスにマッチ (利用できるパターンは fnmatch(3) を見て下さい) |
||
− | * {{ic|MatchTag "foo|bar"}}: "foo" や "bar" といったタグが付けられたデバイスにマッチ。タグはバックエンドの設定 – 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- |
+ | {{hc|/etc/X11/xorg.conf.d/10-headless.conf| |
Section "Monitor" |
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 |
EndSection |
||
Section "Device" |
Section "Device" |
||
− | + | 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 "dummy_card" |
|
− | + | Monitor "dummy_monitor" |
|
+ | SubSection "Display" |
||
− | DefaultDepth 16 #Choose the depth (16||24) |
||
− | + | 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 " |
+ | Driver "intel" |
− | BusID "PCI:0: |
+ | BusID "PCI:0:2:0" |
EndSection |
EndSection |
||
Section "Device" |
Section "Device" |
||
Identifier "Screen1" |
Identifier "Screen1" |
||
− | Driver " |
+ | Driver "nouveau" |
BusID "PCI:1:0:0" |
BusID "PCI:1:0:0" |
||
EndSection |
EndSection |
||
}} |
}} |
||
− | バス ID を取得するには: |
+ | (16進数の)バス ID を取得するには: |
− | {{hc| |
+ | {{hc|$ 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) |
||
− | </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 サーバの DPI は {{ic|-dpi}} コマンドラインオプションで設定できます。 |
||
− | # オプションが使われていない場合、X 設定ファイルの DisplaySize 設定が DPI の設定に使われます。 |
||
− | # DisplaySize が設定されていない場合、DDC のモニターサイズ値が DPI の設定に使われます。 |
||
− | # DDC がサイズを指定していない場合、75 DPI がデフォルトで使われます。 |
||
− | + | 細かなディーテールが要求される場面(フォントレンダリングなど)では、正しい DPI を設定すると役に立つことがあります。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。 |
|
ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには: |
ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには: |
||
391行目: | 302行目: | ||
$ xdpyinfo | grep -B2 resolution |
$ xdpyinfo | grep -B2 resolution |
||
− | + | 寸法がディスプレイサイズと一致しているかチェックしてください。 |
|
− | スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます: |
+ | スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます(実際の xrandr の出力に合わせて Identifier を調整してください): |
{{bc| |
{{bc| |
||
Section "Monitor" |
Section "Monitor" |
||
− | Identifier " |
+ | Identifier "DVI-D-0" |
DisplaySize 286 179 # ミリメートル単位 |
DisplaySize 286 179 # ミリメートル単位 |
||
EndSection |
EndSection |
||
411行目: | 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 |
||
432行目: | 345行目: | ||
{{Note|変更はすぐにはアプリケーションに適用されません。再起動する必要があります。}} |
{{Note|変更はすぐにはアプリケーションに適用されません。再起動する必要があります。}} |
||
− | 設定を永続的にするには [[ |
+ | 設定を永続的にするには [[自動起動#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 |
||
+ | |||
+ | GTK ライブラリのバージョン 3.16 以降、この変数が明示的に設定されていない場合、GTK はこの変数の値を 96 に設定します。GTK アプリがサーバの DPI に従うようにするには、{{ic|Xft.dpi}} の値をサーバのもとと同じに明示的に設定する必要があります。{{ic|Xft.dpi}} リソースは、一部のデスクトップ環境の個人設定で DIP を特定の値に強制的に設定する手段です。[[KDE]] と [[TDE]] がその例です。 |
||
+ | === Display Power Management === |
||
− | ===DPMS=== |
||
− | DPMS |
+ | [[DPMS]] はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で待機状態にすることができます。 |
== コンポジット == |
== コンポジット == |
||
− | X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: [[Wikipedia:ja: |
+ | X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: [[Wikipedia:ja:コンポジット型ウィンドウマネージャ]]。 |
ウィンドウマネージャによっては、コンポジットマネージャをインストールしなくてもコンポジットが行われます (例: [[Compiz]], [[Enlightenment]], KWin, Marco, Metacity, Muffin, Mutter, [[Xfwm]])。そうでないウィンドウマネージャの場合、スタンドアロンのコンポジットマネージャを使用します。 |
ウィンドウマネージャによっては、コンポジットマネージャをインストールしなくてもコンポジットが行われます (例: [[Compiz]], [[Enlightenment]], KWin, Marco, Metacity, Muffin, Mutter, [[Xfwm]])。そうでないウィンドウマネージャの場合、スタンドアロンのコンポジットマネージャを使用します。 |
||
462行目: | 373行目: | ||
=== コンポジットマネージャ一覧 === |
=== コンポジットマネージャ一覧 === |
||
− | * {{App|[[Picom]]| |
+ | * {{App|[[Picom]]|影、高度なぼかし、フェード機能を搭載した軽量なコンポジタ。Compton からフォークされました。|https://github.com/yshui/picom|{{Pkg|picom}}}} |
− | * {{App|[[Xcompmgr]]|X.org 向けのウィンドウ効果ができるコンポジットマネージャ。|https:// |
+ | * {{App|[[Xcompmgr]]|X.org 向けのウィンドウ効果ができるコンポジットマネージャ。|https://gitlab.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}} |
+ | * {{App|[[Gamescope]]|Valve のマイクロコンポジタ。FSR アップスケーリングなどのゲーム志向の機能が搭載されています。steamos-compositor からフォークされました。|https://github.com/ValveSoftware/gamescope|{{Pkg|gamescope}}}} |
||
− | * {{App|Unagi|モジュール式のコンポジットマネージャ。C で書かれており XCB をベースにしています。|http://projects.mini-dweeb.org/projects/unagi|{{AUR|unagi}}}} |
||
+ | * {{App|steamos-compositor-plus|Valve のコンポジタ。いくつかの調整と修正が加えられています。|https://github.com/chimeraos/steamos-compositor-plus|{{AUR|steamos-compositor-plus}}}} |
||
==ヒントとテクニック== |
==ヒントとテクニック== |
||
− | ===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 |
||
485行目: | 413行目: | ||
このためには {{Pkg|xorg-server-xnest}} パッケージをインストールする必要があります。 |
このためには {{Pkg|xorg-server-xnest}} パッケージをインストールする必要があります。 |
||
+ | |||
+ | X セッションをネストする、よりモダンな方法は [[Xephyr]] です。 |
||
+ | |||
+ | === ウィンドウマネージャ無しでアプリケーションを起動する === |
||
+ | |||
+ | [[xinit#ウィンドウマネージャを使わずにアプリケーションを起動]] を見てください。 |
||
===リモートで GUI プログラムを実行する=== |
===リモートで GUI プログラムを実行する=== |
||
− | 次の記事を参照してください: [[ |
+ | 次の記事を参照してください: [[OpenSSH#X11 フォワーディング]] |
===必要に応じて入力ソースを有効化・無効化=== |
===必要に応じて入力ソースを有効化・無効化=== |
||
+ | |||
− | {{ic|xinput}} を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。 |
||
+ | ''xinput'' を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。 |
||
{{Pkg|xorg-xinput}} パッケージを[[インストール]]してください。 |
{{Pkg|xorg-xinput}} パッケージを[[インストール]]してください。 |
||
501行目: | 436行目: | ||
例えば Lenovo ThinkPad T500 では、出力は以下のようになります: |
例えば Lenovo ThinkPad T500 では、出力は以下のようになります: |
||
− | {{hc|$ xinput|<nowiki> |
+ | {{hc|$ xinput|<nowiki> |
− | + | ⎡ 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)] |
||
− | }} |
||
+ | </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 を無効にします: |
||
525行目: | 461行目: | ||
$ xinput --disable "SynPS/2 Synaptics TouchPad" |
$ 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/ |
+ | #!/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 する]] も参照。 |
||
− | === TTY のアクセスをブロック === |
||
+ | |||
+ | === TTY へのアクセスをブロック === |
||
X から tty へのアクセスをブロックしたい場合、以下を {{ic|xorg.conf}} に追加してください: |
X から tty へのアクセスをブロックしたい場合、以下を {{ic|xorg.conf}} に追加してください: |
||
+ | |||
− | {{bc|Section "ServerFlags" |
||
+ | {{bc| |
||
+ | Section "ServerFlags" |
||
Option "DontVTSwitch" "True" |
Option "DontVTSwitch" "True" |
||
− | EndSection |
+ | EndSection |
+ | }} |
||
+ | |||
+ | これは、信頼できないユーザによる、システムのコマンドラインへのアクセスを制限するのに役立ちます。 |
||
=== ユーザーが X を終了できないようにする === |
=== ユーザーが X を終了できないようにする === |
||
− | X が動作しているときにユーザーから kill されないようにしたい場合、以下を |
+ | X が動作しているときにユーザーから kill されないようにしたい場合、以下を [[#設定|xorg.conf]] に追加してください: |
+ | |||
− | {{bc|Section "ServerFlags" |
||
+ | {{bc| |
||
+ | Section "ServerFlags" |
||
Option "DontZap" "True" |
Option "DontZap" "True" |
||
− | EndSection |
+ | EndSection |
+ | }} |
||
+ | |||
+ | {{Note|{{ic|Ctrl+Alt+Backspace}} ショートカットは、直接 X サーバの kill をトリガーするものではなく、キーマップの {{ic|Terminate_Server}} アクションをトリガーします。通常、これはデフォルトで設定されていません。[[Xorg でのキーボード設定#Ctrl+Alt+Backspace で Xorg を終了する]] を見てください。}} |
||
+ | |||
+ | === 視覚的にアプリケーションを kill する === |
||
+ | |||
+ | アプリケーションが誤動作したり固まったりした場合、ターミナルから {{ic|kill}} や {{ic|killall}} を使うためにプロセス ID や名前を見つける代わりに、{{Pkg|xorg-xkill}} を使えばアプリケーションをクリックして X サーバとの接続を閉じることができます。多くの既存のアプリケーションは、X サーバとの接続が閉じるとアボートしますが、一部のアプリケーションは実行し続ける可能性があります。 |
||
=== Rootless Xorg === |
=== Rootless Xorg === |
||
+ | Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気な[[ディスプレイマネージャ]] (例: [https://github.com/canonical/lightdm/issues/18 LightDM] や [[XDM]]) はルートレス Xorg をサポートしていないことに注意してください。 |
||
− | Xorg may run with standard user privileges instead of root (so-called "rootless" Xorg). This is a significant security improvement over running as root. Note that most display managers do not support rootless Xorg. |
||
+ | Xorg がどのユーザーとして実行されているかは {{ic|1=ps -o user= -C Xorg}} で確認できます。 |
||
− | You can verify which user Xorg is running as with {{ic|ps -o user $(pgrep Xorg)}}. |
||
− | + | {{man|1|Xorg.wrap}}, {{man|8|systemd-logind}}, [[Systemd/ユーザー#systemd のユーザーサービスとしての Xorg|systemd のユーザーサービスとしての Xorg]], [[Fedora:Changes/XorgWithoutRootRights]] , {{Bug|41257}} も参照して下さい。 |
|
− | ==== |
+ | ==== xinitrc の使用 ==== |
+ | [[xinitrc]] を使ってルートレス Xorg を設定するには: |
||
− | To configure rootless Xorg using [[xinitrc]]: |
||
− | * |
+ | * {{ic|startx}} を直接実行し、{{ic|exec startx}} を使用しないでください。 |
+ | * [[Xinit#xserverrc|.xserverrc]] を介して {{ic|$XDG_VTNR}} で logind から渡されたパーミッションの仮想コンソールを Xorg が使用することを確認してください。 |
||
− | * Ensure that Xorg uses virtual terminal for which permissions were set, i.e. passed by logind in {{ic|$XDG_VTNR}} via [[xinit#xserverrc|.xserverrc]]. |
||
− | * |
+ | * 特定のプロプライエタリなディスプレイドライバを使用している場合、[[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 を実行します。 |
||
− | [[GDM]] will run Xorg without root privileges by default when [[kernel mode setting]] is used. |
||
+ | ==== セッションログのリダイレクト ==== |
||
− | ==== Session log redirection ==== |
||
+ | Xorg をルートレスモードで実行すると、Xorg のログは、{{ic|~/.local/share/xorg/Xorg.log}} に保存されます。しかし、Xorg セッションからの stdout と stderr の出力はこのログにリダイレクトされません。リダイレクトを再度有効にするには、Xorg を {{ic|-keeptty}} フラグで起動し、stdout と stderr の出力をファイルにリダイレクトします。 |
||
− | When Xorg is run in rootless mode, Xorg logs are saved to {{ic|~/.local/share/xorg/Xorg.log}}. However, the stdout and stderr output from the Xorg session is not redirected to this log. To re-enable redirection, start Xorg with the {{ic|-keeptty}} flag and redirect the stdout and stderr output to a file: |
||
startx -- -keeptty >~/.xorg.log 2>&1 |
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 を要求するようにできます。 |
||
− | 何か問題が発生したらログを確認してください。ログは {{ic|/var/log/}} または (v1.16 からデフォルトのルートレス X の場合) {{ic|~/.local/share/xorg/}} の中に保存されています。[[GDM]] を使っている場合は [[systemd]] の journal をチェックしてください [https://bbs.archlinux.org/viewtopic.php?id=184639]。 |
||
+ | {{Warning| Xorg を root として実行するとセキュリティ上の問題を引き起こします。さらなる議論については [[#Rootless Xorg]] を見てください。}} |
||
− | ログファイルの名前は {{ic|Xorg.n.log}} です。{{ic|n}} はディスプレイ番号に置き換えられます。デフォルト設定のシングルユーザーマシンの場合は {{ic|Xorg.0.log}} を確認すれば良いですが、他の構成の場合は見るべきログは違うかもしれません。X サーバーのセッションが起動したときのタイムスタンプと X が起動するのに使われたコンソールを確認することで適切なログファイルを見分けられます。例: |
||
+ | {{hc|1=/etc/X11/Xwrapper.config|2= |
||
− | {{hc|1=$ 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 |
||
+ | needs_root_rights = yes |
||
− | [ 40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty}} |
||
+ | }} |
||
+ | == トラブルシューティング == |
||
− | * ログファイルの中に {{ic|(EE)}} で始まる行が存在しないか確認してください。{{ic|(EE)}} はエラーです。また、{{ic|(WW)}} は警告です。 |
||
+ | === 一般 === |
||
+ | 何か問題が発生したらログを確認してください。ログは {{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|$HOME}} に存在する {{ic|.xinitrc}} ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せず {{ic|Xorg.0.log}} にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。 |
||
− | * 画面が |
+ | * 画面がブラックアウト場合、異なる仮想コンソールに切り替えて(例: {{ic|Ctrl+Alt+F6}})、スクリーンの出力無しで root としてログインできます。そうするには、{{ic|root}} と入力し(その後 {{ic|Enter}} を押して)、root のパスワードを入力してください(その後、再び {{ic|Enter}} を押してください)。 |
: 次のコマンドで X サーバーを終了させることが可能です: |
: 次のコマンドで X サーバーを終了させることが可能です: |
||
− | : {{bc|# pkill X}} |
+ | : {{bc|# pkill -x X}} |
: 上記のコマンドが機能しない場合、再起動してください: |
: 上記のコマンドが機能しない場合、再起動してください: |
||
: {{bc|# reboot}} |
: {{bc|# reboot}} |
||
− | *キーボード・マウス・タッチパッドなどに問題がおこる場合は [[:カテゴリ:入力デバイス]]内のそれぞれのページを見て下さい。 |
+ | * キーボード・マウス・タッチパッドなどに問題がおこる場合は [[:カテゴリ:入力デバイス]] 内のそれぞれのページを見て下さい。 |
− | *[[ |
+ | * [[AMDGPU]]、[[Intel Graphics]]、[[NVIDIA]] の記事に問題の解決方法が載ってないか調べてください。 |
+ | === 一部またはすべてのユーザで黒画面、No protocol specified、Resource temporarily unavailable === |
||
− | ===右 CTRL キーが oss キーマップとして動作しない=== |
||
− | root で {{ic|/usr/share/X11/xkb/symbols/fr}} を編集して: |
||
− | {{bc|include "level5(rctrl_switch)"}} |
||
− | を |
||
− | {{bc|// include "level5(rctrl_switch)"}} |
||
− | に変更して X を再起動するか次を実行してください: |
||
+ | X は設定ファイルと一時ファイルをユーザーのホームディレクトリに作成します。あなたのホームディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。 |
||
− | setxkbmap fr oss |
||
− | === |
+ | === Matrox カードで DRI が停止する === |
− | + | Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を {{ic|xorg.conf}} のビデオカードの Device セクションに追加してください: |
|
+ | Option "OldDmaInit" "On" |
||
− | session optional pam_xauth.so |
||
− | |||
− | {{ic|pam_xauth}} が正しく環境変数を設定し {{ic|xauth}} キーを管理します。 |
||
− | |||
− | ===プログラムが "font '(null)'" を要求する=== |
||
− | |||
− | *エラーメッセージ: "''unable to load font `(null)'.''" |
||
− | いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、{{Pkg|xorg-fonts-75dpi}} と {{Pkg|xorg-fonts-100dpi}} です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、次を実行してください: |
||
− | $ xdpyinfo | grep resolution |
||
− | それからあなたに適している方を使って下さい (XX は 75 か 100 に置き換える): |
||
− | # pacman -S xorg-fonts-XXdpi |
||
− | ===フレームバッファモード問題=== |
+ | === フレームバッファモード問題 === |
以下のログメッセージを残して X の起動が失敗する場合: |
以下のログメッセージを残して X の起動が失敗する場合: |
||
644行目: | 612行目: | ||
{{pkg|xf86-video-fbdev}} パッケージを[[pacman#パッケージの削除|アンインストール]]してください。 |
{{pkg|xf86-video-fbdev}} パッケージを[[pacman#パッケージの削除|アンインストール]]してください。 |
||
− | === |
+ | === プログラムが "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つの方法でこれを達成できます。 |
||
662行目: | 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.jp/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}} を手動で設定する必要があります [https://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 エラー === |
||
− | {{man|1|Xorg.wrap}} や [[systemd/ユーザー#systemd のユーザーサービスとしての Xorg]] も参照。 |
||
+ | {{ic|SocketCreateListener() failed}} というエラーメッセージを吐いて X が落ちてしまう場合、{{ic|/tmp/.X11-unix}} 内のソケットファイルを削除する必要があります。この問題は、(例えば {{ic|xorg.conf}} を生成するために)前回に Xorg を root として実行した場合に発生することがあります。 |
||
− | [[GDM]] は [[Kernel Mode Setting]] が使われている場合、デフォルトで root 権限を利用しないで Xorg を起動します。 |
||
+ | === プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key === |
||
− | ==== リダイレクトが機能しない ==== |
||
+ | このエラーは、現在のユーザのみが X サーバへのアクセス権を持っていることを意味しています。解決策は root にアクセス権を与えることです: |
||
− | ユーザーの Xorg ログが {{ic|~/.local/share/xorg/Xorg.log}} に保存されるとき、X セッションからの出力はログに含まれません。リダイレクトを有効にするには、{{ic|-keeptty}} フラグを使って X を起動してください: |
||
+ | $ xhost +si:localuser:root |
||
− | exec startx -- -keeptty > ~/.xorg.log 2>&1 |
||
+ | このコマンドは、root 以外のユーザに X へのアクセス権を与える際にも使用できます。 |
||
− | もしくは {{ic|/etc/X11/xinit/xserverrc}} を {{ic|~/.xserverrc}} にコピーして、{{ic|-keeptty}} を追記して下さい。[https://bbs.archlinux.org/viewtopic.php?pid=1446402#p1446402] を参照。 |
||
+ | === Xorg-server Fatal server error: (EE) AddScreen/ScreenInit === |
||
− | === 動画を視聴しようとすると緑色の画面が表示される === |
||
+ | Xorg サーバがランダムに動作しなくなり、Xorg のログに以下が出力される場合: |
||
− | 色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。 |
||
+ | systemd-logind: failed to take device /dev/dri/card0: Operation not permitted |
||
− | === SocketCreateListener エラー === |
||
+ | ... |
||
+ | AddScreen/ScreenInit failed for driver 0 |
||
+ | この問題は [https://github.com/systemd/systemd/issues/13943 systemd issue 13943] により発生する場合があります。[[Kernel Mode Setting#Early KMS start|KMS の早期起動]]をセットアップしてください。 |
||
− | "SocketCreateListener() failed" というエラーメッセージを吐いて X が落ちてしまう場合、{{ic|/tmp/.X11-unix}} 内のソケットファイルを削除する必要があります。この問題は root で Xorg を起動した場合に発生します。 |
||
== 参照 == |
== 参照 == |
||
* [https://magcius.github.io/xplain/article/ Xplain] - X Window System の詳しい解説 |
* [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時点における最新版
- X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。X.Org Foundation は理事会がこの取り組みを提供し、メンバーがこの作業を主導する教育非営利法人です。
Xorg (一般的には単に X と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。その普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の Xorg や Xorg のウェブサイト を見て下さい。
Xorg の代替かつ後継については Wayland を参照してください。
目次
- 1 インストール
- 2 起動
- 3 設定
- 4 入力デバイス
- 5 モニターの設定
- 6 コンポジット
- 7 ヒントとテクニック
- 8 トラブルシューティング
- 8.1 一般
- 8.2 一部またはすべてのユーザで黒画面、No protocol specified、Resource temporarily unavailable
- 8.3 Matrox カードで DRI が停止する
- 8.4 フレームバッファモード問題
- 8.5 プログラムが "font '(null)'" を要求する
- 8.6 リカバリ: GUI ログインの前に Xorg を無効化
- 8.7 "su" で X クライアントの起動が失敗する
- 8.8 X が起動できない: Keyboard initialization failed
- 8.9 動画を視聴しようとすると緑色の画面が表示される
- 8.10 SocketCreateListener エラー
- 8.11 プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key
- 8.12 Xorg-server Fatal server error: (EE) AddScreen/ScreenInit
- 9 参照
インストール
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 |
- 統合 GPU と専用 GPU を組み合わせて使用する NVIDIA Optimus 対応のノート PC に関しては NVIDIA Optimus を参照してください。
- 第4世代及びそれ以降の Intel グラフィックスに関しては、Intel graphics#インストール で利用可能なドライバを確認してください。
- 古いハードウェア用のクラシック OpenGL (Gallium3D でない) ドライバです (Mesa 22.0 及びそれ以降では、i915 クラシックドライバのサポートが落とされています)。
- vulkan-radeon / lib32-vulkan-radeon は amdvlk / 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 | 利用不可 |
- 試験的。
起動
Xorg(1) コマンドを直接実行することは通常ありません。代わりに、ディスプレイマネージャ か xinit を用いて X サーバを起動します。
設定
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
にコピーして上書きすることができます。
もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは NVIDIA や AMDGPU PRO などあなたの使っているビデオカードの記事を見て下さい。
入力デバイス
入力デバイスのドライバーについては、X サーバーはデフォルトで libinput ドライバー (xf86-input-libinput) を使用しますが、xf86-input-evdev と関連するドライバーも使用できます [1]。
Udev があなたのハードウェアを検知し、/usr/share/X11/xorg.conf.d/
ディレクトリに入っているデフォルト設定ファイル 10-evdev.conf
と 40-libinput.conf
によって、evdev と libinput がほとんど全てのデバイスのホットプラグ・インプットドライバーとして動作します。Udev は systemd によって提供されています。
X サーバーの起動後、ログファイルを確認することで、どちらのドライバーがデバイスによってホットプラグされているか確認できます (ログファイルの名前は違っているかもしれません):
$ grep -e "Using input driver " Xorg.0.log
evdev や libinput があなたの持っているデバイスをサポートしていないときは、必要なドライバーを xorg-drivers グループからインストールしてください。
ホットプラグの動作については#設定を見てください。
より詳細な手順については、libinput の記事や以下に述べる記事、より多くの例は Fedora:Input device configuration を見てください。
入力の識別
キーボード入力#Xorg でキーコードを確認する を見てください。
マウスのアクセラレーション
マウスのアクセラレーション を見てください。
特殊なマウスボタン
全てのマウスボタンを動作させる を見てください。
タッチパッド
libinput または Synaptics タッチパッド を見てください。
タッチスクリーン
タッチスクリーン を見てください。
キーボードの設定
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:0
と 1: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
スクリーンの横と縦の物理的な長さがわからないときは(最近は対角線の長さ(インチ数)しかわからないことも多い)、モニターの最大解像度(またはアスペクト比)と対角線の長さを使って縦と横の長さを計算できます。ピタゴラスの定理を使って最大解像度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
手動で DPI を設定する
RandR に対応しているドライバ (例えばオープンソースの ATI ドライバ) なら、次のコマンドで設定できます:
$ xrandr --dpi 144
設定を永続的にするには 自動起動#Xorg のスタートアップ を見て下さい。
プロプライエタリの NVIDIA ドライバー
Device
か Screen
セクション下にオプションを追加することで 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 を特定の値に強制的に設定する手段です。KDE と TDE がその例です。
Display Power Management
DPMS はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で待機状態にすることができます。
コンポジット
X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: Wikipedia:ja:コンポジット型ウィンドウマネージャ。
ウィンドウマネージャによっては、コンポジットマネージャをインストールしなくてもコンポジットが行われます (例: Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm)。そうでないウィンドウマネージャの場合、スタンドアロンのコンポジットマネージャを使用します。
コンポジットマネージャ一覧
- Picom — 影、高度なぼかし、フェード機能を搭載した軽量なコンポジタ。Compton からフォークされました。
- Xcompmgr — X.org 向けのウィンドウ効果ができるコンポジットマネージャ。
- Gamescope — Valve のマイクロコンポジタ。FSR アップスケーリングなどのゲーム志向の機能が搭載されています。steamos-compositor からフォークされました。
- steamos-compositor-plus — Valve のコンポジタ。いくつかの調整と修正が加えられています。
ヒントとテクニック
自動化
このセクションでは、キーボード/マウスの入力やウィンドウ操作(移動、リサイズ、レイズなど)の自動化のためのユーティリティを挙げています。
ツール | パッケージ | マニュアル | 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
は、適切なデバイスとマッチするように使用されるものです。正しいデバイスを指定する他の方法 (libinput の MatchIsTouchscreen
など) は、使用している入力ドライバのドキュメントを調べてください。この例では libinput を使用していますが、これはドライバに依存しない方法であり、対象のデバイスがドライバに伝達されないようにします。
ホットキーでアプリケーションを終了
ホットキーでスクリプトを実行:
#!/bin/sh windowFocus=$(xdotool getwindowfocus) pid=$(xprop -id "$windowFocus" | grep PID) kill -9 "$pid"
依存パッケージ: xorg-xprop, xdotool
TTY へのアクセスをブロック
X から tty へのアクセスをブロックしたい場合、以下を xorg.conf
に追加してください:
Section "ServerFlags" Option "DontVTSwitch" "True" EndSection
これは、信頼できないユーザによる、システムのコマンドラインへのアクセスを制限するのに役立ちます。
ユーザーが X を終了できないようにする
X が動作しているときにユーザーから kill されないようにしたい場合、以下を xorg.conf に追加してください:
Section "ServerFlags" Option "DontZap" "True" EndSection
視覚的にアプリケーションを kill する
アプリケーションが誤動作したり固まったりした場合、ターミナルから kill
や killall
を使うためにプロセス ID や名前を見つける代わりに、xorg-xkill を使えばアプリケーションをクリックして X サーバとの接続を閉じることができます。多くの既存のアプリケーションは、X サーバとの接続が閉じるとアボートしますが、一部のアプリケーションは実行し続ける可能性があります。
Rootless Xorg
Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気なディスプレイマネージャ (例: LightDM や XDM) はルートレス 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.config
でneeds_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 を要求するようにできます。
/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
- ログファイルの中に
(EE)
で始まる行が存在しないか確認してください。(EE)
はエラーです。また、(WW)
は警告です。 $HOME
に存在する.xinitrc
ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せずXorg.0.log
にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。- 画面がブラックアウト場合、異なる仮想コンソールに切り替えて(例:
Ctrl+Alt+F6
)、スクリーンの出力無しで root としてログインできます。そうするには、root
と入力し(その後Enter
を押して)、root のパスワードを入力してください(その後、再びEnter
を押してください)。
- 次のコマンドで X サーバーを終了させることが可能です:
# pkill -x X
- 上記のコマンドが機能しない場合、再起動してください:
# reboot
- キーボード・マウス・タッチパッドなどに問題がおこる場合は カテゴリ:入力デバイス 内のそれぞれのページを見て下さい。
- AMDGPU、Intel Graphics、NVIDIA の記事に問題の解決方法が載ってないか調べてください。
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-75dpi と xorg-fonts-100dpi です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、xorg-xdpyinfo の xdpyinfo
を試してください:
$ 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 でログインして以下を行います。
設定に応じて、以下の作業のどれか、または複数を行う必要があります:
- ディスプレイマネージャを無効化。
- X の自動起動を無効化。
~/.xinitrc
の名前を変更するかexec
行をコメントアウト。
"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 の早期起動をセットアップしてください。
参照
- Xplain - X Window System の詳しい解説
- Xorg(1)
- Prepare for LPIC-1 exam 2 - topic 106.1: X11 - アーキテクチャ、#設定、デスクトップ環境、リモートでの使用、Wayland に関して簡単に説明しています。
- xorg.conf(5)
- Gentoo:Xorg/Guide/ja#設定