「GDM」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
13行目: 13行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
[http://projects.gnome.org/gdm/about.html GDM - GNOME Display Manager] より:
+
[https://wiki.gnome.org/Projects/GDM GDM - GNOME Display Manager] より:
   
 
:''GNOME Display Manager (GDM) はグラフィカルディスプレイサーバーを管理しグラフィカルユーザーログインを処理するプログラムです。''
 
:''GNOME Display Manager (GDM) はグラフィカルディスプレイサーバーを管理しグラフィカルユーザーログインを処理するプログラムです。''
   
[[ディスプレイマネージャ]]は [[Xorg|X Window System]] のユーザーにグラフィカルログインプロンプトを提供します。
+
[[ディスプレイマネージャ]]は [[Xorg|X Window System]] や [[Wayland]] のユーザーにグラフィカルログインプロンプトを提供します。
   
 
==インストール==
 
==インストール==
GDM は[[公式リポジトリ]]にある {{Pkg|gdm}} パッケージでインストールできます。このパッケージは {{grp|gnome}} グループに含まれています。
+
GDM は {{Pkg|gdm}} パッケージで[[インストール]]できます。また、GDM は {{grp|gnome}} グループに含まれています。マシンの起動時に GDM を実行するには {{ic|gdm.service}} を[[有効化]]してください
   
  +
GNOME 2 で使われていた旧式の GDM や設定ユーティリティを使いたい場合は {{AUR|gdm-old}} パッケージをインストールしてください。以下では基本的に旧バージョンの GDM ではなく最新の GDM について解説しています。
ブート時に GDM を起動させるには下のように systemd のサービスファイルを有効にしてください:
 
# systemctl enable gdm
 
   
  +
以下のパッケージも任意でインストールしてください:
{{ic|~/.xinitrc}} によって X サーバーに渡される引数 ({{ic|xmodmap}} や {{ic|xsetroot}} など) は [[xprofile]] を使って追加することもできます:
 
  +
* {{App|gdm3setup|GDM3 や自動ログインオプションを設定したり Shell テーマを変更できるインターフェイス。|https://github.com/Nano77/gdm3setup|{{AUR|gdm3setup}}}}
   
  +
==設定==
{{hc|~/.xprofile|<nowiki>
 
#!/bin/sh
 
   
  +
=== GDM によるアプリケーションの自動実行 ===
#
 
# ~/.xprofile
 
#
 
# Executed by gdm at login
 
#
 
   
  +
[[ディスプレイマネージャ#自動起動]]を見てください。{{ic|/etc/gdm/Init}} にスクリプトを追加する方法はもう使えません。詳しくは [https://bugzilla.gnome.org/show_bug.cgi?id=751602 上流のバグレポート] を参照。
xmodmap -e "pointer =1 2 3 6 7 4 5" # set mouse buttons up correctly
 
xsetroot -solid black # sets the background to black
 
</nowiki>}}
 
   
==設定==
 
 
=== ログインの背景画像 ===
 
=== ログインの背景画像 ===
   
  +
{{Note|GNOME 3.16 から GNOME Shell のテーマはバイナリ形式のファイル (gresource) に保存されるようになりました。}}
ログイン画面の壁紙を変更するには以下の手順に従って下さい:
 
   
  +
まず、既存の GNOME Shell テーマをホームディレクトリに抽出する必要があります。以下のスクリプトを使ってください:
まず背景画像を保存するためのディレクトリを作成:
 
# mkdir /opt/login
 
   
  +
{{hc|extractgst.sh|2=
次に必要な設定ファイルを作成:
 
  +
#!/bin/sh
# touch /etc/dconf/db/gdm.d/01-background
 
   
  +
workdir=${HOME}/shell-theme
そして以下の文章を作成したファイルにコピー:
 
  +
if [ ! -d ${workdir}/theme ]; then
[org/gnome/desktop/background]
 
  +
mkdir -p ${workdir}/theme
picture-uri='file:///opt/login/wallpaper.jpg'
 
  +
fi
  +
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource
   
  +
for r in `gresource list $gst`; do
使いたい背景画像をディレクトリにコピー:
 
  +
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
# cp [YOUR FILE] /opt/login/wallpaper.jpg
 
  +
done}}
[YOUR FILE] は *.jpg 画像に置き換えてください。
 
   
  +
それから作成されたディレクトリに移動してください。抽出されたテーマファイルが確認できるはずです。お好きな背景画像を作成されたディレクトリにコピーしてください。
最後に次のコマンドで dconf を更新:
 
# dconf update
 
   
  +
次に、ディレクトリの中に以下の内容でファイルを作成する必要があります:
=== ログイン画面のロゴ ===
 
   
  +
{{hc|gnome-shell-theme.gresource.xml|2=
ログイン画面にロゴを表示するには以下の手順に従って下さい:
 
  +
<?xml version="1.0" encoding="UTF-8"?>
  +
<gresources>
  +
<gresource prefix="/org/gnome/shell/theme">
  +
<file>calendar-arrow-left.svg</file>
  +
<file>calendar-arrow-right.svg</file>
  +
<file>calendar-today.svg</file>
  +
<file>checkbox-focused.svg</file>
  +
<file>checkbox-off-focused.svg</file>
  +
<file>checkbox-off.svg</file>
  +
<file>checkbox.svg</file>
  +
<file>close-window.svg</file>
  +
<file>close.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>logged-in-indicator.svg</file>
  +
<file>'''filename'''</file>
  +
<file>more-results.svg</file>
  +
<file>no-events.svg</file>
  +
<file>no-notifications.svg</file>
  +
<file>noise-texture.png</file>
  +
<file>page-indicator-active.svg</file>
  +
<file>page-indicator-inactive.svg</file>
  +
<file>page-indicator-checked.svg</file>
  +
<file>page-indicator-hover.svg</file>
  +
<file>process-working.svg</file>
  +
<file>running-indicator.svg</file>
  +
<file>source-button-border.svg</file>
  +
<file>summary-counter.svg</file>
  +
<file>toggle-off-us.svg</file>
  +
<file>toggle-off-intl.svg</file>
  +
<file>toggle-on-hc.svg</file>
  +
<file>toggle-on-us.svg</file>
  +
<file>toggle-on-intl.svg</file>
  +
<file>ws-switch-arrow-up.png</file>
  +
<file>ws-switch-arrow-down.png</file>
  +
</gresource>
  +
</gresources>}}
   
  +
'''filename''' は使用する背景画像のファイル名に置き換えてください。
ロゴを保存するためのディレクトリを作成:
 
# mkdir /opt/login
 
   
  +
そして、ディレクトリ内の {{ic|gnome-shell.css}} ファイルを開いて {{ic|#lockDialogGroup}} の定義を以下のように変更してください:
必要な設定ファイルを作成:
 
# touch /etc/dconf/db/gdm.d/02-logo
 
   
  +
#lockDialogGroup {
以下の文章をファイルにコピー:
 
  +
background: #2e3436 url('''filename''');
[org/gnome/login-screen]
 
  +
background-size: '''[WIDTH]'''px '''[HEIGHT]'''px;
logo='/opt/login/logo.png'
 
  +
background-repeat: no-repeat;
  +
}
   
  +
{{ic|background-size}} は GDM が使用する解像度に設定します。必ずしも画像の解像度である必要はありません。ディスプレイの解像度については Wikipedia に[[wikipedia:ja:画面解像度#コンピュータ・映画|リスト]]があります。'''filename''' は背景画像の名前に置き換えてください。
使いたいロゴをディレクトリにコピー:
 
# cp [YOUR FILE] /opt/login/logo.png
 
[YOUR FILE] は *.png 画像に置き換えてください。
 
   
  +
最後に、以下のコマンドでテーマをコンパイルします:
dconf を更新:
 
  +
$ glib-compile-resources gnome-shell-theme.gresource.xml
# dconf update
 
  +
作成された {{ic|gnome-shell-theme.gresource}} ファイルを {{ic|/usr/share/gnome-shell}} ディレクトリにコピーしてください。
   
  +
GDM を再起動したら設定した背景画像が表示されるはずです。
=== ログインのフォントを大きくする ===
 
   
  +
詳しい情報は [https://bbs.archlinux.org/viewtopic.php?id&#61;197036 フォーラムスレッド] を参照してください。
ログイン画面のフォントサイズを変更するには以下の手順に従って下さい:
 
   
  +
=== DConf による設定 ===
必要な設定ファイルを作成:
 
# touch /etc/dconf/db/gdm.d/03-scaling
 
   
  +
GDM の設定は一部 DConf データベースに保存されます。{{ic|/etc/dconf/db/gdm.d}} ディレクトリにキーファイルを追加してから root で {{ic|dconf update}} を実行して GDM のデータベースを再コンパイルするか、あるいは GDM ユーザーでログインして ''gsettings'' コマンドラインツールを使って直接設定を変更することができます。前者の場合、GDM のプロフィールファイルが必要です。パッケージには付属していないため手動で作成する必要があります:
以下の文章をファイルにコピー:
 
  +
{{hc|/etc/dconf/profile/gdm|
[org/gnome/desktop/interface]
 
  +
user-db:user
text-scaling-factor='1.25'
 
  +
system-db:gdm
  +
file-db:/usr/share/gdm/greeter-dconf-defaults}}
  +
後者の場合、以下のコマンドで GDM ユーザーでログインできます:
  +
# machinectl shell gdm@
   
  +
==== ログイン画面のロゴ ====
dconf を更新:
 
# dconf update
 
   
  +
以下のキーファイルを作成してください:
=== サウンドをオフにする ===
 
  +
{{hc|/etc/dconf/db/gdm.d/02-logo|2=
  +
[org/gnome/login-screen]
  +
logo=<nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki>}}
  +
その後 GDM データベースを再コンパイルしてください。
   
  +
もしくは GDM ユーザーでログインして以下のコマンドを実行してください:
この設定はログイン画面でシステムボリュームが(キーボードによって)調整された時に再生される音を無効にします。
 
  +
$ gsettings set org.gnome.login-screen logo <nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki>
   
  +
==== カーソルテーマの変更 ====
必要な設定ファイルを作成:
 
# touch /etc/dconf/db/gdm.d/04-sound
 
   
  +
GDM は [[GNOME]] のカーソルテーマの設定を使用せず、[[カーソルテーマ#XDG の仕様|XDG の仕様]]に準拠して設定されたカーソルテーマも無視します。GDM で使用されるカーソルテーマを変更するには、以下のキーファイルを作成してください:
以下の文章をファイルにコピー:
 
[org/gnome/desktop/sound]
 
event-sounds='false'
 
   
  +
{{hc|/etc/dconf/db/gdm.d/10-cursor-settings|
dconf を更新:
 
  +
<nowiki>[org/gnome/desktop/interface]
# dconf update
 
  +
cursor-theme='</nowiki>''theme-name'''
  +
}}
  +
その後 GDM データベースを再コンパイルしてください。
   
  +
もしくは GDM ユーザーでログインして以下のコマンドを実行してください:
=== 電源ボタンを対話式にする ===
 
  +
$ gsettings set org.gnome.desktop.interface cursor-theme <nowiki>'</nowiki>''theme-name''<nowiki>'</nowiki>
   
  +
==== ログイン画面のフォントを大きくする ====
デフォルトでは電源ボタンを押すとサスペンドするように設定されています。'''''電源オフ'''''や'''''ダイアログの表示'''''にすると良いでしょう。
 
   
  +
画面右上のアクセシビリティアイコン (白丸に人影のアイコン) をクリックして ''Large Text'' オプションにチェックを入れてください。
必要な設定ファイルを作成:
 
# touch /etc/dconf/db/gdm.d/05-power
 
   
  +
スケーリングファクタを指定したい場合、以下のキーファイルを作成してください:
以下の文章をファイルにコピー:
 
  +
{{hc|/etc/dconf/db/gdm.d/03-scaling|2=
[org/gnome/settings-daemon/plugins/power button]
 
  +
[org/gnome/desktop/interface]
power='interactive'
 
  +
text-scaling-factor=<nowiki>'</nowiki>''1.25''<nowiki>'</nowiki>}}
hibernate='interactive'
 
  +
その後 GDM データベースを再コンパイルしてください。
   
  +
もしくは GDM ユーザーでログインして以下のコマンドを実行してください:
dconf を更新:
 
  +
$ gsettings set org.gnome.desktop.interface text-scaling-factor <nowiki>'</nowiki>''1.25''<nowiki>'</nowiki>
# dconf update
 
   
  +
==== サウンドをオフにする ====
{{Warning|[[acpid]] デーモンも"電源ボタン"や"ハイバネートボタン"のイベントを管理していることに注意してください。両方のシステムが同時に動作すると予期しない挙動を引き起こす可能性があります。}}
 
   
  +
以下の設定をするとログイン画面でシステム音量を (キーボードで) 変更したときに音が鳴らなくなります。
=== フタを閉じた時にサスペンドするのを止める ===
 
   
  +
以下のキーファイルを作成してください:
ラップトップによっては ''Laptop lid close action on battery'' や ''Laptop lid close action on AC'' というオプションを ''blank'' に設定しているのにも関わらずフタを閉じた時にラップトップがサスペンドするという挙動を示すことがあります。この場合は、次の行を {{ic|/etc/systemd/logind.conf}} に追加してください:
 
  +
{{hc|/etc/dconf/db/gdm.d/04-sound|2=
  +
[org/gnome/desktop/sound]
  +
event-sounds='false'}}
  +
その後 GDM データベースを再コンパイルしてください。
   
  +
もしくは GDM ユーザーでログインして以下のコマンドを実行してください:
HandleLidSwitch=ignore
 
  +
$ gsettings set org.gnome.desktop.sound event-sounds 'false'
   
  +
==== 電源ボタンを対話式にする ====
{{note|'''HandleLidSwitch''' エントリがアンコメントされていることを確認してください、そうしないとこの設定が適用されません。}}
 
  +
デフォルトでは電源ボタンを押すとサスペンドするように設定されています。以下の設定で電源ボタンやハイバネートボタンを押したときにダイアログが表示されるようになります:
  +
  +
以下のキーファイルを作成してください:
  +
{{hc|/etc/dconf/db/gdm.d/05-power|2=
  +
[org/gnome/settings-daemon/plugins/power button]
  +
power='interactive'
  +
hibernate='interactive'}}
  +
その後 GDM データベースを再コンパイルしてください。
  +
  +
{{Warning|[[acpid]] デーモンも電源ボタンやハイバネートボタンのイベントを管理することに注意してください。両方のシステムが同時に動作すると予期しない挙動を引き起こす可能性があります。}}
  +
  +
==== タップでクリックを有効化 ====
  +
  +
デフォルトでは GDM (と GNOME) ではタップでクリックが無効になっています。dconf の設定で簡単に有効化できます。
  +
  +
{{Note|X で以下の設定をしたい場合、まずは X サーバーに適切なアクセス権限を設定する必要があります。[[#X サーバーのアクセス権限を設定]]を見てください。}}
  +
  +
直接タップでクリックを有効にするには、以下のコマンドを使用:
  +
  +
{{bc|# sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}
  +
  +
GUI で設定したい場合、以下のコマンドを使用:
  +
  +
{{bc|# sudo -u gdm dconf-editor}}
  +
  +
正しく設定されたか確認するには、以下のコマンドを使用:
  +
  +
{{bc|$ sudo -u gdm gsettings get org.gnome.desktop.peripherals.touchpad tap-to-click}}
   
 
=== GDM キーボードレイアウト ===
 
=== GDM キーボードレイアウト ===
(gdm を含む) 全てのグラフィカルプログラムのキーボードレイアウトを変更するには次の行を {{ic|/etc/X11/xorg.conf.d/10-evdev.conf}} に追加してください。'''jp''' は適切なキーマップに置き換えてください。
 
   
  +
[[Xorg でのキーボード設定#X の設定ファイルを使う]]を見てください。
{{hc|/etc/X11/xorg.conf.d/10-evdev.conf|
 
Section "InputClass"
 
Identifier "evdev keyboard catchall"
 
MatchIsKeyboard "on"
 
MatchDevicePath "/dev/input/event*"
 
Driver "evdev"
 
'''Option "XkbLayout" "jp"'''
 
EndSection}}
 
   
  +
{{Tip|[[Wikipedia:ISO 3166-1]] にキーマップのリストがあります。}}
{{Warning|{{ic|'''keyboard''' InputClass}} セクションに行を追加してください。他のセクションに追加してはいけません。}}
 
{{tip|キーマップの一覧は[https://en.wikipedia.org/wiki/ISO_3166-1 ここ]を参照。}}
 
   
====GDM 2.x レイアウト====
+
==== GNOME Control Center ====
  +
古い GDM を使っている場合は次の指示に従って下さい:
 
  +
{{Pkg|gnome-control-center}} パッケージがインストールされている場合、グラフィカルフロントエンドを使ってキーボードレイアウトを設定できます。''gnome-control-center'' を起動して ''Keyboard -> Input Sources'' を開いてください。そして、ヘッダーバーにある ''Login Screen'' ボタンを押して GDM のキーボードレイアウトを設定してください。
  +
  +
==== GDM 2.x レイアウト ====
  +
  +
旧バージョンの GDM では {{ic|~/.dmrc}} を編集してください:
   
{{ic|~/.dmrc}} を編集して下さい:
 
 
{{hc|~/.dmrc|2=
 
{{hc|~/.dmrc|2=
 
[Desktop]
 
[Desktop]
161行目: 230行目:
 
}}
 
}}
   
===言語の変更===
+
=== 言語の変更 ===
  +
GDM の言語を変更するには、ファイル {{ic|/var/lib/AccountsService/users/gdm}} を編集して language の行をあなたの言語の適切な UTF-8 値に代えてください。以下の文章のようになるはずです:
 
  +
GDM の言語を変更するには、{{Pkg|gnome-control-center}} をインストールしてください。そして、''gnome-control-center'' を起動して ''Region & Language'' を選択してください。ヘッダーバーにある ''Login Screen'' ボタンをクリックしてください。最後に ''Language'' をクリックしてリストから言語を選択してください。root パスワードが要求されます。
  +
  +
もしくは {{ic|/var/lib/AccountsService/users/gdm}} ファイルを編集して Language の行を適当なロケールに置き換えてください。以下のように編集します:
  +
 
{{hc|1=/var/lib/AccountsService/users/gdm|
 
{{hc|1=/var/lib/AccountsService/users/gdm|
 
2=[User]
 
2=[User]
Language=ja_JP.UTF-8
+
Language=fr_FR.UTF-8
 
XSession=
 
XSession=
 
SystemAccount=true}}
 
SystemAccount=true}}
   
そしてコンピュータを再起動してください。
+
編集後にコンピュータを再起動してください。
   
再起動した後、また {{ic|/var/lib/AccountsService/users/gdm}} を開ら、language の行が消されているのを発見するでょう。心配しないで下さい言語の変更ちゃんと保存されています
+
再起動した後 {{ic|/var/lib/AccountsService/users/gdm}} ファイルを開くと設定した行が消ているのに気がつくかもれませんが設定は保存されているので安心してください
   
===自動ログイン===
+
=== 自動ログイン ===
GDM で自動ログインを有効にするには以下を {{ic|/etc/gdm/custom.conf}} に追加してください (''username'' はあなたのユーザー名に置き換えてください):
+
GDM で自動ログインするには以下を {{ic|/etc/gdm/custom.conf}} に追加してください (''username'' はあなたのユーザー名に置き換えてください):
   
 
{{hc|1=/etc/gdm/custom.conf|
 
{{hc|1=/etc/gdm/custom.conf|
183行目: 256行目:
 
}}
 
}}
   
  +
{{Tip|上記の行を追加した後に GDM が起動しなくなった場合、TTY からコメントアウトしてください。}}
もしくは一定時間後に自動ログインするには:
 
  +
  +
もしくは一定時間後に自動ログインしたい場合:
   
 
{{hc|1=/etc/gdm/custom.conf|
 
{{hc|1=/etc/gdm/custom.conf|
 
2=[daemon]
 
2=[daemon]
  +
# for login with delay
 
 
TimedLoginEnable=true
 
TimedLoginEnable=true
 
TimedLogin=''username''
 
TimedLogin=''username''
198行目: 273行目:
 
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}} に加えればユーザー名をクリックするだけでログインできるようになるはずです。
207行目: 282行目:
   
 
===パスワードなしシャットダウン===
 
===パスワードなしシャットダウン===
GDM はシャットダウンの権限を取得するために polkit と logind を使っています。以下を設定することでパスワードを入力することなくシャットダウンできるようになります:
+
GDM はシャットダウンの権限を取得するために [[polkit]] と logind を使っています。以下を設定することでパスワードを入力することなくシャットダウンできるようになります:
   
 
{{hc|1=/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy|
 
{{hc|1=/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy|
215行目: 290行目:
 
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
 
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
   
<!--
+
<!--
 
Policy definitions for logind
 
Policy definitions for logind
-->
+
-->
   
 
<policyconfig>
 
<policyconfig>
232行目: 307行目:
 
</policyconfig>
 
</policyconfig>
 
}}
 
}}
  +
 
利用可能な logind のオプション (例: reboot-multiple-sessions) の全ては [http://www.freedesktop.org/wiki/Software/systemd/logind#Security ここ] に載っています。
 
利用可能な logind のオプション (例: reboot-multiple-sessions) の全ては [http://www.freedesktop.org/wiki/Software/systemd/logind#Security ここ] に載っています。
   
===デフォルトの GDM セッションの変更===
+
=== GDM セッションの追加と編集 ===
デフォルトの GDM セッションを変更したい場合は、ファイル {{ic|~/.dmrc}} を作成 (もしくは編集) する必要があります [http://library.gnome.org/admin/gdm/stable/configuration.html.en#userconfig]。
 
{{Note|これはユーザー別の設定です。複数のユーザーでデフォルトのセッションを変更したいときは、全てのユーザーでこのファイルを作成する必要があります。}}
 
以下はデフォルトのセッションを [[Cinnamon]] に設定するサンプルです:
 
{{hc|~/.dmrc|<nowiki>
 
[Desktop]
 
Session=cinnamon
 
</nowiki>}}
 
   
  +
セッションは {{ic|.desktop}} ファイルとして {{ic|/usr/share/xsessions/}} に保存されています。
===GDM の root ログインを有効にする===
 
root でログインすることは推奨されていませんが、必要ならば {{ic|/etc/pam.d/gdm-password}} を編集して {{ic|auth required pam_deny.so}} 前に次の行を追加してください:
 
{{ic|/etc/pam.d/gdm-password}}
 
auth sufficient pam_succeed_if.so uid eq 0 quiet
 
   
  +
新しいセッションを追加するには:
このファイルは以下のようになるはずです:
 
  +
{{ic|/etc/pam.d/gdm-password}}
 
  +
1. 既存の {{ic|.desktop}} ファイルをコピーして新しいセッションのテンプレートとして使用してください:
...
 
  +
$ cd /usr/share/xsessions
auth sufficient pam_succeed_if.so uid eq 0 quiet
 
  +
# cp gnome.desktop other.desktop
auth sufficient pam_succeed_if.so uid >= 1000 quiet
 
  +
2. {{ic|.desktop}} テンプレートファイルを編集して使用したいウィンドウマネージャを開くようにしてください:
auth required pam_deny.so
 
  +
# nano other.desktop
...
 
  +
  +
KDM もインストールしている場合、作成した新しいセッションを KDM で開いた場合 {{ic|.desktop}} ファイルが新しく作成されます。その後 GDM に戻してからも新しいセッションは起動できます。
  +
  +
詳しくは[[ディスプレイマネージャ#セッション設定]]を見てください。
  +
  +
=== 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|<nowiki>
  +
...
  +
auth sufficient pam_succeed_if.so uid eq 0 quiet
  +
auth sufficient pam_succeed_if.so uid >= 1000 quiet
  +
auth required pam_deny.so
  +
...</nowiki>}}
   
 
root でログインするには GDM を再起動する必要があります。
 
root でログインするには GDM を再起動する必要があります。
  +
  +
=== ログインリストのユーザーを非表示にする ===
  +
  +
GDM のユーザーリストに表示されるユーザーは [https://www.freedesktop.org/wiki/Software/AccountsService/ AccountsService] で決められています。システムユーザー (UID < 1000) は自動的に非表示になります。通常ユーザーもログインリストに表示しないようにするには {{ic|/var/lib/AccountsService/users/}} に隠したいユーザーの名前を付けたファイルを作成・編集して中身を以下のようにしてください:
  +
{{hc|/var/lib/AccountsService/users/<nowiki><username></nowiki>|
  +
[User]
  +
<nowiki>SystemAccount=true</nowiki>}}
  +
  +
=== ログイン画面の回転 ===
  +
  +
{{ic|~/.config/monitors.xml}} でモニターの設定 (モニターの方向やプライマリモニターの設定など) を行っている場合、GDM も同じ設定を使うようにするには以下のコマンドを実行:
  +
  +
# cp ~/.config/monitors.xml /var/lib/gdm/.config/monitors.xml
  +
  +
変更はログアウトしたら適用されます。GDM は {{ic|xorg.conf}} を使用しないためログアウトが必要です。
  +
  +
{{Note|Wayland バックエンドは {{ic|/var/lib/gdm/.config/monitors.xml}} ファイルを無視します [https://bbs.archlinux.org/viewtopic.php?id&#61;196219]。Wayland バックエンドを無効化する方法は [[#Xorg バックエンドを使う]]を見てください。}}
  +
  +
=== ログイン時に xrandr ===
  +
  +
xrandr を実行するスクリプトをログイン画面で実行したい場合、{{ic|/etc/X11/xinit/xinitrc.d}} にスクリプトを追加してください。
  +
  +
例えば、HDMI で接続された外部スクリーンを自動的に選択するには:
  +
  +
{{bc|<nowiki>
  +
#!/bin/sh
  +
EXTERNAL_OUTPUT="HDMI1"
  +
INTERNAL_OUTPUT="eDP1"
  +
if (xrandr | grep $EXTERNAL_OUTPUT | grep " connected "); then
  +
xrandr --output $INTERNAL_OUTPUT --off --output $EXTERNAL_OUTPUT --auto
  +
else
  +
xrandr --output $INTERNAL_OUTPUT --auto
  +
fi
  +
</nowiki>}}
   
 
=== X サーバーのアクセス権限を設定 ===
 
=== X サーバーのアクセス権限を設定 ===
264行目: 380行目:
 
例えば、GDM に X サーバーのアクセス権限を与えるには、以下のコマンドを使います:
 
例えば、GDM に X サーバーのアクセス権限を与えるには、以下のコマンドを使います:
   
{{bc|# xhost +SI:localuser:gdm}}
+
# xhost +SI:localuser:gdm
 
===gdm3setup===
 
AUR から {{AUR|gdm3setup}} ツールをインストールすることで GDM を設定できます。このツールではテーマや自動接続、日付形式などを変更できます。
 
 
===GDM legacy===
 
古い GDM に戻したい場合は [[Arch User Repository|AUR]] から {{AUR|gdm-old}} をインストールしてください。
 
   
 
==トラブルシューティング==
 
==トラブルシューティング==
   
 
=== AMD Catalyst ドライバーを使っている場合に起動しない ===
 
=== AMD Catalyst ドライバーを使っている場合に起動しない ===
{{pkg|xorg-server}} パッケージをダウングレードするか [[LightDM]] など他の[[ディスプレイマネージャ]]を使うようにしてください。
+
{{pkg|xorg-server}} パッケージを[[ダウングレード]]するか [[LightDM]] など他の[[ディスプレイマネージャ]]を使うようにしてください。
   
 
===ログアウト時に GDM が動かない===
 
===ログアウト時に GDM が動かない===
291行目: 401行目:
 
GDM バージョン 3.16 から、デフォルトで [[Wayland]] バックエンドが使われるようになっており、Wayland バックエンドで起動できない場合にのみ [[Xorg]] バックエンドが使われます。ユーザーによっては Wayland バックエンドで問題が発生しているという [https://bugzilla.redhat.com/show_bug.cgi?id=1199890 報告] があり、場合によっては Xorg バックエンドの使用が必要なことがあります。デフォルトで Xorg バックエンドを使用させるには、{{ic|/etc/gdm/custom.conf}} ファイルを編集して以下の行をアンコメントしてください:
 
GDM バージョン 3.16 から、デフォルトで [[Wayland]] バックエンドが使われるようになっており、Wayland バックエンドで起動できない場合にのみ [[Xorg]] バックエンドが使われます。ユーザーによっては Wayland バックエンドで問題が発生しているという [https://bugzilla.redhat.com/show_bug.cgi?id=1199890 報告] があり、場合によっては Xorg バックエンドの使用が必要なことがあります。デフォルトで Xorg バックエンドを使用させるには、{{ic|/etc/gdm/custom.conf}} ファイルを編集して以下の行をアンコメントしてください:
 
#WaylandEnable=false
 
#WaylandEnable=false
  +
  +
=== GDM の不完全な削除 ===
  +
  +
GDM を削除すると、systemd が以下のようにエラーを吐くことがあります:
  +
  +
user 'gdm': directory '/var/lib/gdm' does not exist
  +
  +
上記の警告を消すには、root でログインしてプライマリユーザーの "gdm" とグループの "gdm" を削除してください:
  +
  +
# userdel gdm
  +
# groupdel gdm
  +
  +
{{ic|pwck}} や {{ic|grpck}} を使うことで gdm が削除されたことを確認できます。[[Pacman ヒント#ファイルがどのパッケージにも含まれていないことを確認|所有者がないファイル]]がないか確認すると良いでしょう。
   
 
== 参照 ==
 
== 参照 ==
   
* [https://help.gnome.org/admin/gdm/stable/index.html.en GDM Reference Manual]
+
* [https://help.gnome.org/admin/gdm/stable/index.html.en GDM リファレンスマニュアル]

2016年11月11日 (金) 22:38時点における版

関連記事

GDM - GNOME Display Manager より:

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

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

インストール

GDM は gdm パッケージでインストールできます。また、GDM は gnome グループに含まれています。マシンの起動時に GDM を実行するには gdm.service有効化してください。

GNOME 2 で使われていた旧式の GDM や設定ユーティリティを使いたい場合は gdm-oldAUR パッケージをインストールしてください。以下では基本的に旧バージョンの GDM ではなく最新の GDM について解説しています。

以下のパッケージも任意でインストールしてください:

  • gdm3setup — GDM3 や自動ログインオプションを設定したり Shell テーマを変更できるインターフェイス。
https://github.com/Nano77/gdm3setup || gdm3setupAUR

設定

GDM によるアプリケーションの自動実行

ディスプレイマネージャ#自動起動を見てください。/etc/gdm/Init にスクリプトを追加する方法はもう使えません。詳しくは 上流のバグレポート を参照。

ログインの背景画像

ノート: GNOME 3.16 から GNOME Shell のテーマはバイナリ形式のファイル (gresource) に保存されるようになりました。

まず、既存の GNOME Shell テーマをホームディレクトリに抽出する必要があります。以下のスクリプトを使ってください:

extractgst.sh
#!/bin/sh

workdir=${HOME}/shell-theme
if [ ! -d ${workdir}/theme ]; then
  mkdir -p ${workdir}/theme
fi
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource

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-arrow-left.svg</file>
    <file>calendar-arrow-right.svg</file>
    <file>calendar-today.svg</file>
    <file>checkbox-focused.svg</file>
    <file>checkbox-off-focused.svg</file>
    <file>checkbox-off.svg</file>
    <file>checkbox.svg</file>
    <file>close-window.svg</file>
    <file>close.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>logged-in-indicator.svg</file>
    <file>filename</file>
    <file>more-results.svg</file>
    <file>no-events.svg</file>
    <file>no-notifications.svg</file>
    <file>noise-texture.png</file>
    <file>page-indicator-active.svg</file>
    <file>page-indicator-inactive.svg</file>
    <file>page-indicator-checked.svg</file>
    <file>page-indicator-hover.svg</file>
    <file>process-working.svg</file>
    <file>running-indicator.svg</file>
    <file>source-button-border.svg</file>
    <file>summary-counter.svg</file>
    <file>toggle-off-us.svg</file>
    <file>toggle-off-intl.svg</file>
    <file>toggle-on-hc.svg</file>
    <file>toggle-on-us.svg</file>
    <file>toggle-on-intl.svg</file>
    <file>ws-switch-arrow-up.png</file>
    <file>ws-switch-arrow-down.png</file>
  </gresource>
</gresources>

filename は使用する背景画像のファイル名に置き換えてください。

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

#lockDialogGroup {
  background: #2e3436 url(filename);
  background-size: [WIDTH]px [HEIGHT]px;
  background-repeat: no-repeat;
}

background-size は GDM が使用する解像度に設定します。必ずしも画像の解像度である必要はありません。ディスプレイの解像度については Wikipedia にリストがあります。filename は背景画像の名前に置き換えてください。

最後に、以下のコマンドでテーマをコンパイルします:

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

作成された gnome-shell-theme.gresource ファイルを /usr/share/gnome-shell ディレクトリにコピーしてください。

GDM を再起動したら設定した背景画像が表示されるはずです。

詳しい情報は フォーラムスレッド を参照してください。

DConf による設定

GDM の設定は一部 DConf データベースに保存されます。/etc/dconf/db/gdm.d ディレクトリにキーファイルを追加してから root で dconf update を実行して GDM のデータベースを再コンパイルするか、あるいは 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@

ログイン画面のロゴ

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

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

その後 GDM データベースを再コンパイルしてください。

もしくは GDM ユーザーでログインして以下のコマンドを実行してください:

$ 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 ユーザーでログインして以下のコマンドを実行してください:

$ gsettings set org.gnome.desktop.interface cursor-theme 'theme-name'

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

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

スケーリングファクタを指定したい場合、以下のキーファイルを作成してください:

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

その後 GDM データベースを再コンパイルしてください。

もしくは GDM ユーザーでログインして以下のコマンドを実行してください:

$ 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 ユーザーでログインして以下のコマンドを実行してください:

$ gsettings set org.gnome.desktop.sound event-sounds 'false'

電源ボタンを対話式にする

デフォルトでは電源ボタンを押すとサスペンドするように設定されています。以下の設定で電源ボタンやハイバネートボタンを押したときにダイアログが表示されるようになります:

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

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

その後 GDM データベースを再コンパイルしてください。

警告: acpid デーモンも電源ボタンやハイバネートボタンのイベントを管理することに注意してください。両方のシステムが同時に動作すると予期しない挙動を引き起こす可能性があります。

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

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

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

直接タップでクリックを有効にするには、以下のコマンドを使用:

# sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true

GUI で設定したい場合、以下のコマンドを使用:

# sudo -u gdm dconf-editor

正しく設定されたか確認するには、以下のコマンドを使用:

$ sudo -u gdm gsettings get org.gnome.desktop.peripherals.touchpad tap-to-click

GDM キーボードレイアウト

Xorg でのキーボード設定#X の設定ファイルを使うを見てください。

ヒント: Wikipedia:ISO 3166-1 にキーマップのリストがあります。

GNOME Control Center

gnome-control-center パッケージがインストールされている場合、グラフィカルフロントエンドを使ってキーボードレイアウトを設定できます。gnome-control-center を起動して Keyboard -> Input Sources を開いてください。そして、ヘッダーバーにある Login Screen ボタンを押して GDM のキーボードレイアウトを設定してください。

GDM 2.x レイアウト

旧バージョンの GDM では ~/.dmrc を編集してください:

~/.dmrc
[Desktop]
Language=de_DE.UTF-8   # change to your default lang
Layout=de   nodeadkeys # change to your keyboard layout

言語の変更

GDM の言語を変更するには、gnome-control-center をインストールしてください。そして、gnome-control-center を起動して Region & Language を選択してください。ヘッダーバーにある Login Screen ボタンをクリックしてください。最後に Language をクリックしてリストから言語を選択してください。root パスワードが要求されます。

もしくは /var/lib/AccountsService/users/gdm ファイルを編集して Language の行を適当なロケールに置き換えてください。以下のように編集します:

/var/lib/AccountsService/users/gdm
[User]
Language=fr_FR.UTF-8
XSession=
SystemAccount=true

編集後にコンピュータを再起動してください。

再起動した後に /var/lib/AccountsService/users/gdm ファイルを開くと設定した行が消えているのに気がつくかもしれませんが、設定は保存されているので安心してください。

自動ログイン

GDM で自動ログインするには、以下を /etc/gdm/custom.conf に追加してください (username はあなたのユーザー名に置き換えてください):

/etc/gdm/custom.conf
# Enable automatic login for user
[daemon]
AutomaticLogin=username
AutomaticLoginEnable=True
ヒント: 上記の行を追加した後に GDM が起動しなくなった場合、TTY からコメントアウトしてください。

もしくは一定時間後に自動ログインしたい場合:

/etc/gdm/custom.conf
[daemon]

TimedLoginEnable=true
TimedLogin=username
TimedLoginDelay=1

パスワードなしログイン

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/standards/PolicyKit/1.0/policyconfig.dtd">


<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) の全ては ここ に載っています。

GDM セッションの追加と編集

セッションは .desktop ファイルとして /usr/share/xsessions/ に保存されています。

新しいセッションを追加するには:

1. 既存の .desktop ファイルをコピーして新しいセッションのテンプレートとして使用してください:

$ cd /usr/share/xsessions
# cp gnome.desktop other.desktop

2. .desktop テンプレートファイルを編集して使用したいウィンドウマネージャを開くようにしてください:

# nano other.desktop

KDM もインストールしている場合、作成した新しいセッションを KDM で開いた場合 .desktop ファイルが新しく作成されます。その後 GDM に戻してからも新しいセッションは起動できます。

詳しくはディスプレイマネージャ#セッション設定を見てください。

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

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

/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
...

root でログインするには GDM を再起動する必要があります。

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

GDM のユーザーリストに表示されるユーザーは AccountsService で決められています。システムユーザー (UID < 1000) は自動的に非表示になります。通常ユーザーもログインリストに表示しないようにするには /var/lib/AccountsService/users/ に隠したいユーザーの名前を付けたファイルを作成・編集して中身を以下のようにしてください:

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

ログイン画面の回転

~/.config/monitors.xml でモニターの設定 (モニターの方向やプライマリモニターの設定など) を行っている場合、GDM も同じ設定を使うようにするには以下のコマンドを実行:

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

変更はログアウトしたら適用されます。GDM は xorg.conf を使用しないためログアウトが必要です。

ノート: Wayland バックエンドは /var/lib/gdm/.config/monitors.xml ファイルを無視します [1]。Wayland バックエンドを無効化する方法は #Xorg バックエンドを使うを見てください。

ログイン時に xrandr

xrandr を実行するスクリプトをログイン画面で実行したい場合、/etc/X11/xinit/xinitrc.d にスクリプトを追加してください。

例えば、HDMI で接続された外部スクリーンを自動的に選択するには:

#!/bin/sh
EXTERNAL_OUTPUT="HDMI1"
INTERNAL_OUTPUT="eDP1"
if (xrandr | grep $EXTERNAL_OUTPUT | grep " connected "); then
    xrandr --output $INTERNAL_OUTPUT --off --output $EXTERNAL_OUTPUT --auto
else
    xrandr --output $INTERNAL_OUTPUT --auto
fi

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

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

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

# xhost +SI:localuser:gdm

トラブルシューティング

AMD Catalyst ドライバーを使っている場合に起動しない

xorg-server パッケージをダウングレードするか LightDM など他のディスプレイマネージャを使うようにしてください。

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

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

GdmXserverTimeout=60

Xorg 1.16

Xorg#Rootless Xorg (v1.16) を見て下さい。

Xorg バックエンドを使う

GDM バージョン 3.16 から、デフォルトで Wayland バックエンドが使われるようになっており、Wayland バックエンドで起動できない場合にのみ Xorg バックエンドが使われます。ユーザーによっては Wayland バックエンドで問題が発生しているという 報告 があり、場合によっては Xorg バックエンドの使用が必要なことがあります。デフォルトで Xorg バックエンドを使用させるには、/etc/gdm/custom.conf ファイルを編集して以下の行をアンコメントしてください:

#WaylandEnable=false

GDM の不完全な削除

GDM を削除すると、systemd が以下のようにエラーを吐くことがあります:

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

上記の警告を消すには、root でログインしてプライマリユーザーの "gdm" とグループの "gdm" を削除してください:

# userdel gdm
# groupdel gdm

pwckgrpck を使うことで gdm が削除されたことを確認できます。所有者がないファイルがないか確認すると良いでしょう。

参照