LightDM
関連記事
LightDM はクロスデスクトップのディスプレイマネージャです。主な特徴は以下の通り:
- クロスデスクトップ - 様々なデスクトップに対応。
- 様々なディスプレイサーバーに対応 (X, Mir, ...)。
- 軽量 - メモリの使用量が少なくて高速に動作。
- ゲストセッションをサポート。
- リモートログインをサポート (XDMCP, VNC, XDMCP, pluggable)。
- 充実したテストスイート。
- 軽量なコードベース。
LightDM の設計に関する詳細は ここ から見れます。
目次
- 1 インストール
- 2 LightDM を有効にする
- 3 コマンドラインツール
- 4 テスト
- 5 任意の設定と調整
- 6 トラブルシューティング
- 7 参照
インストール
公式リポジトリから lightdm をインストールしてください。リリースバージョンについては、安定版は偶数 (1.8, 1.10) 開発版は奇数 (1.9, 1.11) が付けられています。開発ブランチは AUR から lightdm-develAUR か lightdm-gitAUR をインストールすることで使えます。
Greeter
Greeter もインストールする必要があります。Greeter はユーザーにログイン情報の入力を求める GUI であり、セッションの選択なども行います。Greeter 無しで LightDM を使うことも可能ですが、その場合は自動ログインを設定しなくてはなりません。デフォルトの Greeter は lightdm-gtk-greeter です。LightDM は他の Greeter が設定されていない場合、この Greeter を使用します。
公式リポジトリには以下の Greeter が含まれています:
- lightdm-gtk-greeter: デフォルト の Greeter
- lightdm-deepin-greeter (deepin-session-ui): Deepin プロジェクトからの Greeter。
- lightdm-pantheon-greeter: elementary OS プロジェクトの Greeter。
- lightdm-slick-greeter: GTK ベースの lightdm-gtk-greeter に比べて見た目にフォーカスした Greeter。lightdm-unity-greeterAUR からのフォークで、 Linux Mint ではデフォルトになっています。
- lightdm-webkit2-greeter: テーマに WebKit2 を使用する Greeter。lightdm-webkit-greeterAUR の後継。
- lightdm-webkit-theme-litarvan: モダンかつ完全な Webkit2 の LightDM テーマ。
他の Greeter は AUR からインストールすることができます:
- lightdm-unity-greeterAUR: Ubuntu の Unity で使われている Greeter。
- lightdm-mini-greeterAUR: ミニマルなシングルユーザー Greeter。
- lightdm-webkit-theme-aetherAUR: lightdm と lightdm-webkit2-greeter を使用し Arch Linux をテーマにしたなめらかでわかりやすいログイン画面です。
- lightdm-elephant-greeter-gitAUR: 小さくてシンプルな Greeter。デフォルトでは cage Wayland コンポジタ内で動作します。
- web-greeterAUR: テーマ設定に PyQtWebEngine を使用した、モダンで視覚的に魅力的な Greeter です。lightdm-webkit2-greeter を置き換えます。
設定ファイルの [Seat:*]
セクションを変更することでデフォルトの Greeter を変えることが可能です:
/etc/lightdm/lightdm.conf
[Seat:*] ... greeter-session=lightdm-yourgreeter-greeter
/usr/share/xgreeters
ディレクトリの .desktop
ファイルを見ることで利用可能な Greeter が確認できます。以下の例では lightdm-gtk-greeter
と lightdm-kde-greeter
が使えることがわかります:
$ ls -1 /usr/share/xgreeters/
lightdm-gtk-greeter.desktop lightdm-kde-greeter.desktop
LightDM を有効にする
systemctl を使って lightdm.service
デーモンを有効にしてください、それで LightDM がブート時に起動するようになります。ディスプレイマネージャ#ディスプレイマネージャをロードするも参照。
コマンドラインツール
LightDM はコマンドラインツール dm-tool
を提供しています。これを使うことで現在のシートのロック、セッションの切り替えなどができます。'最小主義の'ウィンドウマネージャを使っている場合やテストに便利です。利用できるコマンドを表示するには、次を実行してください:
$ dm-tool --help
ユーザー切り替え
LightDM の dm-tool コマンドを使って別々の tty に複数のユーザーをログインさせることができます。以下のコマンドは現在のセッションをロックするシグナルを送信して LightDM の greeter への切り替えを行って、新しいユーザーがログインできるようにします:
$ dm-tool switch-to-greeter
テスト
まず、公式リポジトリから xorg-server-xephyr をインストールしてください。
そして X アプリケーションとして LightDM を起動してください:
$ lightdm --test-mode --debug
任意の設定と調整
LightDM は設定ファイル /etc/lightdm/lightdm.conf
に修正を加えることで設定を行います。
また、Greeter にも設定ファイルが存在することがあります。例:
lightdm-gtk-greeter: /etc/lightdm/lightdm-gtk-greeter.conf
lightdm-webkit2-greeter: /etc/lightdm/lightdm-webkit2-greeter.conf
lightdm-kde-greeter[リンク切れ: パッケージが存在しません]: /etc/lightdm/lightdm-kde-greeter.conf
背景画像・色を変更する
単色 (画像なし) を使いたい場合は background
変数を十六進数の色コードに設定してください。例:
background=#000000
画像を使いたい場合は以下を参照してください。
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
GTK3 ダークテーマ
GTK3 からテーマに "dark" カラーパレットが追加されていますが、lightdm-gtk-greeter はまだネイティブでサポートしていません。/usr/share/xgreeters/lightdm-gtk-greeter.desktop
の環境変数でテーマを上書きするようにしてください。例:
/usr/share/xgreeters/lightdm-gtk-greeter.desktop
[Desktop Entry] Name=LightDM GTK+ Greeter Comment=This runs the GTK+ greeter, it should only be run from LightDM Exec=env GTK_THEME=Adwaita:dark lightdm-gtk-greeter Type=Application X-Ubuntu-Gettext-Domain=lightdm
Webkit2 Greeter
lightdm-webkit2-greeter の場合、ログイン画面で直接背景画像を選択することができます。起動するたびにランダムに画像を表示するオプションも存在します。デフォルトでは、画像は /usr/share/backgrounds
から読み込まれます。lightdm-webkit2-greeter.conf
を編集することで背景画像のディレクトリを変更できます。例:
/etc/lightdm/lightdm-webkit2-greeter.conf
[branding] background_images = /usr/share/backgrounds
Unity Greeter
lightdm-unity-greeterAUR を使っている場合 /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
ファイルを編集して次を実行してください:
# glib-compile-schemas /usr/share/glib-2.0/schemas/
この ページを参照。
KDE Greeter
System Settings > Login Screen (LightDM) に行き背景画像を変更してください。
また、lightdm-kde-greeter.conf
の Background
変数を編集する方法もあります:
/etc/lightdm/lightdm-kde-greeter.conf
[greeter] theme-name=classic [greeter-settings] Background=/usr/share/archlinux/wallpaper/archlinux-underground.jpg BackgroundKeepAspectRatio=true GreetMessage=Welcome to %hostname%
アバターを変更する
まず accountsservice パッケージ (公式リポジトリにあります) がインストールされているか確認してください。それから、以下の手順で設定してください。<username> はあなたのログイン名に置き換えてください。.png ファイルの拡張子はファイル名に含めません。
/var/lib/AccountsService/users/<username>
を作成・編集して、次の行を加えて下さい:
[User] Icon=/var/lib/AccountsService/icons/username
- 96x96 の PNG アイコンファイルを
/var/lib/AccountsService/icons/username
に配置して下さい。
Arch の 64x64 アイコンを使う
AUR の 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.conf
で autologin-session
を指定してください:
/etc/lightdm/lightdm.conf
[Seat:*] autologin-user=username autologin-session=session
インタラクティブなパスワードレスログインを有効化する
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
グループに追加する必要があります:
# groupadd -r nopasswdlogin # gpasswd -a username nopasswdlogin
自動ログインし、さらにパスワード無しで再ログインできるユーザアカウントを作成するには、両方のグループに含まれるユーザを作成してください。例えば:
# useradd -mG autologin,nopasswdlogin -s /bin/bash username
システム・サービスユーザーを隠す
システムユーザーをログイン画面で表示されないようにするには、任意の依存パッケージ accountsservice をインストールするか、ユーザーの名前を /etc/lightdm/users.conf
の hidden-users
に追加してください。前者の方法ではユーザーを追加・削除したときにリストを更新する必要はありません。
SLiM からの移行
xinitrc の中身を xprofile に移動し、ウィンドウマネージャやデスクトップ環境を起動するコマンドを削除してください。
~/.xinitrc を使ってログイン
カスタム起動スクリプトを使う場合は xprofile に移行することが推奨されますが、xinit-xsessionAUR をインストールすることで xinitrc を使うようにすることも可能です。/usr/share/xsessions/
に必要なファイルがインストールされ、LightDM を再起動したときにオプションが表示されるようになります。
NumLock を ON にする
numlockx パッケージをインストールして /etc/lightdm/lightdm.conf
を編集して次の行を加えて下さい:
/etc/lightdm/lightdm.conf
[Seat:*] greeter-setup-script=/usr/bin/numlockx on
ユーザー切り替え
LightDM は様々なデスクトップ環境でのユーザー切り替えをサポートしています。ユーザー切り替えを有効にするにはシンボリックリンクを作成する必要があります:
# ln -s /usr/lib/lightdm/lightdm/gdmflexiserver /usr/local/bin/gdmflexiserver
他の方法については XScreenSaver#Lightdm の記事を見て下さい。
デフォルトセッション
他の DM と同じように、Lightdm は最後に選択された xsession を ~/.dmrc
に保存します。詳しくはディスプレイマネージャ#セッション設定を見てください。
ログインウィンドウの位置を変更
GTK+ greeter
/etc/lightdm/lightdm-gtk-greeter.conf
を編集して position
変数に値を入力する必要があります。x
と y
を入れることができ、絶対座標 (ピクセル) と相対座標 (パーセント) で指定できます。また、ウィンドウのアンカーの位置 (start
, center
, end
) を指定することもできます。値はカンマで区切ります。
例:
position=200,start 50%,center
VNC サーバー
Lightdm を使って vnc 経由で接続することも可能です。サーバーとクライアントに tigervnc をインストールしてください。
サーバー側で root を使って認証パスワードを設定:
# vncpasswd /etc/vncpasswd
そして以下のように lightdm の設定ファイルを編集してください。listen-address
を使って vnc がローカルホストからの接続のみ listen するように設定します。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 トンネルを開いてローカルホストに接続してください。
light-locker を使って画面をロック
light-locker は LightDM を使用してユーザーを認証するシンプルなスクリーンロッカーです。インストールして起動したら以下のコマンドでセッションをロックできます:
$ light-locker-command -l
上記コマンドを使うにはセッションの最初に light-locker
を起動する必要があります。自動起動を見てください。
トラブルシューティング
画面が点滅して起動時に 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" を user 1000 ユーザーのデフォルトとして設定します。
電源メニュー (再起動、電源オフなど) が使えない
lightdm-1:1.6.0-6 より前に lightdm をインストールしている場合、次のバグが原因かもしれません: FS#36613。修正するには次を実行してください:
# chown polkitd:root /usr/share/polkit-1/rules.d
間違ったロケールが表示される
Lightdm でロケールが正しく表示されない場合はあなたが使用しているロケールを /etc/environment
に追加してください:
LANG=ja_JP.utf8
LightDM や greeter でシステムロケール以外の言語を使いたい場合、ユニットファイルを編集して Environment=
オプションを追加してください。
Xresources が正しく読み込まれない
LightDM には Xresources ファイルがプリプロセッサによってロードされないという上流のバグが存在します [2]。実際面で、これは #define
で設定された変数が後で呼ばれた時に展開されないということを意味しています。urxvt でカスタムカラーのセットを使った時にピンクの画面になることでこれを確認できます。修正するには、/etc/lightdm/Xsession
を開いて次の行を探して下さい:
xrdb -nocpp -merge "$file"
次のように変更してください:
xrdb -merge "$file"
これで Xresources が処理され変数が正しく展開されます。
GTK greeter でアイコンが表示されない
lightdm-gtk-greeter を greeter として使っていてプレースホルダ画像がアイコンとして表示される場合、正しいアイコンテーマとテーマを設定してください。次のファイルを確認してください:
/etc/lightdm/lightdm-gtk-greeter.conf
[greeter] theme-name=mate # this should be the name of a directory under /usr/share/themes/ icon-theme-name=mate # this should be the name of a fully featured icons set directory under /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 HDMI1 --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 が表示されない
システムの起動が速すぎて、グラフィックドライバーが読み込まれるよりも先に LightDM サービスが起動してしまうことがあります。このような場合、lightdm.conf
ファイルに以下の設定を追加してください:
[LightDM] logind-check-graphical=true
上記の設定で LightDM はグラフィックデバイスの準備が完了するのを待ってから Greeter を生成してセッションを開始します。
Pulseaudio が自動的に起動しない
PulseAudio#実行を見て下さい。
タッチパッドでタップしてクリックできない
設定によってはタップでクリックが機能しないことがあります。libinput を使用している場合、/etc/lightdm/lightdm.conf
を編集して以下のように greeter-setup-script オプションをセットして xinput によるタッチパッドのクリックを有効にしてください:
/etc/lightdm/lightdm.conf
greeter-setup-script=xinput set-prop device_number option_number setting_value
xinput
を使用して入力デバイスのプロパティを設定する方法は Libinput#設定を参照してください。
初回ログイン時に必ずセグメンテーション違反が発生する
ネットワークページ にあるように、ホスト名を設定してください。FS#47694も参照してください。
ログインの無限ループ
正しいユーザ名とパスワードを入力しても画面が真っ暗になり、何度やってもログインに戻るというループに陥った場合、rm ~/.Xauthority
を実行すると解決することがあります。(または、スタックしたユーザーの問題のある .Xauthority
) を実行すると、問題を解決できるかもしれません。
もう一つの理由は、"lightdm.conf" を一から作り直そうとして、あなたのバージョンにこの行が欠けていることが原因かもしれません。
session-wrapper=/etc/lightdm/Xsession
その場合、lightdm は lightdm-session をセッションラッパーとして使用しようとしますが、これは Arch Linux には存在しません。
参照
- light-locker - LightDM を使用する画面ロッカー。
- Ubuntu Wiki の記事
- Gentoo Wiki の記事
- Launchpad のページ
- LightDM ブログ