「GDM」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎トラブルシューティング: 英語版と同期して情報を更新)
(リンクを修正)
 
(3人の利用者による、間の37版が非表示)
1行目: 1行目:
 
[[Category:ディスプレイマネージャ]]
 
[[Category:ディスプレイマネージャ]]
 
[[Category:GNOME]]
 
[[Category:GNOME]]
  +
[[de:Login-Manager#GDM]]
 
[[en:GDM]]
 
[[en:GDM]]
[[es:GDM]]
+
[[fr:GDM]]
 
[[pt:GDM]]
 
[[pt:GDM]]
 
[[zh-hans:GDM]]
 
[[zh-hans:GDM]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|GNOME}}
 
{{Related|GNOME}}
{{Related|GNOME Flashback}}
 
 
{{Related|ディスプレイマネージャ}}
 
{{Related|ディスプレイマネージャ}}
{{Related|LightDM}}
 
{{Related|LXDM}}
 
 
{{Related articles end}}
 
{{Related articles end}}
  +
[https://wiki.gnome.org/Projects/GDM GDM - GNOME Display Manager] より: "GNOME Display Manager (GDM) はグラフィカルディスプレイサーバーを管理しグラフィカルユーザーログインを処理するプログラムです。"
   
  +
[[ディスプレイマネージャ]]は [[Xorg|X Window System]] や [[Wayland]] のユーザーにグラフィカルなログインプロンプトを提供します。
[https://wiki.gnome.org/Projects/GDM GDM - GNOME Display Manager] より:
 
   
  +
== インストール ==
:''GNOME Display Manager (GDM) はグラフィカルディスプレイサーバーを管理しグラフィカルユーザーログインを処理するプログラムです。''
 
   
  +
GDM は {{Pkg|gdm}} パッケージで[[インストール]]できます。また、{{grp|gnome}} グループの一部としてもインストールされます。
[[ディスプレイマネージャ]]は [[Xorg|X Window System]] や [[Wayland]] のユーザーにグラフィカルなログインプロンプトを提供します。
 
   
  +
== 起動 ==
==インストール==
 
GDM は {{Pkg|gdm}} パッケージで[[インストール]]できます。また、GDM は {{grp|gnome}} グループに含まれています。マシンの起動時に GDM を実行するには {{ic|gdm.service}} を[[有効化]]してください。
 
   
  +
ブート時に GDM を起動するには、{{ic|gdm.service}} を[[有効化]]して下さい。
GNOME 2 で使われていた旧式の GDM や設定ユーティリティを使いたい場合は {{AUR|gdm-old}} パッケージをインストールしてください。以下では基本的に旧バージョンの GDM ではなく最新の GDM について解説しています。
 
   
  +
=== アプリケーションの自動起動 ===
以下のパッケージも任意でインストールしてください:
 
* {{App|gdm3setup|GDM3 や自動ログインオプションを設定したり Shell テーマを変更できるインターフェイス。|https://github.com/Nano77/gdm3setup|{{AUR|gdm3setup}}}}
 
   
  +
ログイン後に自動的にアプリケーションを起動するには、[[自動起動#デスクトップ環境のスタートアップ時]] のページであなたのデスクトップ環境に関係する指示に従ってください。
==設定==
 
   
  +
== 設定 ==
=== GDM によるアプリケーションの自動実行 ===
 
   
  +
{{Note|以下の設定オプションのほとんどは、{{AUR|gdm-settings}} GUI アプリケーションを使用して簡単に設定することができます。}}
[[ディスプレイマネージャ#自動起動]]を見てください。{{ic|/etc/gdm/Init}} にスクリプトを追加する方法はもう使えません。詳しくは [https://bugzilla.gnome.org/show_bug.cgi?id=751602#c2 上流のバグレポート] を参照。
 
   
=== ログインの背景画像 ===
+
=== ログイン画面の背景画像 ===
   
 
{{Note|
 
{{Note|
* GNOME 3.16 から GNOME Shell のテーマはバイナリ形式のファイル (gresource) 保存されるようになりました。
+
* GNOME 3.16 からGNOME Shell のテーマはバイナリファイル (gresource) として保存されるようになりました。
* {{Pkg|gnome-shell}} をアップデートすると以下の変更は上書きされます。}}
+
* 以下の変更は、{{Pkg|gnome-shell}} が更新されると上書きされてしまいます。
  +
}}
   
まず、既存の GNOME Shell テーマをホームディレクトリに抽出する必要があります。以下のスクリプトを使ってください:
+
まず、既存の GNOME Shell テーマを抽出して、ホームディレクトリ内の何らかのディレクトリに保存する必要があります。これは、以下のスクリプトで可能です:
   
 
{{hc|extractgst.sh|2=
 
{{hc|extractgst.sh|2=
55行目: 53行目:
 
for r in `gresource list $gst`; do
 
for r in `gresource list $gst`; do
 
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
 
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done}}
+
done
  +
}}
   
それから作成されたディレクトリに移動してください。抽出されたテーマファイルが確認できるはずです。好きな背景画像を作成されたディレクトリコピーしてください。
+
作成されたディレクトリに移動してください。抽出されたテーマファイルが確認できるはずです。好きな背景画像をこのディレクトリコピーしてください。
   
次に、ディレクトリの中に以下の内容でファイルを作成する必要があります:
+
次に、そのディレクトリに以下のようなファイルを作成する必要があります:
   
{{hc|gnome-shell-theme.gresource.xml|2=
+
{{hc|1=gnome-shell-theme.gresource.xml|2=
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<gresources>
 
<gresources>
 
<gresource prefix="/org/gnome/shell/theme">
 
<gresource prefix="/org/gnome/shell/theme">
<file>calendar-arrow-left.svg</file>
 
<file>calendar-arrow-right.svg</file>
 
 
<file>calendar-today.svg</file>
 
<file>calendar-today.svg</file>
  +
<file>calendar-today-light.svg</file>
  +
<file>checkbox.svg</file>
 
<file>checkbox-focused.svg</file>
 
<file>checkbox-focused.svg</file>
  +
<file>checkbox-off-focused-light.svg</file>
 
<file>checkbox-off-focused.svg</file>
 
<file>checkbox-off-focused.svg</file>
  +
<file>checkbox-off-light.svg</file>
 
<file>checkbox-off.svg</file>
 
<file>checkbox-off.svg</file>
<file>checkbox.svg</file>
+
<file>gnome-shell.css</file>
<file>close.svg</file>
 
<file>close-window-active.svg</file>
 
<file>close-window-hover.svg</file>
 
<file>close-window.svg</file>
 
<file>corner-ripple-ltr.png</file>
 
<file>corner-ripple-rtl.png</file>
 
<file>dash-placeholder.svg</file>
 
<file>filter-selected-ltr.svg</file>
 
<file>filter-selected-rtl.svg</file>
 
<file>gnome-shell.css</file>
 
 
<file>gnome-shell-high-contrast.css</file>
 
<file>gnome-shell-high-contrast.css</file>
<file>icons/message-indicator-symbolic.svg</file>
+
<file>gnome-shell-start.svg</file>
<file>key-enter.svg</file>
 
<file>key-hide.svg</file>
 
<file>key-layout.svg</file>
 
<file>key-shift-latched-uppercase.svg</file>
 
<file>key-shift.svg</file>
 
<file>key-shift-uppercase.svg</file>
 
<file>logged-in-indicator.svg</file>
 
<file>no-events.svg</file>
 
<file>no-notifications.svg</file>
 
<file>'''filename'''</file>
 
 
<file>pad-osd.css</file>
 
<file>pad-osd.css</file>
<file>page-indicator-active.svg</file>
 
<file>page-indicator-checked.svg</file>
 
<file>page-indicator-hover.svg</file>
 
<file>page-indicator-inactive.svg</file>
 
 
<file>process-working.svg</file>
 
<file>process-working.svg</file>
<file>running-indicator.svg</file>
+
<file>toggle-off.svg</file>
<file>source-button-border.svg</file>
 
<file>summary-counter.svg</file>
 
 
<file>toggle-off-hc.svg</file>
 
<file>toggle-off-hc.svg</file>
<file>toggle-off-intl.svg</file>
+
<file>toggle-off-light.svg</file>
<file>toggle-off-us.svg</file>
+
<file>toggle-on.svg</file>
<file>toggle-on-hc.svg</file>
+
<file>toggle-on-hc.svg</file>
<file>toggle-on-intl.svg</file>
+
<file>toggle-on-light.svg</file>
<file>toggle-on-us.svg</file>
+
<file>workspace-placeholder.svg</file>
<file>ws-switch-arrow-down.png</file>
+
<file>'''filename'''</file>
<file>ws-switch-arrow-up.png</file>
 
 
</gresource>
 
</gresource>
</gresources>}}
+
</gresources>
  +
}}
   
'''filename''' は使用する背景画像のファイル名に置き換えてください。
+
'''filename''' は使用する背景画像のファイル名に置き換えてください。あるいは、16進数のカラーコードを使用する場合は、この行を削除してください。
   
して、ディレクトリ内の {{ic|gnome-shell.css}} ファイルを開いて {{ic|#lockDialogGroup}} の定義を以下のように変更してください:
+
ディレクトリ内の {{ic|gnome-shell.css}} ファイルを開き、{{ic|#lockDialogGroup}} の定義を以下のように変更してください:
   
 
#lockDialogGroup {
 
#lockDialogGroup {
background: #2e3436 url('''filename''');
+
background: url('''filename''');
background-size: '''[WIDTH]'''px '''[HEIGHT]'''px;
+
background-size: '''width'''px '''height'''px;
 
background-repeat: no-repeat;
 
background-repeat: no-repeat;
 
}
 
}
   
{{ic|background-size}} は GDM が使用する解像度に設定します。必ずしも画像の解像度である必要りません。ディスプレイの解像度について Wikipedia に[[wikipedia:ja:画面解像度#コンピュータ・映画|リスト]]があります。'''filename''' は背景画像の名に置き換えてください。
+
{{ic|background-size}} は GDM が使用する解像度に設定してください (これは、画像の解像度と同じとりません)画面解像度の一覧[[Wikipedia:Display_resolution#Computer_monitors]] を見てください最後に、'''filename''' の部分は背景画像のファイル名に置き換えてください。
  +
  +
背景色だけを変更したい場合は、{{ic|#lockDialogGroup}} の定義を以下のように変更してください:
  +
  +
#lockDialogGroup {
  +
background-color: #'''color''';
  +
}
  +
  +
'''color''' は背景色の16進数カラーコードです。
  +
  +
次に、以下のコマンドでテーマをコンパイルしてください:
   
最後に、以下のコマンドでテーマをコンパイルします:
 
 
$ glib-compile-resources gnome-shell-theme.gresource.xml
 
$ glib-compile-resources gnome-shell-theme.gresource.xml
作成された {{ic|gnome-shell-theme.gresource}} ファイルを {{ic|/usr/share/gnome-shell}} ディレクトリにコピーしてください。
 
   
  +
そして、出来上がった {{ic|gnome-shell-theme.gresource}} ファイルを {{ic|/usr/share/gnome-shell}} ディレクトリにコピーしてください。
GDM を再起動したら設定した背景画像が表示されるはずです (ログアウトするだけでは変更されません)。
 
   
  +
最後に、{{ic|gdm.service}} を再起動してください (注意: 一度ログアウトして再度ログインし直すだけでは十分ではありません)。設定された背景画像が使用されるようになっているはずです。
詳しい情報は [https://bbs.archlinux.org/viewtopic.php?id&#61;197036 フォーラムスレッド] を参照してください。
 
   
  +
詳細は、この[https://bbs.archlinux.org/viewtopic.php?id=197036 フォーラムスレッド]を見てください。上記の手順を自動化するシェルスクリプトは [https://github.com/DimaZirix/fedora-gdm-wallpaper DimaZirix の github リポジトリ]で入手できます。
=== DConf による設定 ===
 
  +
  +
=== dconf の設定 ===
  +
  +
GDM の設定の一部は [[dconf]] データベース内に保存されます。これらの設定は次の2通りの方法で設定することができます。1つ目は、{{ic|/etc/dconf/db/gdm.d}} ディレクトリに''キーファイル''を追加し、{{ic|dconf update}} を root として実行して GDM データベースを再コンパイルする方法。2つ目は、GDM ユーザとしてシステムにログインし、''gsettings'' コマンドラインツールを使って直接設定を変更する方法です。前者の方法の場合、GDM プロファイルのファイルが必要であることに注意してください。このファイルはもはや上流で同梱されていないため、手動で作成しなければなりません。以下を見てください:
   
GDM の設定は一部 DConf データベースに保存されます。{{ic|/etc/dconf/db/gdm.d}} ディレクトリにキーファイルを追加してから root で {{ic|dconf update}} を実行して GDM のデータベースを再コンパイルするか、あるいは GDM ユーザーでログインして ''gsettings'' コマンドラインツールを使って直接設定を変更することができます。前者の場合、GDM のプロフィールファイルが必要です。パッケージには付属していないため手動で作成する必要があります:
 
 
{{hc|/etc/dconf/profile/gdm|
 
{{hc|/etc/dconf/profile/gdm|
 
user-db:user
 
user-db:user
 
system-db:gdm
 
system-db:gdm
file-db:/usr/share/gdm/greeter-dconf-defaults}}
+
file-db:/usr/share/gdm/greeter-dconf-defaults
  +
}}
後者の場合、以下のコマンドで GDM ユーザーでログインできます:
 
  +
# machinectl shell gdm@
 
  +
後者の方法では、以下のコマンドで GDM ユーザとしてログインできます:
  +
  +
# machinectl shell gdm@ /bin/bash
   
 
==== ログイン画面のロゴ ====
 
==== ログイン画面のロゴ ====
   
 
以下のキーファイルを作成してください:
 
以下のキーファイルを作成してください:
  +
 
{{hc|/etc/dconf/db/gdm.d/02-logo|2=
 
{{hc|/etc/dconf/db/gdm.d/02-logo|2=
 
[org/gnome/login-screen]
 
[org/gnome/login-screen]
logo=<nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki>}}
+
logo='<nowiki/>''/path/to/logo.png''<nowiki/>'
  +
}}
その後 GDM データベースを再コンパイルしてください。
 
   
もしくは GDM ユーザーでログインして以下のコマンド実行してください:
+
その後、GDM データベースを再コンパイルしてください。もしくは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてロゴ変更してください:
  +
$ gsettings set org.gnome.login-screen logo <nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki>
 
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.login-screen logo '<nowiki/>''/path/to/logo.png''<nowiki/>'
   
 
==== カーソルテーマの変更 ====
 
==== カーソルテーマの変更 ====
159行目: 150行目:
 
GDM は [[GNOME]] のカーソルテーマの設定を使用せず、[[カーソルテーマ#XDG の仕様|XDG の仕様]]に準拠して設定されたカーソルテーマも無視します。GDM で使用されるカーソルテーマを変更するには、以下のキーファイルを作成してください:
 
GDM は [[GNOME]] のカーソルテーマの設定を使用せず、[[カーソルテーマ#XDG の仕様|XDG の仕様]]に準拠して設定されたカーソルテーマも無視します。GDM で使用されるカーソルテーマを変更するには、以下のキーファイルを作成してください:
   
{{hc|/etc/dconf/db/gdm.d/10-cursor-settings|
+
{{hc|/etc/dconf/db/gdm.d/10-cursor-settings|2=
<nowiki>[org/gnome/desktop/interface]
+
[org/gnome/desktop/interface]
cursor-theme='</nowiki>''theme-name'''
+
cursor-theme='<nowiki/>''theme-name''<nowiki/>'
 
}}
 
}}
その後 GDM データベースを再コンパイルしてください。
 
   
しくは GDM ユーザーでログインして以下のコンド実行してください:
+
て、GDM のデータベースを再コンパイルしてださい。あるい、以下のコマンドを使って一時的に GDM ユーザとしてログインしてカーソルテーマを変更してください:
  +
$ gsettings set org.gnome.desktop.interface cursor-theme <nowiki>'</nowiki>''theme-name''<nowiki>'</nowiki>
 
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface cursor-theme '<nowiki/>''theme-name''<nowiki/>'
  +
  +
==== アイコンテーマの変更 ====
  +
  +
アイコンのテーマを変更する場合も、同じ方法で行うことができます。以下のキーファイルを作成してください:
  +
  +
{{hc|/etc/dconf/db/gdm.d/11-icon-settings|2=
  +
[org/gnome/desktop/interface]
  +
icon-theme='<nowiki/>''theme-name''<nowiki/>'
  +
}}
  +
  +
そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてアイコンテーマを変更してください:
  +
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface icon-theme '<nowiki/>''theme-name''<nowiki/>'
   
 
==== ログイン画面のフォントを大きくする ====
 
==== ログイン画面のフォントを大きくする ====
172行目: 176行目:
 
画面右上のアクセシビリティアイコン (白丸に人影のアイコン) をクリックして ''Large Text'' オプションにチェックを入れてください。
 
画面右上のアクセシビリティアイコン (白丸に人影のアイコン) をクリックして ''Large Text'' オプションにチェックを入れてください。
   
スケーリングファクタを指定したい場合、以下のキーファイルを作成してください:
+
特定のスケーリングファクタを指定するには、以下のキーファイルを作成してください:
  +
 
{{hc|/etc/dconf/db/gdm.d/03-scaling|2=
 
{{hc|/etc/dconf/db/gdm.d/03-scaling|2=
 
[org/gnome/desktop/interface]
 
[org/gnome/desktop/interface]
text-scaling-factor=<nowiki>'</nowiki>''1.25''<nowiki>'</nowiki>}}
+
text-scaling-factor='<nowiki/>''1.25''<nowiki/>'
  +
}}
その後 GDM データベースを再コンパイルしてください。
 
   
しくは GDM ユーザーでログインして以下のコマ実行してください:
+
て、GDM のデータベースを再コンパイルしてださい。あるい、以下のコマンドを使って一時的に GDM ユーザとしてログインしてフォ変更してください:
  +
$ gsettings set org.gnome.desktop.interface text-scaling-factor <nowiki>'</nowiki>''1.25''<nowiki>'</nowiki>
 
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface text-scaling-factor '<nowiki/>''1.25''<nowiki/>'
   
 
==== サウンドをオフにする ====
 
==== サウンドをオフにする ====
   
以下の設定をするとログイン画面でシステム音量を (キーボードで) 変更したときに音が鳴らなくなります。
+
以下の設定をするとログイン画面でシステムリュムを変更した鳴るフィードバック音がオフになります。
   
 
以下のキーファイルを作成してください:
 
以下のキーファイルを作成してください:
  +
 
{{hc|/etc/dconf/db/gdm.d/04-sound|2=
 
{{hc|/etc/dconf/db/gdm.d/04-sound|2=
 
[org/gnome/desktop/sound]
 
[org/gnome/desktop/sound]
event-sounds='false'}}
+
event-sounds=false
  +
}}
その後 GDM データベースを再コンパイルしてください。
 
   
しくは GDM ユーザーでログインして以下のコマンドを実行してください:
+
て、GDM のデータベースを再コンパイルしてださい。あるい、以下のコマンドを使って一時的に GDM ユーザとしてログインしてサウンドをオフにしてください:
  +
$ gsettings set org.gnome.desktop.sound event-sounds 'false'
 
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.sound event-sounds 'false'
   
 
==== 電源ボタンの挙動の設定 ====
 
==== 電源ボタンの挙動の設定 ====
   
{{Note|1=<nowiki></nowiki>
+
{{Note|1=<nowiki/>
* 電源ボタン [[電源管理#ACPI イベント|logind の設定]]は GNOME 設定デーモンによって上書きされます [https://bugzilla.gnome.org/show_bug.cgi?id=755953#c4]
+
* 電源ボタンに対する [[電源管理#ACPI イベント|logind の設定]]はGNOME Settings Daemon によって上書きされます[https://bugzilla.gnome.org/show_bug.cgi?id=755953#c4]
* 2015年10月現在、電源ボタン ''interactive'' に設定できません [https://bugzilla.gnome.org/show_bug.cgi?id=753713#c6]
+
* GDM 3.18 の時点で、電源ボタン ''interactive'' に設定することはできません[https://bugzilla.gnome.org/show_bug.cgi?id=753713#c6]
* ときとして以下の設定無視されハードコードされたデフォルト設定が使ることがあります [https://bugzilla.gnome.org/show_bug.cgi?id=755953#c17]。}}
+
* 一部のケースでの設定無視されハードコードされたデフォルトが使用されます[https://bugzilla.gnome.org/show_bug.cgi?id=755953#c17]
  +
}}
   
 
{{Warning|[[acpid]] デーモンも電源ボタンやハイバネートボタンのイベントを管理することに注意してください。両方のシステムが同時に動作すると予期しない挙動を引き起こす可能性があります。}}
 
{{Warning|[[acpid]] デーモンも電源ボタンやハイバネートボタンのイベントを管理することに注意してください。両方のシステムが同時に動作すると予期しない挙動を引き起こす可能性があります。}}
   
 
以下のキーファイルを作成してください:
 
以下のキーファイルを作成してください:
  +
 
{{hc|/etc/dconf/db/gdm.d/05-power|2=
 
{{hc|/etc/dconf/db/gdm.d/05-power|2=
 
[org/gnome/settings-daemon/plugins/power]
 
[org/gnome/settings-daemon/plugins/power]
power-button-action=<nowiki>'</nowiki>''action''<nowiki>'</nowiki>}}
+
power-button-action='<nowiki/>''action''<nowiki/>'
  +
}}
   
の後 GDM データベースを再コンパイルしてください。もしくは GDM ユーザーでログインして以下のコマ実行:
+
して、GDM データベースを再コンパイルしてください。あるい、以下のコマンドを使って一時的に GDM ユーザとしてログインして電源ボタの挙動設定してください:
$ gsettings set org.gnome.settings-daemon.plugins.power power-button-action <nowiki>'</nowiki>''action''<nowiki>'</nowiki>
 
   
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power power-button-action '<nowiki/>''action''<nowiki/>'
''action'' には {{ic|nothing}}, {{ic|suspend}}, {{ic|hibernate}} のどれかを指定します。
 
  +
  +
''action'' は、{{ic|nothing}}、{{ic|suspend}}、{{ic|hibernate}} のうちどれかです。
   
 
==== タップでクリックを有効化 ====
 
==== タップでクリックを有効化 ====
   
デフォルトでは GDM (と GNOME) ではタップでクリックが無効になっていますdconf の設定で簡単に有効化できます。
+
デフォルトでは GDM (と GNOME) ではタップでクリックが無効になっていますが、dconf の設定で簡単に有効化できます。
   
{{Note|X で以下の設定をしたい場合、まず X サーバーに適切なアクセス権限を設定する必要があります。[[#X サーバーのアクセス権限を設定]]を見てください。}}
+
{{Note|X で以下の設定をしたい場合、まず X サーバーに適切なアクセス権限を設定する必要があります。[[#X サーバーのアクセス権限を設定]]を見てください。}}
   
直接タップでクリックを有効するには、以下のコマンド使用:
+
タップでクリックを有効するには、以下のキーファイル作成してください:
   
  +
{{hc|/etc/dconf/db/gdm.d/06-tap-to-click|2=
{{bc|# sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}
 
  +
[org/gnome/desktop/peripherals/touchpad]
  +
tap-to-click=true
  +
}}
   
  +
そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてタップでクリックを有効化してください:
GUI で設定したい場合、以下のコマンドを使用:
 
   
  +
$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click 'true'
{{bc|# sudo -u gdm dconf-editor}}
 
   
  +
==== アクセシビリティメニューを無効化/有効化する ====
正しく設定されたか確認するには、以下のコマンドを使用:
 
   
  +
{{out of date|GDM 43 の時点で、以下の設定キーは機能しません (しかし、ドキュメントには依然として記述されています [https://help.gnome.org/admin/gdm/3.26/configuration.html.en#accessibilityconfiguration])。代わりに、{{ic|org.gnome.desktop.a11y.applications screen-keyboard-enabled true}} キーを使用してください。}}
{{bc|$ sudo -u gdm gsettings get org.gnome.desktop.peripherals.touchpad tap-to-click}}
 
  +
  +
アクセシビリティメニューを無効化あるいは有効化するには、以下のキーファイルを作成してください:
  +
  +
{{hc|/etc/dconf/db/gdm.d/07-accessibility|2=
  +
[org/gnome/desktop/interface]
  +
toolkit-accessibility='<nowiki/>''boolean''<nowiki/>'
  +
}}
   
  +
そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインして状態を変更してください:
{{ic|dconf-WARNING **: failed to commit changes to dconf: Error spawning command line}} というエラーが表示されるときは、dbus が実行されているか確認してください:
 
   
{{bc|$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}
+
$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface toolkit-accessibility '<nowiki/>''boolean''<nowiki/>'
   
==== アクセシビリティメニューの無効化有効化 ====
+
メニューはキーの値が {{ic|false}} 時に無効化され、{{ic|true}} の時に有効化されます。
   
  +
==== GDM で夜間モードを有効にする ====
アクセシビリティメニューを無効化・有効化したいときは、dconf エディタでキーを設定してください:
 
   
  +
GDM で[[GNOME#夜間モード|夜間モード]]を有効化するには、以下を実行してください:
{{bc|# machinectl shell gdm@
 
# gsettings set org.gnome.desktop.interface toolkit-accessibility false
 
# exit}}
 
   
  +
{{bc|$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled true}}
キーが false の場合はメニューが無効、true の場合は有効になります。
 
   
=== GDM キーボードレイアウト ===
+
=== キーボードレイアウト ===
   
システムのキーボードレイアウト GDM にも適用されます。[[Xorg でのキーボード設定#X の設定ファイルを使う]]を見てください。
+
システムのキーボードレイアウト GDM にも適用されます。[[Xorg でのキーボード設定#X の設定ファイルを使う]] を見てください。
   
{{Tip|[[Wikipedia:ISO 3166-1]] キーマップのリストがあります。}}
+
{{Tip|国名に基づくキーマップのリストについては、[[Wikipedia:ja:ISO 3166-1]] を参照してください。または、システムで利用可能なキーマップを {{ic|localectl list-keymaps}} で一覧表示することもできます。}}
   
  +
Wayland を使用している場合、{{man|1|localectl}} で X のキーボードレイアウトを手動で指定する必要がある場合があります。以下の例では、フランス語のレイアウトが設定されています:
==== GNOME Control Center ====
 
   
  +
# localectl set-x11-keymap fr
ユーザーが複数存在する場合、システムのキーボードレイアウト以外のレイアウトを GDM で指定することができます。{{Pkg|gnome-control-center}} パッケージがインストールされている場合、グラフィカルフロントエンドを使ってキーボードレイアウトを設定できます。''gnome-control-center'' を起動して ''Keyboard -> Input Sources'' を開いてください。そして、ヘッダーバーにある ''Login Screen'' ボタンを押して GDM のキーボードレイアウトを設定してください。ユーザーが一人しかいない場合は ''Login Screen'' ボタンは表示されません [https://bugzilla.gnome.org/show_bug.cgi?id=741500]。
 
   
  +
システムに複数のユーザが存在する場合、GDM によって使用されるキーボードレイアウトをシステムのキーボードレイアウトとは異なるものに設定することができます。まず、{{Pkg|gnome-control-center}} がインストールされていることを確認してください。そして、''gnome-control-center'' を起動し、''Region & Language > Input Sources'' を開いてください。ヘッダーバーにある ''Login Screen'' トグルボタンをクリックし、リストの中からキーボードレイアウトを選択してください。注意点として、システムに複数のユーザが存在しないと ''Login Screen'' ボタンは表示されません [https://bugzilla.gnome.org/show_bug.cgi?id=741500]。
==== GDM 2.x レイアウト ====
 
   
旧バジョンの GDM では {{ic|~/.dmrc}} を編集してください:
+
GDM 2.x (レガシ GDM) では{{ic|~/.dmrc}} を以下のように編集する必要があります:
   
 
{{hc|~/.dmrc|2=
 
{{hc|~/.dmrc|2=
 
[Desktop]
 
[Desktop]
Language=de_DE.UTF-8 # change to your default lang
+
Language=de_DE.UTF-8 # デフォルトの言語
Layout=de nodeadkeys # change to your keyboard layout
+
Layout=de nodeadkeys # キーボードレイアウト
 
}}
 
}}
   
 
=== 言語の変更 ===
 
=== 言語の変更 ===
   
システムの言語 GDM にも適用されます。ユーザ複数存在する場合、GDM 言語をシステム言語以外に設定することができます。GDM の言語を変更するには、{{Pkg|gnome-control-center}} インストールしてください。そして、''gnome-control-center'' を起動して ''Region & Language'' を選択してください。ヘッダーバーにある ''Login Screen'' ボタンをクリックしてください。最後に ''Language'' をクリックしリストから言語を選択してください。root パスワードが要求されます。システムに複数のユーザが存在しないと ''Login Screen'' ボタンは表示されないので注意してください [https://bugzilla.gnome.org/show_bug.cgi?id=741500]。
+
システムの言語 GDM にも適用されます。システムに複数のユーザが存在する場合、GDM によって使用される言語をシステム言語とは異なるものに設定することができます。GDM の言語を変更するには、まず、{{Pkg|gnome-control-center}} インストールされていることを確認してください。そして、''gnome-control-center'' を起動して ''Region & Language'' を選択してください。次に、ヘッダーバーにある ''Login Screen'' トグルボタンをクリックしてください。最後に''Language'' をクリックしリストから言語を選択してください。この時、root パスワードが要求されます。注意点として、システムに複数のユーザが存在しないと ''Login Screen'' ボタンは表示されません [https://bugzilla.gnome.org/show_bug.cgi?id=741500]。
  +
  +
{{Tip|2つの異なる入力言語を追加し、ログアウトし、そしてデフォルトの言語を選択すると、第2のオプションが削除された後に GDM は選択された言語を記憶します。}}
   
 
=== ユーザーとログイン ===
 
=== ユーザーとログイン ===
   
 
==== 自動ログイン ====
 
==== 自動ログイン ====
  +
GDM で自動ログインするには、以下を {{ic|/etc/gdm/custom.conf}} に追加してください (''username'' はあなたのユーザー名に置き換えてください):
 
  +
{{Warning|[[systemd-homed]] によって管理されているユーザに対してはこれを行わないでください。現在、この機能は[https://github.com/systemd/systemd/issues/20844 未実装]であり、GDM をクラッシュさせます。}}
  +
  +
GDM で自動ログインを有効化するには、以下を {{ic|/etc/gdm/custom.conf}} に追加してください ({{ic|''username''}} は自身のものに置き換えてください):
   
 
{{hc|1=/etc/gdm/custom.conf|
 
{{hc|1=/etc/gdm/custom.conf|
  +
2=# ユーザに対して自動ログインを有効化する
2=# Enable automatic login for user
 
 
[daemon]
 
[daemon]
 
AutomaticLogin=''username''
 
AutomaticLogin=''username''
281行目: 306行目:
 
}}
 
}}
   
{{Tip|上記のを追加した後に GDM が起動しなくなった場合、TTY からコメントアウトしてください。}}
+
{{Tip|上記の設定を追加した後に GDM が起動しなくなってしまった場合、TTY から設定をコメントアウトしてください。}}
   
もしく一定時間後に自動ログインしたい場合:
+
あるい自動ログインを遅延させるには:
   
 
{{hc|1=/etc/gdm/custom.conf|
 
{{hc|1=/etc/gdm/custom.conf|
 
2=[daemon]
 
2=[daemon]
 
 
TimedLoginEnable=true
 
TimedLoginEnable=true
 
TimedLogin=''username''
 
TimedLogin=''username''
293行目: 317行目:
 
}}
 
}}
   
自動ログイン使用するセッションを設定するには ({{ic|gnome-xorg}} を使用したいセッションに置き換えてください):
+
自動ログイン使用するセッションを設定することもできます ({{ic|gnome-xorg}} は任意のセッションに置き換えてください):
   
 
{{hc|1=/var/lib/AccountsService/users/''username''|
 
{{hc|1=/var/lib/AccountsService/users/''username''|
299行目: 323行目:
 
}}
 
}}
   
====パスワードなしログイン====
+
==== パスワードレスログイン ====
  +
GDM のパスワードプロンプトを飛ばしたいのならば次の行を {{ic|/etc/pam.d/gdm-password}} の一番最初に追加してください:
 
  +
GDM でパスワードプロンプトをバイパスしたい場合は、以下の設定を {{ic|/etc/pam.d/gdm-password}} の最初の行に追加してください:
   
 
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
 
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
   
次に、グループ {{ic|nopasswdlogin}} をシステムに追加してください。グループ説明と管理コマンドについては[[グループ]]を見てください。
+
次に、{{ic|nopasswdlogin}} グループをシステムに追加してください。グループに関する説明とグループの管理コマンドについては [[ユーザーグループ]] を見てください。
   
そして、あなたのユーザーを {{ic|nopasswdlogin}} に加えればユーザー名をクリックするだけでログインできるようになるはずです。
+
そして、あなたのユーザーを {{ic|nopasswdlogin}} グループに加えればユーザー名をクリックするだけでログインできるようになります。
   
 
{{Warning|
 
{{Warning|
*'''root''' アカウントでパスワードの入力の省略を'''使わないでさい'''。
+
* '''root''' アカウントに対してはこれを'''わないでください'''。
*GDM ログイン時にセッションのタイプを変更することはできなくなります。デフォルトのセッションのタイプを変更するには、まずユーザーを {{ic|nopasswdlogin}} グループから削除する必要があります。}}
+
* これにより、GDM ログイン時にセッションの種類を変更することはできなくなります。セッションのデフォルトの種類を変更したい場合は、まず{{ic|nopasswdlogin}} グループからあなたのユーザを削除する必要があります。
  +
}}
   
====パスワードなしシャットダウン====
+
==== 複数のセッションが存在する場合にパスワードレスシャットダウン ====
GDM はシャットダウンの権限を取得するために [[polkit]] と logind を使っています。以下を設定することでパスワードを入力することなくシャットダウンできるようになります:
 
   
  +
GDM はシャットダウンの権限を取得するために polkit と logind を使用しています。以下の設定により、複数のユーザがログインしている時にシステムをシャットダウンできるようになります:
{{hc|1=/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy|
 
  +
2=<?xml version="1.0" encoding="UTF-8"?>
 
  +
{{hc|1=/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy|2=<nowiki>
  +
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE policyconfig PUBLIC
 
<!DOCTYPE policyconfig PUBLIC
 
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"https://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
+
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
   
 
<!--
 
<!--
337行目: 364行目:
   
 
</policyconfig>
 
</policyconfig>
  +
</nowiki>}}
}}
 
   
利用可能な logind のオプション (例: reboot-multiple-sessions) の全て[https://www.freedesktop.org/wiki/Software/systemd/logind#Security ここ] に載っています。
+
logind の利用可能なオプション (例: reboot-multiple-sessions) は {{man|5|org.freedesktop.login1}} で見られます。
   
==== GDM セッショの追加と編集 ====
+
==== GDM で root ログイを有効にする ====
   
  +
root としてログインすることは推奨されていませんが、必要であれば、{{ic|/etc/pam.d/gdm-password}} を編集して以下の設定を {{ic|auth required pam_deny.so}} 行より前に追加することで root としてログインできるようになります:
[[ディスプレイマネージャ#セッション設定]]を見てください。
 
  +
  +
{{hc|/etc/pam.d/gdm-password|
  +
auth sufficient pam_succeed_if.so uid eq 0 quiet
  +
}}
   
  +
最終的にこのファイルは以下のような見た目になるはずです:
==== GDM の root ログインを有効にする ====
 
root でログインすることは推奨されていませんが、どうしても必要ならば {{ic|/etc/pam.d/gdm-password}} を編集して {{ic|auth required pam_deny.so}} の前に以下の行を追加してください:
 
{{hc|/etc/pam.d/gdm-password|auth sufficient pam_succeed_if.so uid eq 0 quiet}}
 
   
  +
{{hc|/etc/pam.d/gdm-password|2=
ファイルは以下のようになるはずです:
 
{{hc|/etc/pam.d/gdm-password|<nowiki>
 
 
...
 
...
 
auth sufficient pam_succeed_if.so uid eq 0 quiet
 
auth sufficient pam_succeed_if.so uid eq 0 quiet
 
auth sufficient pam_succeed_if.so uid >= 1000 quiet
 
auth sufficient pam_succeed_if.so uid >= 1000 quiet
 
auth required pam_deny.so
 
auth required pam_deny.so
...</nowiki>}}
+
...
  +
}}
   
root ログインるには GDM を再起動す必要があります。
+
GDM を再起動したら、root としてログインできようなっていはずです。
   
==== ログインリストユーザを非表示にする ====
+
==== ログインリストからユーザを非表示にする ====
   
GDM のユーザリストに表示されるユーザーは [https://www.freedesktop.org/wiki/Software/AccountsService/ AccountsService] で決められています。システムユーザ (UID < 1000) は自動的に非表示になります。通常ユーザーもログインリスト表示しないようにするには {{ic|/var/lib/AccountsService/users/}} に隠したいユーザーの名前を付けたファイルを作成編集して中身を以下のようにしてください:
+
GDM のユーザリストは [https://www.freedesktop.org/wiki/Software/AccountsService/ AccountsService] によって生成されたものです。システムユーザ (UID < 1000) は自動的に非表示になります。通常ユーザログインリストから非表示にするには、非表示にするユーザの名前が付いたファイルを {{ic|/var/lib/AccountsService/users/}} に作成、または編集し、最低でも以下の内容を追加してください:
  +
{{hc|/var/lib/AccountsService/users/<nowiki><username></nowiki>|
 
  +
{{hc|/var/lib/AccountsService/users/''username''|2=
 
[User]
 
[User]
<nowiki>SystemAccount=true</nowiki>}}
+
SystemAccount=true
  +
}}
   
=== デフォルトのモニター設定 ===
+
=== デフォルトのモニター設定をセットアップする ===
   
[[デスクトップ環境]]によってはディスプレイの設定 {{ic|~/.config/monitors.xml}} に保存されます。ファイルの内容を元 ''xrandr'' コマンドが生成されます。GDM は同じように設定を {{ic|/var/lib/gdm/.config/monitors.xml}} ファイルに保存します。
+
一部の[[デスクトップ環境]]はディスプレイの設定 {{ic|~/.config/monitors.xml}} に保存しています。そのファイルの内容に基づいて、''xrandr'' コマンドが生成されます。GDM にも、似たようなファイル {{ic|/var/lib/gdm/.config/monitors.xml}} ています。
   
{{ic|~/.config/monitors.xml}} でモニターの設定 (モニタの方プライマリモニターの設定など) を行っている場合、GDM も同じ設定を使うようにするには以下のコマンドを実行:
+
{{ic|~/.config/monitors.xml}} でモニタをセットアップして (解像度、リフレッシュレト、き、スケーリング、プライマリなど)、GDM にこれらの設定を使用してほしい場合、以下を実行して設定ファイルをコピーしてください:
   
# cp ~/.config/monitors.xml /var/lib/gdm/.config/monitors.xml
+
# cp ~/.config/monitors.xml /var/lib/gdm/.config/
   
  +
ブートするたびにモニターのセットアップを自動的に再設定するには、{{ic|gdm.service}} の[[ドロップインファイル]]を使用してください:
変更はログアウトしたら適用されます。GDM は {{ic|xorg.conf}} を使用しないためログアウトが必要です。
 
   
  +
{{hc|/etc/systemd/system/gdm.service.d/override.conf|2=
{{Note|1=Wayland バックエンドは Wayland で作成された {{ic|monitors.xml}} ファイルを使用します。詳しくは [https://bugzilla.gnome.org/show_bug.cgi?id=748098 GNOME bug 748098] を見てください。Xorg で作成した {{ic|monitors.xml}} を使うために Wayland バックエンドを無効化する方法は [[#Xorg バックエンドを使う]]を見てください。}}
 
  +
[Service]
  +
ExecStartPre=/bin/cp /home/''user''/.config/monitors.xml /var/lib/gdm/.config/monitors.xml
  +
}}
  +
  +
{{ic|monitors.xml}} の中でスクリーンの回転とスケーリングに関連する部分は以下のとおりです:
  +
  +
<monitors version="2">
  +
<configuration>
  +
<logicalmonitor>
  +
...
  +
<scale>2</scale>
  +
...
  +
<transform>
  +
<rotation>right</rotation>
  +
<flipped>no</flipped>
  +
</transform>
  +
...
  +
</logicalmonitor>
  +
</configuration>
  +
</monitors>
  +
  +
変更はログアウト時に適用されます。GDM は {{ic|xorg.conf}} の設定を尊重しないため、ログアウトが必須です。
  +
  +
{{Note|
  +
* GDM を Wayland で使用している場合、Wayland 内で作成された {{ic|monitors.xml}} も使用しなければなりません。詳細は [https://gitlab.gnome.org/GNOME/gdm/issues/224 GDM bug 224] を参照してください。あるいは、GDM に [[#Xorg バックエンドを使う]] ように強制し、Xorg 内で作成された {{ic|monitors.xml}} を使用することもできます。
  +
* [[HiDPI#分数スケーリング|分数スケーリング]]を使用する場合、{{ic|gdm}} ユーザに対して分数スケーリングを有効化する必要があります:
  +
sudo -u gdm dbus-launch gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
  +
}}
   
 
=== X サーバーのアクセス権限を設定 ===
 
=== X サーバーのアクセス権限を設定 ===
384行目: 443行目:
 
例えば、GDM に X サーバーのアクセス権限を与えるには、以下のコマンドを使います:
 
例えば、GDM に X サーバーのアクセス権限を与えるには、以下のコマンドを使います:
   
# xhost +SI:localuser:gdm
+
{{bc|# xhost +SI:localuser:gdm}}
  +
  +
== トラブルシューティング ==
  +
  +
=== Wayland とプロプライエタリな NVIDIA ドライバ ===
   
  +
[[NVIDIA]] ドライバを使って GDM で Wayland を使用するには、まず [[NVIDIA#DRM カーネルモード設定|DRM カーネルモード設定]]を有効化しなければなりません。
==トラブルシューティング==
 
   
  +
{{Note|[[NVIDIA#DRM カーネルモード設定|KMS を有効化]]して [[NVIDIA#Wayland|Wayland の設定]]をしても GDM に Wayland のオプションが表示されない場合、{{ic|NVreg_PreserveVideoMemoryAllocations}} と [https://gitlab.gnome.org/GNOME/gdm/-/commit/51181871e9db716546e9593216220389de0d8b03 NVIDIA の systemd サービス]が無効化されている可能性が高いです。以下の方法で Wayland を強制してみる前に、まず [[NVIDIA/ヒントとテクニック#サスペンド後にビデオメモリを保持する]] に書かれてある指示に従ってください。}}
=== Wayland と独自の NVIDIA ドライバ ===
 
   
  +
GDM バージョン 42 と NVIDIA ドライババージョン 510 の時点で、GDM はデフォルトで Wayland を使用します。それより古い NVIDIA ドライバ (バージョン 470 から 510 の間) の場合、GDM にはチップセット依存の [https://gitlab.gnome.org/GNOME/gdm/-/blob/main/data/61-gdm.rules.in udev ルール]が存在しており、Wayland ではなく Xorg を使用します。Wayland を強制するには、以下のシンボリックリンクを作成してこれらのルールをオーバーライドしてください:
GDM は、Wayland モードでプロプライエタリな [[NVIDIA]] ドライバではうまく動作しません。このドライバを使う場合、GDM は Xorg を代わりに使います。[https://gitlab.gnome.org/GNOME/gdm/merge_requests/46]
 
   
  +
# ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
Wayland を強制的に有効にするには、GDM で Wayland を無効にする [[udev]] ルールを無効にします。
 
   
  +
{{Note|このコマンドが動くのは、{{ic|/etc/udev/rules.d/}} 内のルールは {{ic|/usr/lib/udev/rules.d/}} 内のルールをオーバーライドするからです ([[udev#udev ルールについて]] を参照)。また、{{ic|/usr/lib/udev/rules.d/}} よりも {{ic|/etc/udev/rules.d/}} を変更することが推奨されます。なぜなら、前者は [[pacman]] によって管理されているからです。}}
# ln-s/dev/null/etc/udev/rules.d/61 gdm.rules
 
   
GDM の代わりに黒い画面が表示される場合、コンピュータの BIOS 設定で内蔵グラフィックスを無効してみてください。
+
GDM が表示されずに黒画面になる場合、コンピュータの BIOS 設定から統合グラフィックスを無効してみてください。
   
===ログアウト時に GDM が動かない===
+
=== ログアウト時に GDM が動かない ===
   
 
起動時には GDM が問題なく立ち上がるのに、ログアウトした後に問題が発生する場合は、次の行を {{ic|/etc/gdm/custom.conf}} の daemon セクションに追加してみて下さい:
 
起動時には GDM が問題なく立ち上がるのに、ログアウトした後に問題が発生する場合は、次の行を {{ic|/etc/gdm/custom.conf}} の daemon セクションに追加してみて下さい:
404行目: 467行目:
 
GdmXserverTimeout=60
 
GdmXserverTimeout=60
   
=== Xorg 1.16 ===
+
=== Rootless Xorg ===
   
[[Xorg#Rootless Xorg (v1.16)]] を見て下さい。
+
[[Xorg#Rootless Xorg]] を見て下さい。
   
 
=== Xorg バックエンドを使う ===
 
=== Xorg バックエンドを使う ===
   
GDMージョ 3.16 から、デフォルトで [[Wayland]] バックエンドが使れるようになっており、Wayland バックエンド起動できない場合のみ [[Xorg]] バックエンドが使われます。ユーザーにっては Wayland バックエンドで問題が発生しているとい [https://bugzilla.redhat.com/show_bug.cgi?id=1199890 報告] があり、場合によっては Xorg バックエンド使用必要なことがあります。デフォルト Xorg バックエンドを使用させるには、{{ic|/etc/gdm/custom.conf}} ファイルを編集て以下の行をアンコメントしてください:
+
[[Wayland]]ックエドはデフォルトで使用されます。[[Xorg]] バックエンドが使用されるのは、Wayland バックエンド起動できない場合のみす。例えば以下のよう場合には Xorg バックエンドを代わりに使用する必要があでしょう:
#WaylandEnable=false
 
   
  +
* GDM が[https://bbs.archlinux.org/viewtopic.php?pid=1869534#p1869534 クラッシュしてしまう]
=== GDM で黒画面に白い点滅するカーソルしか表示されない ===
 
   
  +
Xorg バックエンドをデフォルトで使用するには、{{ic|/etc/gdm/custom.conf}} 内の以下の行をアンコメントしてください:
起動後に、左上に白い点滅するカーソルだけの黒い画面を GDM が表示することがあります。これはグラフィックドライバーが完全に初期化される前に GDM が起動してしまうことが原因です。解決方法のひとつは [[Kernel Mode Setting#Early KMS start|KMS を初期段階で起動]]するように設定することです。また、別の解決方法として [[Systemd#ユニットファイルの編集|systemd サービスを編集]]してタイプを "idle" に設定する、あるいは遅延時間を追加する方法もあります:
 
 
[Service]
 
Type=idle
 
   
  +
#WaylandEnable=false
または:
 
   
  +
=== 何らかの入力がないと GDM が起動しない ===
[Service]
 
ExecStartPre=/bin/sleep 2
 
   
  +
{{Out of date|Linux 5.6 以降、この問題はもはや存在しません。}}
ドライバーの初期化にかかる時間が長い場合は、上記の時間を増やしてください。
 
 
=== 手元で操作しないと GDM が起動しない ===
 
   
 
起動しても画面が暗いままで、マウスを動かしたりキーボードに何か打ち込まないと GDM が起動しない場合、原因はおそらく乱数生成のためのエントロピーが不足しているためです。問題を確認するために ''systemd-random-seed'' のログ ({{ic|journalctl --unit systemd-random-seed}} コマンドで読むことができます) の中に以下のような行がないかチェックしてください:
 
起動しても画面が暗いままで、マウスを動かしたりキーボードに何か打ち込まないと GDM が起動しない場合、原因はおそらく乱数生成のためのエントロピーが不足しているためです。問題を確認するために ''systemd-random-seed'' のログ ({{ic|journalctl --unit systemd-random-seed}} コマンドで読むことができます) の中に以下のような行がないかチェックしてください:
433行目: 489行目:
 
Kernel entropy pool is not initialized yet, waiting until it is.
 
Kernel entropy pool is not initialized yet, waiting until it is.
   
問題を解決するには、{{ic|<nowiki>random.trust_cpu=on</nowiki>}} [[カーネルパラメータ]]を設定してください (あなたの使っている CPU が ''RDRAND'' 命令をサポートしている場合)。もしくはエントロピーを供給するために [[haveged]] をインストールすることでも解決できます (ただしエントロピーの品質は保証されていません)。[https://wiki.debian.org/BoottimeEntropyStarvation Debian の記事] に記載されている他の解決方法も参照。
+
問題を解決するには、{{ic|<nowiki>random.trust_cpu=on</nowiki>}} [[カーネルパラメータ]]を設定してください (あなたの使っている CPU が ''RDRAND'' 命令をサポートしている場合)。もしくはエントロピーを供給するために [[haveged]] をインストールすることでも解決できます (ただしエントロピーの品質は保証されていません)。[[debian:BoottimeEntropyStarvation|Debian の記事]]に記載されている他の解決方法も参照。
   
=== GDM の不完全削除 ===
+
=== gdm 完全削除されない ===
   
GDM を削除すると、[[systemd]] が以下のようにエラーを吐くことがあります:
+
{{Pkg|gdm}} を削除した後、[[systemd]] が以下のようなメッセ出力する場合があります:
   
 
user 'gdm': directory '/var/lib/gdm' does not exist
 
user 'gdm': directory '/var/lib/gdm' does not exist
   
上記の警告を消すには、root ログインしプライマリユーザーの "gdm" とグループの "gdm" を削除してください:
+
の警告を取り除くには、root としてログインし、{{ic|gdm}} [[ユーザーとグループ#ユーザー管理の他の例|プライマリユーザを削除]]し、{{ic|gdm}} [[ユーザーとグループ#グループ管理|グループを削除]]してください
   
  +
{{ic|gdm}} が正しく削除されたかどうかは {{ic|pwck}} と {{ic|grpck}} を root 権限で実行することで確認できます。最後に、''gdm'' 由来の[[Pacman ヒント#どのパッケージにも所有されていないファイルを特定する|どのユーザにも所有されていないファイル]]が残留していないかどうかダブルチェックしたほうが良いでしょう。
# userdel gdm
 
# groupdel gdm
 
   
  +
=== GDM の自動サスペンド (GNOME 3.28) ===
{{ic|pwck}} や {{ic|grpck}} を使うことで gdm が削除されたことを確認できます。[[Pacman ヒント#ファイルがどのパッケージにも含まれていないことを確認|所有者がないファイル]]がないか確認すると良いでしょう。
 
   
  +
GDM は GNOME とは別の dconf データベースを使用して電源管理を制御しています。ユーザーセッションと同じように GDM が振る舞うようにしたい場合、ユーザー設定を GDM の dconf データベースにコピーしてください ({{ic |'' username ''}} はユーザー名です):
=== GDM 自動サスペンド (GNOME 3.28) ===
 
GDM は GNOME と別の dconf データベースを使用して電源管理を制御しています。ユーザーセッションと同じように GDM が振る舞うようにしたい場合、ユーザー設定を GDM の dconf データベースにコピーしてください:
 
   
$ IFS=$'\n'; for x in $(sudo -u YOUR_USER gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS
+
$ IFS=$'\n'; for x in $(sudo -u ''username'' gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS
   
もしくは単純に自動サスペンドを無効にしたい場合 ({{ic|ac}} を {{ic|battery}} 置き換えるとバッテリー接続時も自動サスペンドが無効になります):
+
AC での自動サスペンドのみを無効にするは、次のコマンドを実行してください:
   
 
$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
 
$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
  +
  +
(バッテリー環境での自動サスペンドも無効にするには、{{ic|ac}} を {{ic|battery}} に変えてしてコマンドを実行してください。)
  +
  +
変更をアクティブ化するには、GDM を再起動してください。
  +
  +
=== GDM が Wayland を無視し、デフォルトで X.Org を使用する ===
  +
  +
Wayland が動作するためには、カーネルモード設定 (KMS) が動作している必要がありますが、マシンによっては GDM プロセスが KMS よりも早く開始し、結果として GDM が Wayland を認識できず、X.Org のみで動作することになります。その結果、ログに次のようなメッセージが表示されることがあります:
  +
  +
gnome-shell[569]: Failed to open gpu '/dev/dri/card0': GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Operation not permitted
  +
gnome-shell[569]: Failed to create backend: No GPUs found
  +
systemd[505]: org.gnome.Shell@wayland.service: Failed with result 'protocol'.
  +
systemd[505]: Failed to start GNOME Shell on Wayland.
  +
  +
また、同じ問題に依って、GDM が表示されなかったり、TTY の出力しか表示されなかったりすることもあります。
  +
  +
この問題は、[[カーネルモード設定#KMS の早期開始|KMS をより早い段階で開始する]]ことで解決できます。また、GDM の設定ファイルで Wayland が有効化されていることも確認したほうが良いでしょう ([[#Xorg バックエンドを使う]] を参照)。
  +
  +
また、[[NVIDIA]] ドライバを使用している場合、Wayland セッションが [[udev]] ルールによってブロックされてしまうかもしれません ([[GNOME#Wayland セッション]])。この場合、以下のようなメッセージが出力されることがあります:
  +
  +
systemd[1022]: Condition check resulted in GNOME Shell on Wayland being skipped.
  +
systemd[1022]: org.gnome.Shell@wayland.service: Skipped due to 'exec-condition'.
  +
systemd[1022]: org.gnome.Shell@wayland.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
  +
  +
回避策は [[#Wayland とプロプライエタリな NVIDIA ドライバ]] を見てください。
  +
  +
=== NVidia (e)GPU が存在する場合、AMD または Intel GPU で黒い画面が表示される ===
  +
  +
初めに NVidia デバイスが接続されていない場合、GDM は Wayland で通常通り起動し動作しますが、NVidia eGPU が接続される (または、他の何らかの理由で {{ic|nvidia}} モジュールがロードされる) と動作を停止してしまいます。この問題の典型的な症状としては、ログアウト時と GDM の再起動時に黒画面と点滅するカーソルが表示され、以下のメッセージが GDM のログに出力されるというものです (root として {{ic|journalctl -u gdm -b}} を実行することでログにアクセスした場合):
  +
  +
Gdm: Child process -<PID> was already dead.
  +
  +
解決策は [[#GDM が Wayland を無視し、デフォルトで X.Org を使用する]] と同じです: {{ic|nvidia}} モジュールのロード時に {{ic|/usr/lib/gdm-disable-wayland}} が実行されないようにするのです。
  +
  +
Wayland 上で動作している GDM は、{{ic|/usr/lib/gdm-disable-wayland}} が一度でも実行されていると機能しなくなってしまうことを留意してください。これは、{{ic|1=WaylandEnable=false}} が、{{ic|/etc/gdm/custom.conf}} の設定をオーバーライド {{ic|/run/gdm/custom.conf}} に書き込まれるからです。再起動せずにこの問題を修正するには、{{ic|/run/gdm/custom.conf}} を削除し、GDM を再起動してください。
  +
  +
=== GDM が有効にならない ===
  +
  +
[[systemd FAQ#既存のシンボリックリンクのためにユニットを有効にすることができない]] を参照してください。
   
 
== 参照 ==
 
== 参照 ==
   
 
* [https://help.gnome.org/admin/gdm/stable/index.html.en GDM リファレンスマニュアル]
 
* [https://help.gnome.org/admin/gdm/stable/index.html.en GDM リファレンスマニュアル]
  +
  +
{{TranslationStatus|GDM|2023-10-02|785028}}

2024年8月18日 (日) 14:04時点における最新版

関連記事

GDM - GNOME Display Manager より: "GNOME Display Manager (GDM) はグラフィカルディスプレイサーバーを管理しグラフィカルユーザーログインを処理するプログラムです。"

ディスプレイマネージャX Window SystemWayland のユーザーにグラフィカルなログインプロンプトを提供します。

目次

インストール

GDM は gdm パッケージでインストールできます。また、gnome グループの一部としてもインストールされます。

起動

ブート時に GDM を起動するには、gdm.service有効化して下さい。

アプリケーションの自動起動

ログイン後に自動的にアプリケーションを起動するには、自動起動#デスクトップ環境のスタートアップ時 のページであなたのデスクトップ環境に関係する指示に従ってください。

設定

ノート: 以下の設定オプションのほとんどは、gdm-settingsAUR GUI アプリケーションを使用して簡単に設定することができます。

ログイン画面の背景画像

ノート:
  • GNOME 3.16 から、GNOME Shell のテーマはバイナリファイル (gresource) として保存されるようになりました。
  • 以下の変更は、gnome-shell が更新されると上書きされてしまいます。

まず、既存の GNOME Shell テーマを抽出して、ホームディレクトリ内の何らかのディレクトリに保存する必要があります。これは、以下のスクリプトで可能です:

extractgst.sh
#!/bin/sh
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource
workdir=${HOME}/shell-theme

for r in `gresource list $gst`; do
	r=${r#\/org\/gnome\/shell/}
	if [ ! -d $workdir/${r%/*} ]; then
	  mkdir -p $workdir/${r%/*}
	fi
done

for r in `gresource list $gst`; do
        gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done

作成されたディレクトリに移動してください。抽出されたテーマファイルが確認できるはずです。好きな背景画像をこのディレクトリへコピーしてください。

次に、そのディレクトリ内に以下のようなファイルを作成する必要があります:

gnome-shell-theme.gresource.xml
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">
    <file>calendar-today.svg</file>
    <file>calendar-today-light.svg</file>
    <file>checkbox.svg</file>
    <file>checkbox-focused.svg</file>
    <file>checkbox-off-focused-light.svg</file>
    <file>checkbox-off-focused.svg</file>
    <file>checkbox-off-light.svg</file>
    <file>checkbox-off.svg</file>
    <file>gnome-shell.css</file>
    <file>gnome-shell-high-contrast.css</file>
    <file>gnome-shell-start.svg</file>
    <file>pad-osd.css</file>
    <file>process-working.svg</file>
    <file>toggle-off.svg</file>
    <file>toggle-off-hc.svg</file>
    <file>toggle-off-light.svg</file>
    <file>toggle-on.svg</file>
    <file>toggle-on-hc.svg</file>
    <file>toggle-on-light.svg</file>
    <file>workspace-placeholder.svg</file>
    <file>filename</file>
  </gresource>
</gresources>

filename は使用する背景画像のファイル名に置き換えてください。あるいは、16進数のカラーコードを使用する場合は、この行を削除してください。

そのディレクトリ内の gnome-shell.css ファイルを開き、#lockDialogGroup の定義を以下のように変更してください:

#lockDialogGroup {
  background: url(filename);
  background-size: widthpx heightpx;
  background-repeat: no-repeat;
}

background-size は GDM が使用する解像度に設定してください (これは、画像の解像度と同じとは限りません)。画面解像度の一覧は、Wikipedia:Display_resolution#Computer_monitors を見てください。最後に、filename の部分は背景画像のファイル名に置き換えてください。

背景色だけを変更したい場合は、#lockDialogGroup の定義を以下のように変更してください:

#lockDialogGroup {
  background-color: #color;
}

color は背景色の16進数カラーコードです。

次に、以下のコマンドでテーマをコンパイルしてください:

$ glib-compile-resources gnome-shell-theme.gresource.xml

そして、出来上がった gnome-shell-theme.gresource ファイルを /usr/share/gnome-shell ディレクトリにコピーしてください。

最後に、gdm.service を再起動してください (注意: 一度ログアウトして再度ログインし直すだけでは十分ではありません)。設定された背景画像が使用されるようになっているはずです。

詳細は、このフォーラムスレッドを見てください。上記の手順を自動化するシェルスクリプトは DimaZirix の github リポジトリで入手できます。

dconf の設定

GDM の設定の一部は dconf データベース内に保存されます。これらの設定は次の2通りの方法で設定することができます。1つ目は、/etc/dconf/db/gdm.d ディレクトリにキーファイルを追加し、dconf update を root として実行して GDM データベースを再コンパイルする方法。2つ目は、GDM ユーザとしてシステムにログインし、gsettings コマンドラインツールを使って直接設定を変更する方法です。前者の方法の場合、GDM プロファイルのファイルが必要であることに注意してください。このファイルはもはや上流で同梱されていないため、手動で作成しなければなりません。以下を見てください:

/etc/dconf/profile/gdm
user-db:user
system-db:gdm
file-db:/usr/share/gdm/greeter-dconf-defaults

後者の方法では、以下のコマンドで GDM ユーザとしてログインできます:

# machinectl shell gdm@ /bin/bash

ログイン画面のロゴ

以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/02-logo
[org/gnome/login-screen]
logo='/path/to/logo.png'

その後、GDM データベースを再コンパイルしてください。もしくは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてロゴを変更してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.login-screen logo '/path/to/logo.png'

カーソルテーマの変更

GDM は GNOME のカーソルテーマの設定を使用せず、XDG の仕様に準拠して設定されたカーソルテーマも無視します。GDM で使用されるカーソルテーマを変更するには、以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/10-cursor-settings
[org/gnome/desktop/interface]
cursor-theme='theme-name'

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてカーソルテーマを変更してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface cursor-theme 'theme-name'

アイコンテーマの変更

アイコンのテーマを変更する場合も、同じ方法で行うことができます。以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/11-icon-settings
[org/gnome/desktop/interface]
icon-theme='theme-name'

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてアイコンテーマを変更してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface icon-theme 'theme-name'

ログイン画面のフォントを大きくする

画面右上のアクセシビリティアイコン (白丸に人影のアイコン) をクリックして Large Text オプションにチェックを入れてください。

特定のスケーリングファクタを指定するには、以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/03-scaling
[org/gnome/desktop/interface]
text-scaling-factor='1.25'

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてフォントを変更してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface text-scaling-factor '1.25'

サウンドをオフにする

以下の設定をすると、ログイン画面でシステムのボリュームを変更した際に鳴るフィードバック音がオフになります。

以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/04-sound
[org/gnome/desktop/sound]
event-sounds=false

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてサウンドをオフにしてください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.sound event-sounds 'false'

電源ボタンの挙動の設定

ノート:
  • 電源ボタンに対する logind の設定は、GNOME Settings Daemon によって上書きされます。[1]
  • GDM 3.18 の時点で、電源ボタンを interactive に設定することはできません。[2]
  • 一部のケースで、この設定は無視され、ハードコードされたデフォルトが使用されます。[3]
警告: acpid デーモンも電源ボタンやハイバネートボタンのイベントを管理することに注意してください。両方のシステムが同時に動作すると予期しない挙動を引き起こす可能性があります。

以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/05-power
[org/gnome/settings-daemon/plugins/power]
power-button-action='action'

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインして電源ボタンの挙動を設定してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power power-button-action 'action'

action は、nothingsuspendhibernate のうちどれかです。

タップでクリックを有効化

デフォルトでは GDM (と GNOME) ではタップでクリックが無効になっていますが、dconf の設定で簡単に有効化できます。

ノート: X で以下の設定をしたい場合、まず X サーバーに適切なアクセス権限を設定する必要があります。#X サーバーのアクセス権限を設定を見てください。

タップでクリックを有効化するには、以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/06-tap-to-click
[org/gnome/desktop/peripherals/touchpad]
tap-to-click=true

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインしてタップでクリックを有効化してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click 'true'

アクセシビリティメニューを無効化/有効化する

この記事またはセクションは情報が古くなっています。
理由: GDM 43 の時点で、以下の設定キーは機能しません (しかし、ドキュメントには依然として記述されています [4])。代わりに、org.gnome.desktop.a11y.applications screen-keyboard-enabled true キーを使用してください。 (Discuss)

アクセシビリティメニューを無効化あるいは有効化するには、以下のキーファイルを作成してください:

/etc/dconf/db/gdm.d/07-accessibility
[org/gnome/desktop/interface]
toolkit-accessibility='boolean'

そして、GDM のデータベースを再コンパイルしてください。あるいは、以下のコマンドを使って一時的に GDM ユーザとしてログインして状態を変更してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface toolkit-accessibility 'boolean'

メニューはキーの値が false の時に無効化され、true の時に有効化されます。

GDM で夜間モードを有効にする

GDM で夜間モードを有効化するには、以下を実行してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled true

キーボードレイアウト

システムのキーボードレイアウトは GDM にも適用されます。Xorg でのキーボード設定#X の設定ファイルを使う を見てください。

ヒント: 国名に基づくキーマップのリストについては、Wikipedia:ja:ISO 3166-1 を参照してください。または、システムで利用可能なキーマップを localectl list-keymaps で一覧表示することもできます。

Wayland を使用している場合、localectl(1) で X のキーボードレイアウトを手動で指定する必要がある場合があります。以下の例では、フランス語のレイアウトが設定されています:

# localectl set-x11-keymap fr

システムに複数のユーザが存在する場合、GDM によって使用されるキーボードレイアウトをシステムのキーボードレイアウトとは異なるものに設定することができます。まず、gnome-control-center がインストールされていることを確認してください。そして、gnome-control-center を起動し、Region & Language > Input Sources を開いてください。ヘッダーバーにある Login Screen トグルボタンをクリックし、リストの中からキーボードレイアウトを選択してください。注意点として、システムに複数のユーザが存在しないと Login Screen ボタンは表示されません [5]

GDM 2.x (レガシーな GDM) では、~/.dmrc を以下のように編集する必要があります:

~/.dmrc
[Desktop]
Language=de_DE.UTF-8   # デフォルトの言語
Layout=de   nodeadkeys # キーボードレイアウト

言語の変更

システムの言語は GDM にも適用されます。システムに複数のユーザが存在する場合、GDM によって使用される言語をシステムの言語とは異なるものに設定することができます。GDM の言語を変更するには、まず、gnome-control-center がインストールされていることを確認してください。そして、gnome-control-center を起動して Region & Language を選択してください。次に、ヘッダーバーにある Login Screen トグルボタンをクリックしてください。最後に、Language をクリックし、リストから言語を選択してください。この時、root パスワードが要求されます。注意点として、システムに複数のユーザが存在しないと Login Screen ボタンは表示されません [6]

ヒント: 2つの異なる入力言語を追加し、ログアウトし、そしてデフォルトの言語を選択すると、第2のオプションが削除された後に GDM は選択された言語を記憶します。

ユーザーとログイン

自動ログイン

警告: systemd-homed によって管理されているユーザに対してはこれを行わないでください。現在、この機能は未実装であり、GDM をクラッシュさせます。

GDM で自動ログインを有効化するには、以下を /etc/gdm/custom.conf に追加してください (username は自身のものに置き換えてください):

/etc/gdm/custom.conf
# ユーザに対して自動ログインを有効化する
[daemon]
AutomaticLogin=username
AutomaticLoginEnable=True
ヒント: 上記の設定を追加した後に GDM が起動しなくなってしまった場合は、TTY から設定をコメントアウトしてください。

あるいは、自動ログインを遅延させるには:

/etc/gdm/custom.conf
[daemon]
TimedLoginEnable=true
TimedLogin=username
TimedLoginDelay=1

自動ログインに使用するセッションを設定することもできます (gnome-xorg は任意のセッションに置き換えてください):

/var/lib/AccountsService/users/username
XSession=gnome-xorg

パスワードレスログイン

GDM でパスワードプロンプトをバイパスしたい場合は、以下の設定を /etc/pam.d/gdm-password の最初の行に追加してください:

auth sufficient pam_succeed_if.so user ingroup nopasswdlogin

次に、nopasswdlogin グループをシステムに追加してください。グループに関する説明とグループの管理コマンドについては ユーザーグループ を見てください。

そして、あなたのユーザーを nopasswdlogin グループに加えれば、ユーザー名をクリックするだけでログインできるようになります。

警告:
  • root アカウントに対してはこれを行わないでください
  • これにより、GDM でログイン時にセッションの種類を変更することはできなくなります。セッションのデフォルトの種類を変更したい場合は、まず、nopasswdlogin グループからあなたのユーザを削除する必要があります。

複数のセッションが存在する場合にパスワードレスシャットダウン

GDM はシャットダウンの権限を取得するために polkit と logind を使用しています。以下の設定により、複数のユーザがログインしている時にシステムをシャットダウンできるようになります:

/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">

<!-- 
Policy definitions for logind
 -->

<policyconfig>

  <action id="org.freedesktop.login1.power-off-multiple-sessions">
    <description>Shutdown the system when multiple users are logged in</description>
    <message>System policy prevents shutting down the system when other users are logged in</message>
    <defaults>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

</policyconfig>

logind の利用可能な全オプション (例: reboot-multiple-sessions) は org.freedesktop.login1(5) で見られます。

GDM で root ログインを有効にする

root としてログインすることは推奨されていませんが、必要であれば、/etc/pam.d/gdm-password を編集して以下の設定を auth required pam_deny.so 行より前に追加することで root としてログインできるようになります:

/etc/pam.d/gdm-password
auth            sufficient      pam_succeed_if.so uid eq 0 quiet

最終的にこのファイルは以下のような見た目になるはずです:

/etc/pam.d/gdm-password
...
auth            sufficient      pam_succeed_if.so uid eq 0 quiet
auth            sufficient      pam_succeed_if.so uid >= 1000 quiet
auth            required        pam_deny.so
...

GDM を再起動したら、root としてログインできるようになっているはずです。

ログインリストからユーザを非表示にする

GDM のユーザリストは AccountsService によって生成されたものです。システムユーザ (UID < 1000) は自動的に非表示になります。通常ユーザをログインリストから非表示にするには、非表示にするユーザの名前が付いたファイルを /var/lib/AccountsService/users/ 内に作成、または編集し、最低でも以下の内容を追加してください:

/var/lib/AccountsService/users/username
[User]
SystemAccount=true

デフォルトのモニター設定をセットアップする

一部のデスクトップ環境は、ディスプレイの設定を ~/.config/monitors.xml に保存しています。そのファイルの内容に基づいて、xrandr コマンドが生成されます。GDM にも、似たようなファイル /var/lib/gdm/.config/monitors.xml が存在しています。

~/.config/monitors.xml でモニタをセットアップして (解像度、リフレッシュレート、向き、スケーリング、プライマリなど)、GDM にこれらの設定を使用してほしい場合、以下を実行して設定ファイルをコピーしてください:

# cp ~/.config/monitors.xml /var/lib/gdm/.config/

ブートするたびにモニターのセットアップを自動的に再設定するには、gdm.serviceドロップインファイルを使用してください:

/etc/systemd/system/gdm.service.d/override.conf
[Service]
ExecStartPre=/bin/cp /home/user/.config/monitors.xml /var/lib/gdm/.config/monitors.xml

monitors.xml の中でスクリーンの回転とスケーリングに関連する部分は以下のとおりです:

<monitors version="2">
  <configuration>
    <logicalmonitor>
      ...
      <scale>2</scale>
      ...
      <transform>
        <rotation>right</rotation>
        <flipped>no</flipped>
      </transform>
      ...
    </logicalmonitor>
  </configuration>
</monitors>

変更はログアウト時に適用されます。GDM は xorg.conf の設定を尊重しないため、ログアウトが必須です。

ノート:
  • GDM を Wayland で使用している場合、Wayland 内で作成された monitors.xml も使用しなければなりません。詳細は GDM bug 224 を参照してください。あるいは、GDM に #Xorg バックエンドを使う ように強制し、Xorg 内で作成された monitors.xml を使用することもできます。
  • 分数スケーリングを使用する場合、gdm ユーザに対して分数スケーリングを有効化する必要があります:
sudo -u gdm dbus-launch gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

X サーバーのアクセス権限を設定

xhost コマンドを使うことで X サーバーのアクセス権限を設定できます。

例えば、GDM に X サーバーのアクセス権限を与えるには、以下のコマンドを使います:

# xhost +SI:localuser:gdm

トラブルシューティング

Wayland とプロプライエタリな NVIDIA ドライバ

NVIDIA ドライバを使って GDM で Wayland を使用するには、まず DRM カーネルモード設定を有効化しなければなりません。

ノート: KMS を有効化して Wayland の設定をしても GDM に Wayland のオプションが表示されない場合、NVreg_PreserveVideoMemoryAllocationsNVIDIA の systemd サービスが無効化されている可能性が高いです。以下の方法で Wayland を強制してみる前に、まず NVIDIA/ヒントとテクニック#サスペンド後にビデオメモリを保持する に書かれてある指示に従ってください。

GDM バージョン 42 と NVIDIA ドライババージョン 510 の時点で、GDM はデフォルトで Wayland を使用します。それより古い NVIDIA ドライバ (バージョン 470 から 510 の間) の場合、GDM にはチップセット依存の udev ルールが存在しており、Wayland ではなく Xorg を使用します。Wayland を強制するには、以下のシンボリックリンクを作成してこれらのルールをオーバーライドしてください:

# ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
ノート: このコマンドが動くのは、/etc/udev/rules.d/ 内のルールは /usr/lib/udev/rules.d/ 内のルールをオーバーライドするからです (udev#udev ルールについて を参照)。また、/usr/lib/udev/rules.d/ よりも /etc/udev/rules.d/ を変更することが推奨されます。なぜなら、前者は pacman によって管理されているからです。

GDM が表示されずに黒画面になる場合、コンピュータの BIOS 設定から統合グラフィックスを無効化してみてください。

ログアウト時に GDM が動かない

起動時には GDM が問題なく立ち上がるのに、ログアウトした後に問題が発生する場合は、次の行を /etc/gdm/custom.conf の daemon セクションに追加してみて下さい:

GdmXserverTimeout=60

Rootless Xorg

Xorg#Rootless Xorg を見て下さい。

Xorg バックエンドを使う

Wayland バックエンドはデフォルトで使用されます。Xorg バックエンドが使用されるのは、Wayland バックエンドを起動できない場合のみです。例えば以下のような場合には Xorg バックエンドを代わりに使用する必要があるでしょう:

Xorg バックエンドをデフォルトで使用するには、/etc/gdm/custom.conf 内の以下の行をアンコメントしてください:

#WaylandEnable=false

何らかの入力がないと GDM が起動しない

この記事またはセクションは情報が古くなっています。
理由: Linux 5.6 以降、この問題はもはや存在しません。 (Discuss)

起動しても画面が暗いままで、マウスを動かしたりキーボードに何か打ち込まないと GDM が起動しない場合、原因はおそらく乱数生成のためのエントロピーが不足しているためです。問題を確認するために systemd-random-seed のログ (journalctl --unit systemd-random-seed コマンドで読むことができます) の中に以下のような行がないかチェックしてください:

Kernel entropy pool is not initialized yet, waiting until it is.

問題を解決するには、random.trust_cpu=on カーネルパラメータを設定してください (あなたの使っている CPU が RDRAND 命令をサポートしている場合)。もしくはエントロピーを供給するために haveged をインストールすることでも解決できます (ただしエントロピーの品質は保証されていません)。Debian の記事に記載されている他の解決方法も参照。

gdm が完全に削除されない

gdm を削除した後、systemd が以下のようなメッセージを出力する場合があります:

user 'gdm': directory '/var/lib/gdm' does not exist

この警告を取り除くには、root としてログインし、gdm プライマリユーザを削除し、gdm グループを削除してください。

gdm が正しく削除されたかどうかは pwckgrpck を root 権限で実行することで確認できます。最後に、gdm 由来のどのユーザにも所有されていないファイルが残留していないかどうかダブルチェックしたほうが良いでしょう。

GDM の自動サスペンド (GNOME 3.28)

GDM は GNOME とは別の dconf データベースを使用して電源管理を制御しています。ユーザーセッションと同じように GDM が振る舞うようにしたい場合、ユーザー設定を GDM の dconf データベースにコピーしてください ( username はユーザー名です):

$ IFS=$'\n'; for x in $(sudo -u username gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS

AC での自動サスペンドのみを無効にするには、次のコマンドを実行してください:

$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'

(バッテリー環境での自動サスペンドも無効にするには、acbattery に変えてしてコマンドを実行してください。)

変更をアクティブ化するには、GDM を再起動してください。

GDM が Wayland を無視し、デフォルトで X.Org を使用する

Wayland が動作するためには、カーネルモード設定 (KMS) が動作している必要がありますが、マシンによっては GDM プロセスが KMS よりも早く開始し、結果として GDM が Wayland を認識できず、X.Org のみで動作することになります。その結果、ログに次のようなメッセージが表示されることがあります:

gnome-shell[569]: Failed to open gpu '/dev/dri/card0': GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Operation not permitted
gnome-shell[569]: Failed to create backend: No GPUs found
systemd[505]: org.gnome.Shell@wayland.service: Failed with result 'protocol'.
systemd[505]: Failed to start GNOME Shell on Wayland.

また、同じ問題に依って、GDM が表示されなかったり、TTY の出力しか表示されなかったりすることもあります。

この問題は、KMS をより早い段階で開始することで解決できます。また、GDM の設定ファイルで Wayland が有効化されていることも確認したほうが良いでしょう (#Xorg バックエンドを使う を参照)。

また、NVIDIA ドライバを使用している場合、Wayland セッションが udev ルールによってブロックされてしまうかもしれません (GNOME#Wayland セッション)。この場合、以下のようなメッセージが出力されることがあります:

systemd[1022]: Condition check resulted in GNOME Shell on Wayland being skipped.
systemd[1022]: org.gnome.Shell@wayland.service: Skipped due to 'exec-condition'.
systemd[1022]: org.gnome.Shell@wayland.service: Control process exited, code=exited, status=2/INVALIDARGUMENT

回避策は #Wayland とプロプライエタリな NVIDIA ドライバ を見てください。

NVidia (e)GPU が存在する場合、AMD または Intel GPU で黒い画面が表示される

初めに NVidia デバイスが接続されていない場合、GDM は Wayland で通常通り起動し動作しますが、NVidia eGPU が接続される (または、他の何らかの理由で nvidia モジュールがロードされる) と動作を停止してしまいます。この問題の典型的な症状としては、ログアウト時と GDM の再起動時に黒画面と点滅するカーソルが表示され、以下のメッセージが GDM のログに出力されるというものです (root として journalctl -u gdm -b を実行することでログにアクセスした場合):

Gdm: Child process -<PID> was already dead.

解決策は #GDM が Wayland を無視し、デフォルトで X.Org を使用する と同じです: nvidia モジュールのロード時に /usr/lib/gdm-disable-wayland が実行されないようにするのです。

Wayland 上で動作している GDM は、/usr/lib/gdm-disable-wayland が一度でも実行されていると機能しなくなってしまうことを留意してください。これは、WaylandEnable=false が、/etc/gdm/custom.conf の設定をオーバーライド /run/gdm/custom.conf に書き込まれるからです。再起動せずにこの問題を修正するには、/run/gdm/custom.conf を削除し、GDM を再起動してください。

GDM が有効にならない

systemd FAQ#既存のシンボリックリンクのためにユニットを有効にすることができない を参照してください。

参照

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