設定 - LightDM
概要
LightDMは、グラフィカルログインおよびユーザ認証を提供するディスプレイマネージャである。
ディスプレイマネージャは、ユーザにログイン画面を表示して、ユーザがユーザ名とパスワードの有効な組み合わせを正常に入力する時、セッションが開始される。
LightDMは非常に軽量なログインマネージャであり、XFCE、MATE、Cinnamon等のリソースを消費しないデスクトップ環境を持つ多くのLinuxディストリビューションにプリインストールされている。
背景やテーマ等のバニラ設定は少し退屈に見えるがカスタマイズ機能があるため、全てを簡単にカスタマイズすることができる。
LightDMの他に、XDM、GDM、SDDM等のディスプレイマネージャが存在する。
LightDMのインストール
LightDMをインストールする。
# SUSE sudo zypper install lightdm
変更可能な全てのディスプレイマネージャを表示する。
sudo update-alternatives --list default-displaymanager
- ディスプレイマネージャを対話式に変更する場合
sudo update-alternatives --config default-displaymanager
 - ディスプレイマネージャを非対話式に変更する場合
sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/lightdm
 
LightDMの設定
全体の設定
LightDMの設定ファイルは、以下に示すディレクトリに配置する必要がある。
- 優先順位 1 : /etc/lightdm/lightdm.conf.d/*.conf
 - 優先順位 2 : /etc/lightdm/lightdm.conf
 - 優先順位 3 : /usr/share/lightdm/lightdm.conf.d/*.conf
 
LightDMの設定ファイルで設定できる項目を、以下に示す。
最も重要なセクションは、[LightDM]セクション と [Seat:*]セクション である。
※注意
- 全てのセクションが常に使用されるわけではない。
システムの設定や使用環境により、必要なセクションが変わる場合がある。 - LightDMのバージョンによって利用可能なセクションが異なる場合がある。
 - カスタムセクションを追加することも可能であるが、LightDMがそれらを認識するかどうかは設定内容による。
 
 # /etc/lightdm/lightdm.confファイル
 
 [LightDM]
 # デバッグモードを有効にするかどうか (true / false)
 # デバッグ情報を詳細に出力したい場合に使用する
 debug=false
 
 # LightDMのログファイルの保存先
 # システムのログ管理を変更したい場合に指定する
 log-directory=/var/log/lightdm
 
 # 実行時の最小空きディスク容量(メガバイト単位)
 # 指定された容量以下になると、LightDMは起動しない
 minimum-vt=7
 
 # LightDMが使用する仮想端末番号
 # 通常は変更する必要はない
 minimum-vt=7
 
 # ユーザセッションのデフォルトサービス名
 # 特定のセッションマネージャーを使用したい場合に指定する
 user-session=default
 
 # Xorgサーバの設定ファイルへのパス
 # カスタムのXorg設定を使用する場合に指定する
 xserver-config=xorg.conf
 
 # Xorgサーバのコマンドライン引数
 # Xorgの動作をカスタマイズしたい場合に使用する
 xserver-command=X -core
 
 # シート設定セクション
 [Seat:*]
 # 自動ログインを有効にするかどうか (true / false)
 autologin-guest=false
 
 # 自動ログインするユーザ名
 autologin-user=
 
 # 自動ログインの遅延時間 (秒単位)
 autologin-user-timeout=0
 
 # 自動ログインセッション
 autologin-session=
 
 # ゲストアカウントを許可するかどうか (true / false)
 allow-guest=true
 
 # ゲストセッションのパス
 guest-session=
 
 # グリーター (ログイン画面) のセッション
 greeter-session=<テーマ名  例: slick-greeter>
 
 # ユーザセッションを保存するかどうか (true / false)
 user-session=default
 
 # ログイン後にXorgセッションを終了するかどうか (true / false)
 exit-on-failure=false
 
 # デフォルトのディスプレイ設定ファイルへのパス
 display-setup-script=
 
 # セッション設定スクリプトへのパス
 session-setup-script=
 
 # グリーターの認証エージェントへのパス
 greeter-auth-agent=
 
 # ログイン画面の背景画像へのパス
 background=
 
 # ディスプレイ設定セクション
 [XDMCPServer]
 # XDMCPサーバーを有効にするかどうか (true / false)
 enabled=false
 
 # XDMCPサーバーがリッスンするポート番号
 port=177
 
 # VNC設定セクション
 [VNCServer]
 # VNCサーバを有効にするかどうか (true / false)
 enabled=false
 
 # VNCサーバがリッスンするポート番号
 port=5900
 
 # VNCサーバの認証方法 (VncAuth / None)
 authentication=VncAuth
 
 # VNCサーバのパスワードファイルへのパス
 password=
背景画像の変更
背景を変更する場合、LightDMの設定ファイルである/etc/lightdm/lightdm.confファイルを編集する。
ただし、高画質の画像は起動を遅らせる可能性があることに注意する。
sudo vi /etc/lightdm/lightdm.conf
 # /etc/lightdm/lightdm.confファイル
 
 # シート設定セクション
 [Seat:*]
 background=<背景画像のパス>
自動ログイン
LightDMには、NVidiaドライバに関するいくつかの問題もあり、自動ログインが機能しない場合がある。
ただし、自動ログインはセキュリティ上の問題を引き起こすため非推奨である。
LightDMの設定ファイルを編集する。
sudo vi /etc/lightdm/lightdm.conf
 # /etc/lightdm/lightdm.confファイル
 
 [Seat:*]
 autologin-user=<自動ログインするユーザ名>
自動ログインを有効にする場合は、ユーザをautologinグループに追加する。
sudo groupadd -r autologin sudo gpasswd -a <自動ログインするユーザ名> autologin
各ユーザのLightDMのセッションを指定する場合は、~/.dmrcファイルに指定されたセッションを使用してログインする。
有効なセッション名のリストは、Xセッションは/usr/share/xsessions/*.desktop、Waylandセッションは/usr/share/wayland-sessions/*.desktopにインストールされている。
※注意
GNOMEユーザとgnome-keyringユーザは、自動的にロックが解除されるよう、キーリングに空のパスワードを設定する必要がある。
このファイルの設定を上書きして全体の設定を定義する場合は、/etc/lightdm/lightdm.confファイルのautologin-sessionキーで指定する。
sudo vi /etc/lightdm/lightdm.conf
 # /etc/lightdm/lightdm.confファイル
 
 [Seat:*]
 autologin-user=<自動ログインするユーザ名>
 autologin-session=<セッション名>
その他の設定
起動時の仮想キーボード
画面起動時において、仮想キーボードが表示される場合がある。
もし、仮想キーボードを非表示にする場合は、LightDM設定ファイル (/etc/lightdm/lightdm.confファイル) を編集する。
sudo vi /etc/lightdm/lightdm.conf
 # /etc/lightdm/lightdm.confファイル
 
 [SeatDefaults]
 
 # ...略
 # 追記
 # この設定は、Onboard (多くのディストリビューションで使用される仮想キーボード) を非表示モードで起動する
 greeter-setup-script=/usr/bin/onboard --hidden
 
 # ...略
さらに、仮想キーボードを完全に無効にする場合は、以下に示す設定も追記する。
sudo vi /etc/lightdm/lightdm.conf
 # /etc/lightdm/lightdm.confファイル
 
 # X serverの起動オプションを変更して、アクセシビリティ機能 (仮想キーボードを含む) を無効にする
 xserver-command=X -core -novtswitch -nolisten tcp -accessx -dpms
LightDMを再起動する、または、PCを再起動する。
※注意
一部のシステムでは、/etc/lightdm/lightdm.conf.d/ディレクトリ内に新しい設定ファイル (例: 50-no-onscreen-keyboard.conf) を作成して、設定を追加する必要もある、
テーマの設定
パッケージ管理システムからテーマをインストールする場合は、この手順を省略する。
PlingのWebサイトにアクセスして、任意のLightDMのテーマをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf <テーマ名>.tar.xz
テーマのディレクトリを、以下に示すいずれかのディレクトリに保存する。
- ~/.local/share/themes/
 - /usr/share/themes/
 
テーマを有効にするため、LightDMの設定ファイルである/etc/lightdm/lightdm.confファイルを編集する。
sudo vi /etc/lightdm/lightdm.conf
 # /etc/lightdm/lightdm.confファイル
 
 [Seat:*]
 
 # グリーター (ログイン画面) のセッション
 greeter-session=<テーマ名  例: slick-greeter>
LightDM KDE Greeter
LightDM KDE Greeterのインストール
LightDM KDE Greeterのビルドに必要なライブラリをインストールする。
sudo zypper install cmake extra-cmake-modules gettext-tools libX11-devel libxcb-devel libxkbcommon-devel typelib-1_0-LightDM-1       \
                    lightdm-qt5-devel libQt5Core-devel libQt5Gui-devel libQt5Widgets-devel libQt5DBus-devel libqt5-qtx11extras-devel \
                    libQt5QuickControls2-devel \
                    kauth-devel kconfig-devel kconfigwidgets-devel ki18n-devel kiconthemes-devel kcmutils-devel kdeclarative-devel   \
                    libKF5NetworkManagerQt-devel kpackage-devel plasma5-sdk
LightDM KDE Greeterをダウンロードする。
git clone https://invent.kde.org/plasma/lightdm-kde-greeter.git cd lightdm-kde-greeter
LightDM KDE Greeterのビルドおよびインストールする。
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
      -DGREETER_IMAGES_DIR=<任意のディレクトリ> \
      ..
make -j $(nproc)
make install
LightDM KDE Greeterの設定
LightDM KDE Greeterは、設定ファイルとしてlightdm-kde-greeter.confファイルを使用する。
/etc/lightdm/lightdm.conf.d/*.confファイル、あるいは、/etc/lightdm/lightdm.confにこのテーマを追加する。
sudo vi /etc/lightdm/lightdm.conf.d/lightdm-kde-greeter.conf
 # /etc/lightdm/lightdm.conf.d/lightdm-kde-greeter.confファイル
 
 [Seat:*]
 greeter-session=lightdm-kde-greeter
LightDM Slick Greeter
LightDM Slick Greeterのインストール
パッケージ管理システムからインストール
# SUSE sudo zypper install lightdm-slick-greeter
ソースコードからインストール
LightDM Slick Greeterのビルドに必要なライブラリをインストールする。
# SUSE
sudo zypper install gtk3-devel freetype2-devel cairo-devel libpixman-1-0-devel libXext-devel      \
                    liblightdm-gobject-1-0 libcanberra-devel libcanberra-gtk3-devel libxapp-devel \
                    vala
LightDM Slick Greeterをダウンロードする。
git clone https://github.com/linuxmint/slick-greeter cd slick-greeter
LightDM Slick Greeterのビルドおよびインストールする。
mason build \
      -Dprefix=<LightDM Slick Greeterのインストールディレクトリ> \
      ..
ninja -C . -j $(nproc)
ninja -C . install
LightDM Slick Greeterの設定
LightDM Slick Greeterは、設定ファイルとしてlightdm-kde-greeter.confファイルを使用する。
/etc/lightdm/lightdm.conf.d/*.confファイル、あるいは、/etc/lightdm/lightdm.confにこのテーマを追加する。
sudo vi /etc/lightdm/lightdm.conf.d/lightdm-slick-greeter.conf
 # /etc/lightdm/lightdm.conf.d/lightdm-slick-greeter.confファイル
 
 [Seat:*]
 greeter-session=lightdm-slick-greeter
LightDMの確認
まず、xorg-server-xephyrをインストールする。
次に、LightDMをXアプリケーションとして実行する。
lightdm --test-mode --debug
エラー関連
ログインが無限ループする
ログイン時において、ブラックスクリーンになった後にログインプロンプトに戻るという不具合が起きる場合がある。
この時、~/.Xauthorityファイルを削除する。
rm ~/.Xauthority
また、lightdm.confファイルにsession-wrapperキーを設定して、読み込むXsessionを変更する。
# ファイル名は任意の名前でよい sudo vi /etc/lightdm/lightdm.conf.d/99-session.conf
 [Seat:*]
 session-wrapper=/etc/lightdm/Xsession