LightDM

提供: ArchWiki
2024年1月18日 (木) 22:33時点におけるAshMyzk (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

LightDM はクロスデスクトップのディスプレイマネージャです。主な特徴は以下の通り:

  • クロスデスクトップ - 様々なデスクトップ技術をサポート。
  • 様々なディスプレイサーバーに対応 (X、Mir、Wayland ...)。
  • 軽量 - メモリの使用量が少なくて高速に動作。
  • ゲストセッションをサポート。
  • リモートログインをサポート (着信 - XDMCPVNC、発信 - XDMCP、PAM)。
  • 充実したテストスイート。
  • 軽量なコードベース。

LightDM の設計に関する詳細は ここ から見れます。

目次

インストール

lightdm パッケージをインストールしてください。開発版は lightdm-gitAUR でインストールできます。

Greeter

Greeter もインストールする必要があるでしょう。Greeter はユーザーにログイン情報の入力を求める GUI であり、セッションの選択なども行います。Greeter 無しで LightDM を使うことも可能ですが、自動ログインが設定されている場合に限ります。Greeter を使用する場合は、xorg-server をインストールし、さらに以下の greeter パッケージのどれかをインストールする必要があります。

公式リポジトリには以下の greeter が含まれています:

その他の greeter は AUR からインストールすることができます:

LightDM の設定ファイルの [Seat:*] セクションを変更することでデフォルトの greeter を設定することができます。例えば:

/etc/lightdm/lightdm.conf
[Seat:*]
...
greeter-session=lightdm-yourgreeter-greeter
...
ノート: lightdm-pantheon-greeter の設定ファイルは io.elementary.greeter.conf です。lightdm-pantheon-greeter.conf ではありません。

どの greeter が利用できるか確認できる方法としては、/usr/share/xgreeters ディレクトリ内のファイルをリストアップするというものがあります。それぞれの .desktop ファイルは1つの利用可能な greeter を表します。以下の例では、lightdm-gtk-greeter greeter と lightdm-webkit2-greeter greeter が利用可能です:

$ ls -1 /usr/share/xgreeters/
lightdm-gtk-greeter.desktop
lightdm-webkit2-greeter.desktop

LightDM を有効にする

LightDM をブート時に起動するには lightdm.service有効化してください。ディスプレイマネージャ#ディスプレイマネージャをロードする も参照。

コマンドラインツール

LightDM はコマンドラインツール dm-tool を提供しています。これを使うことで現在のシートのロック、セッションの切り替えなどができます。'最小主義の'ウィンドウマネージャを使っている場合やテストに便利です。利用できるコマンドを表示するには、次を実行してください:

$ dm-tool --help

ユーザーの切り替え

警告: dm-tool は、(dm-tool lockdm-tool switch-to-greeter を実行することで) 簡単にバイパスすることができ、light-locker か他の loginctl 互換のスクリーンロッカーが無いとセッションをロックしません。XScreenSaver#ロック画面からユーザーを切り替える を参照。

LightDM の dm-tool コマンドを使って別々の tty に複数のユーザーをログインさせることができます。以下のコマンドは現在のセッションをロックするシグナルを送信して LightDM の greeter への切り替えを行って、新しいユーザーがログインできるようにします:

$ dm-tool switch-to-greeter

テスト

まず、xorg-server-xephyrインストールしてください。

そして、LightDM を X アプリケーションとして実行してください:

$ lightdm --test-mode --debug

任意の設定と調整

LightDM は、設定ファイル /etc/lightdm/lightdm.conf を編集することで設定することができます。

また、一部の greeter には独自の設定ファイルが存在しています。例えば:

lightdm-gtk-greeter: /etc/lightdm/lightdm-gtk-greeter.conf (あるいは、lightdm-gtk-greeter-settings GUI を使用することもできます)。

lightdm-webkit2-greeter: /etc/lightdm/lightdm-webkit2-greeter.conf

X セッションラッパー

xinit から移行したユーザは、セッションがシェルから起動しないことに気づくでしょう。これは、シェルはセッションを起動する (そして、セッションはシェルの環境変数を継承する) のに対し、LightDM はセッションを起動するがシェルを source しないことが原因です。LightDM はラッパースクリプトを実行することでセッションを起動し、最後にグラフィカル環境を起動します。デフォルトでは、/etc/lightdm/Xsession が実行されます。

環境変数

スクリプトは /etc/profile~/.profile/etc/xprofile、そして ~/.xprofile をこの順番で読み込みます。これらのファイルを source しないシェルを使用している場合は、ファイルを読み込む ~/.xprofile を作成してもよいです。以下の例では、zsh がログインシェルです:

~/.xprofile
#!/bin/sh
[ -f ~/.config/zsh/.zshenv ] && . ~/.config/zsh/.zshenv

セッションにおいて重要であるシェル変数 (GTK や QT のテーマ、GNUPG の場所、設定のオーバーライドなど) を定義している場合は、こうすることでログインシェルから起動せずにグラフィカル環境が環境変数にアクセスすることができるようになります。

キーマップ

スクリプトは /etc/X11/Xkbmap~/.Xkbmap で定義されている引数を使って Xkbmap を実行します。これらのファイルが存在しない場合、スクリプトは /etc/X11/Xmodmap~/.Xmodmap で定義されている引数を使って xmodmap を実行します。xkbmap を使用する場合、上記のファイルは cat を使ってパースされます。例:

~/.Xmodmap
-model pc105 -layout us,us,tr -variant ,dvorak,f -option grp:caps_toggle

それら以外の場合、セッションは X11 のシステムのデフォルトのキーマップを継承します。このキーマップは、xorg の設定ファイルを手動で編集するか、localectl set-x11-keymap を使用することで定義することができます。Xorg/キーボード設定#キーボードレイアウトの設定 を参照。

lightdm-gtk-greeter で複数のキーボード配列

事前定義済みのキーボード配列の中から配列を切り替えられるようにするには、ドロップダウンメニューを有効化し、配列を設定してください。lightdm-gtk-greeter-settings GUI を使用するか、設定ファイルを直接編集してください:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
indicators = ~host;~spacer;~clock;~spacer;~layout;~language;~session;~a11y;~power

複数の配列を設定するには localectl を使用してください。例えば、de とその "バリアント" である neo を設定し、後者をプライマリとするには:

# localectl --no-convert set-x11-keymap de,de pc105 neo,

末尾のコンマは2つめの de の空白のバリアントを意味していることに注意してください。

背景画像・色を変更する

背景には16進数のカラーコードか画像を設定することができます。一部の greeter は、ログイン画面による背景選択、ランダムな背景などのよりロバストな背景オプションを提供しています。

GTK greeter

lightdm-gtk-greeter-settings GUI を使って設定することができます。

Greeter 画面の壁紙をカスタマイズしたい場合は、/etc/lightdm/lightdm-gtk-greeter.conf を編集して [greeter] セクション内で background 変数を定義する必要があります。例:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg
ノート: LightDM ユーザーが画像ファイルにアクセスできるようにするために、/usr/share/pixmaps に PNG や JPG ファイルを配置することが推奨されています。

GTK3 テーマは [greeter] セクション内の theme-name 変数で指定することができます。アイコンとカーソルのテーマも同じように設定できます。例:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
theme-name = Tela
icon-theme-name = Tela
cursor-theme-name = Tela
cursor-theme-size = 32
font-name = Cantarell 20

Webkit2 greeter

lightdm-webkit2-greeter では、背景画像をログイン画面で直接選択することができます。また、Material テーマを使用する場合は、起動するたびにランダムな画像を表示するオプションも提供されています。デフォルトでは、画像は /usr/share/backgrounds から読み込まれます。lightdm-webkit2-greeter.conf を編集することで背景画像を直接変更することができます。例えば:

/etc/lightdm/lightdm-webkit2-greeter.conf
[branding]
background_images = /usr/share/backgrounds
ノート: 背景画像のディレクトリは LightDM ユーザによってアクセス可能でなければなりません。よって、画像は /home 内に配置するべきではありません。

Slick Greeter

lightdm-settingsAUR GUI を使用してください。

アバターを変更する

まず、accountsservice パッケージがインストールされていることを確認し、その後、以下のようにセットアップしてください。username の部分はユーザーのログイン名に置き換えてください。

  • 96x96 の PNG 画像ファイルを使って /var/lib/AccountsService/icons/username.png ファイルを作成してください。その他の画像フォーマットも利用可能です (例えば JPEG)。
  • あるいは、デフォルトの設定がすでにユーザーのホームディレクトリのパスを使用している場合は、画像ファイルを /home/username/.face として配置し、次の手順を飛ばしてください。
  • アカウントの設定ファイル /var/lib/AccountsService/users/username を編集あるいは作成し、以下の設定を追加してください:
[User]
Icon=/var/lib/AccountsService/icons/username.png

ここでのファイル名は、1番目の手順で作成したアイコンファイルでなければなりません。なので、必要に応じてファイル名の拡張子を変更してください。

ノート: 作成したファイルのパーミッションは全て 644 に設定してください。chmod を使って、パーミッションを設定してください。

Arch の 64x64 アイコンを使う

archlinux-artworkAUR パッケージには素晴らしいサンプルが含まれており、/usr/share/archlinux/icons にインストールされます。以下のように /usr/share/icons/hicolor/64x64/devices にコピーすることが可能です:

# find /usr/share/archlinux/icons -name "*64*" -exec cp {} /usr/share/icons/hicolor/64x64/devices \;

コピーした後は、archlinux-artworkAUR パッケージは削除してかまいません。

自動ログインを有効にする

LightDM の設定ファイルを編集して、以下の設定をアンコメントし、正しく設定してください:

/etc/lightdm/lightdm.conf
[Seat:*]
autologin-user=username

パスワードを入力しないで自動的にログインできるようにするには、ユーザを autologin グループに追加する必要があります:

# groupadd -r autologin
# gpasswd -a username autologin

LightDM は ~/.dmrc に指定されたセッションを使ってログインします。このファイルの設定をオーバーライドするには、lightdm.confautologin-session を指定してください:

/etc/lightdm/lightdm.conf
[Seat:*]
autologin-user=username
autologin-session=session

有効なセッション名のリストは、X セッションは /usr/share/xsessions/*.desktop を、Wayland セッションは /usr/share/wayland-sessions/*.desktop を一覧表示すればわかります。

ノート: GNOME ユーザー (と gnome-keyring ユーザー) は、自動でロックが解除されるように、キーリングに空のパスワードを設定する必要があります。

インタラクティブなパスワードレスログインを有効化する

LightDM は PAM を経由します。なので、PAM の lightdm 設定ファイルを設定する必要があります:

/etc/pam.d/lightdm
#%PAM-1.0
auth        sufficient  pam_succeed_if.so user ingroup nopasswdlogin
auth        include     system-login
...

次に、パスワードを入力せずにインタラクティブにログインできるようにするために、あなたのユーザを nopasswdlogin グループと autologin グループに追加する必要があります:

# groupadd -r nopasswdlogin
# groupadd -r autologin
# gpasswd -a username nopasswdlogin
# gpasswd -a username autologin
ノート: GNOME ユーザや gnome-keyring ユーザは、前のセクションにある自動ログインの有効化に関する指示に従う必要がある場合があります。

自動ログインし、さらにパスワード無しで再ログインできるユーザアカウントを作成するには、両方のグループに含まれるユーザを作成してください。例えば:

# useradd -mG autologin,nopasswdlogin -s /bin/bash username

ゲストセッションを有効化する

ノート: この機能を有効化すると、ゲストユーザはパスワード無しでシステムにアクセスできるようになります。

(システムの設定を変えずに) LightDM でゲストセッションを有効化するには、少なくとも以下の2つが必要です:

  1. guest-account-script: guest-account をデフォルトとし、以下の2つのコマンドを受け入れるスクリプト:
    • add (一時的なゲストシステムアカウントを作成し、作成されたアカウントのユーザ名を返します)
    • remove アカウント名 (対応するアカウントを削除します)
  2. 作成されたゲストアカウントを追加する autologin グループ (参照: /etc/pam.d/lightdm-autologin)。

LightDM でゲストセッションを有効化する AUR パッケージが2つあります:

  • lightdm-guestAUR: 上流の (ほぼ変更されていない) guest-session スクリプトと lightdm 自体を提供します。
  • lightdm-guest-accountAUR: スクリプトの最小バージョンのみを提供します。

システムユーザーとサービスユーザーを隠す

システムユーザーをログイン画面で表示されないようにするには、任意の依存パッケージ accountsservice をインストールするか、ユーザーの名前を /etc/lightdm/users.confhidden-users に追加してください。前者の方法ではユーザーを追加・削除したときにリストを更新する必要はありません。

SLiM からの移行

xinitrc の中身を xprofile に移動し、ウィンドウマネージャデスクトップ環境を起動するコマンドを削除してください。

~/.xinitrc を使ってログイン

ディスプレイマネージャ#セッションとして ~/.xinitrc を実行 を見てください。

NumLock をデフォルトでオンにする

numlockx パッケージをインストールし、/etc/lightdm/lightdm.conf を編集してください:

/etc/lightdm/lightdm.conf
[Seat:*]
greeter-setup-script=/usr/bin/numlockx on

デフォルトセッション

他の DM と同じように、Lightdm は最後に選択された xsession を ~/.dmrc に保存します。詳しくは ディスプレイマネージャ#セッション設定 を見てください。

ログインウィンドウの位置を変更

GTK greeter

/etc/lightdm/lightdm-gtk-greeter.conf を編集して position 変数に値を入力する必要があります。x 値と y 値を入れることができ、絶対座標 (ピクセル) と相対座標 (パーセント) で指定できます。また、ウィンドウのアンカーの位置 (startcenterend) を指定することもできます。値はカンマで区切ります。

例:

position=200,start 50%,center

VNC サーバー

Lightdm を使って VNC 経由で接続することも可能です。サーバ側に tigervnc をインストールしてください。任意で、クライアント側の PC にも VNC クライアントとしてインストールしてください。

サーバ側で root として認証パスワードをセットアップしてください:

# vncpasswd /etc/vncpasswd

そして、以下のように LightDM の設定ファイルを編集してください。listen-address の設定で localhost からの接続のみをリッスンするように VNC を設定していることに注意してください。これは、SSH とポートフォワーディング経由での接続のみを許可するためです。SSH クライアントでは、トンネルの接続先として localhost:5900 のみを使うようにしてください。デュアルスタックのネットワーク接続では 127.0.0.1:5900::1:5900 は信頼性がありません。セキュアでない接続も許可するようにしたい場合、この設定を無効化してください。

/etc/lightdm/lightdm.conf
[VNCServer]
enabled=true
command=Xvnc -rfbauth /etc/vncpasswd
port=5900
listen-address=localhost
width=1024
height=768
depth=24

設定したら、TigerVNC#クライアント側 に書かれているように SSH トンネルを開いてローカルホストに接続してください。

ノート: VNC 接続を開いたときに画面に何も表示されない場合、別の LightDM greeter を試してみてください。

light-locker を使って画面をロック

light-locker は LightDM を使用してユーザーを認証するシンプルなスクリーンロッカーです。インストールして起動したら以下のコマンドでセッションをロックできます:

$ light-locker-command -l

上記コマンドを使うにはセッションの最初に light-locker を起動する必要があります。デフォルトでは、これは XDG 自動起動を使用して有効化されます。その他のオプションは 自動起動 を見てください。

マルチモニターのセットアップ

マルチモニター環境では LightDM がモニターの解像度を適切に設定しないことがあります。以下の Xorg 設定はデュアルモニターの環境で機能します: 大きなプライマリスクリーンを左側に配置し、サブの小さい方のスクリーンをプライマリの右側に配置します。順番は逆にすることも変更することもできます。

/etc/X11/xorg.conf.d/52-resolution-fix.conf
Section "Monitor"
    Identifier "DP1"
    Option "PreferredMode" "3840x2160"
    Option "Primary" "1"
EndSection
Section "Monitor"
    Identifier "eDP1"
    Option "PreferredMode" "1920x1080"
    Option "RightOf" "DP1"
EndSection

これは、/etc/lightdm/lightdm.confdisplay-setup-script の設定を不要にします。

トラブルシューティング

自動ログインが機能しない

/etc/lightdm/lightdm.conf 内の autologin-user= に適切な値が設されていることを確認してください。末尾に空白があるとエラーが発生します。

自動ログインが失敗した時に画面に何も表示されない、あるいはログイン画面に即座に戻される場合、logind-check-graphical=true を設定する必要があるかもしれません。

自動ログインの用途には lightdm-autologin-greeter-gitAUR をインストールすることもできます。

現在の設定を見る

現在の設定を見るには、以下を実行してください:

$ lightdm --show-config

現在の設定、及びそれらの設定が読み込まれた元の設定ファイルが表示されます。

LightDM が起動せず、画面が点滅する

起動時に画面が点滅し続け、LightDM が表示されない場合、LightDM の設定ファイルで greeter を正しく定義しているか確認してください。GTK greeter を適切に定義している場合は、xsessions-directory (デフォルト: /usr/share/xsessions) が存在していて少なくとも一つは .desktop ファイルが含まれていることを確認してください。

最後に使用したセッションが利用できなくなった時も同じ問題が lightdm の起動時に発生することがあります (例えば gnome を使った後 gnome-session パッケージを削除した場合): 一番簡単な回避策は削除したパッケージを一時的に戻すことです。もうひとつの解決策は:

# dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:xfce

この例は、セッション "xfce" をユーザー ID 1000 のユーザーのデフォルトとして設定します。

間違ったロケールが表示される

LightDM でロケールが正しく表示されない場合はあなたが使用しているロケールを /etc/environment に追加してください:

LANG=ja_JP.utf8

LightDM や greeter でシステムロケール以外の言語を使いたい場合、ドロップインファイルEnvironment= オプションを使用することで可能です。

起動後数分間反応しない

より多くのエントロピーが必要なのかもしれません。Haveged をインストールし、有効化してください。参照: https://github.com/canonical/lightdm/issues/17

GTK greeter でアイコンが表示されない

lightdm-gtk-greeter を greeter として使っていてプレースホルダ画像がアイコンとして表示される場合、正しいアイコンテーマとテーマを設定してください。次のファイルを確認してください:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
theme-name=mate      # /usr/share/themes/ 以下のディレクトリの名前
icon-theme-name=mate # /usr/share/icons/ 以下の完全なアイコンセットディレクトリの名前

ログインしようとすると LightDM がフリーズする

適当なユーザー名・パスワードを入力してログインしようとすると、LightDM がフリーズしデスクトップを起動できないことがあります。この問題を修正するには、gdk-pixbuf2 パッケージを再インストールしてください。フォーラムへの投稿を参照。

LightDM が間違ったモニタに表示される

マルチモニタを使っていると、LightDM が間違ったモニタに表示されることがあります (例: プライマリモニタが右側にある場合)。LightDM のログイン画面が特定のモニタで表示されるように指定するには、/etc/lightdm/lightdm.conf を編集して display-setup-script パラメータを次のように変更してください:

/etc/lightdm/lightdm.conf
display-setup-script=xrandr --output HDMI-1 --primary

HDMI1 は実際のモニタの ID に置き換えてください、xrandr コマンドの出力で確認できます。

もしくは、GTK greeter を使用している場合、/etc/lightdm/lightdm-gtk-greeter.conf を編集して以下のように active-monitor パラメータを追加することもできます:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
active-monitor=0

0 は適当なディスプレイの番号に置き換えてください。

LightDM が表示されない、または TTY 出力のみがモニタに表示される

システムの起動が速すぎて、グラフィックドライバーが読み込まれるよりも先に LightDM サービスが起動してしまうことがあります。このような場合、lightdm.conf ファイルに以下の設定を追加してください:

/etc/lightdm/lightdm.conf
[LightDM]
logind-check-graphical=true

上記の設定で LightDM はグラフィックデバイスの準備が完了するのを待ってから、greeter を生成する、またはセッションを自動起動します。

しかし、新しいバージョンの LightDM では、これがデフォルトの設定になっています。その結果、一部のハードウェアでは、グラフィックドライバが適切に検出されず、LightDM が greeter を起動しない場合があります (ブートしてシステムが安定した後でも)。この場合、この設定を false に設定して、グラフィックドライバのチェックをせずに greeter を起動するように強制的してください。

Intel Graphics で LightDM の FPS が低い

Intel graphics#AccelMethod を参照。

Pulseaudio が自動的に起動しない

PulseAudio#実行 を参照。

ホームディレクトリが暗号化されていると LightDM の表示に時間がかかる

一部の LightDM テーマは、ホームディレクトリ内のアバター画像ファイルにアクセスしようとします。ホームディレクトリが暗号化されている場合、LightDM はホームディレクトリにアクセスできず、フリーズします。以下のどちらかの方法により、これを防止できます:

"[ OK ] Reached target Graphical Interface." で起動がストップする

/etc/nsswitch.conf を変更している場合、ユーザとグループの探索に失敗することがあります。これは、/etc/nslcd.confnss_initgroups_ignoreusers ALLLOCAL を設定せずに nsswitch.conf のグループに ldap が含まれている場合に起こります。

Greeter に重複した GNOME エントリがあると Wayland セッションが動作しない

一部の greeter (例: lightdm-webkit2-greeter) は、2つのセッションが同一の名前を持つことをサポートしていません [1]。重複したエントリがあるか確認するには:

$ ls -1 /usr/share/wayland-sessions /usr/share/xsessions

/usr/share/xsessions 内の重複したエントリの名称を変更してください。例えば:

# mv /usr/share/xsessions/gnome.desktop /usr/share/xsessions/gnome.desktop.disabled

初回ログイン時に必ずセクメンテーション違反が発生する

ネットワーク設定#ホスト名の設定 にあるように、ホスト名を設定してください。FS#47694 も参照してください。

ログインの無限ループ

正しいユーザ名とパスワードを入力しても画面が真っ暗になり、何度やってもログイン画面に戻るというループに陥った場合、rm ~/.Xauthority を実行する (つまり、無限ループが発生しているユーザの問題のある .Xauthority を削除する) と解決することがあります。

もう一つの理由は、あなたが "lightdm.conf" を一から作り直そうとして、以下の行を入れ忘れたのかもしれません:

session-wrapper=/etc/lightdm/Xsession

この行がないと、LightDM は、Arch Linux には存在しない "lightdm-session" をセッションラッパーとして使おうとしてしまいます。

lightdm.conf ファイルで session-wrapper を設定したが、lightdm のログではデフォルトの session-wrapper が使われていると出力される場合、スタートアップ中に lightdm.conf がアクセスできる状態にあることを確認してください。そのような例としては、lightdm.conf をホームディレクトリ内のファイルへのシンボリックリンクにしたが、LightDM サービスが開始する前はホームディレクトリがマウントされていないような環境があります。そのようなケースでは、LightDM はデフォルトの session-wrapper にフォールバックします。

参照

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