LightDM

提供: ArchWiki
2018年2月6日 (火) 23:41時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://www.freedesktop.org/」を「https://www.freedesktop.org/」に置換)
ナビゲーションに移動 検索に移動

関連記事

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

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

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

インストール

公式リポジトリから lightdm をインストールしてください。リリースバージョンについては、安定版は偶数 (1.8, 1.10) 開発版は奇数 (1.9, 1.11) が付けられています。開発ブランチは AUR から lightdm-develAUR か lightdm-bzrAUR をインストールすることで使えます。

Greeter

Greeter もインストールする必要があります。Greeter はユーザーにログイン情報の入力を求める GUI であり、セッションの選択なども行います。Greeter 無しで LightDM を使うことも可能ですが、その場合は自動ログインを設定しなくてはなりません。公式の Greeter は lightdm-gtk-greeter です。LightDM は他の Greeter が設定されていない場合、この Greeter を使用します。

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

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

設定ファイルの [Seat:*] セクションを変更することでデフォルトの Greeter を変えることが可能です:

/etc/lightdm/lightdm.conf
[Seat:*]
…
greeter-session=lightdm-yourgreeter-greeter

/usr/share/xgreeters ディレクトリの .desktop ファイルを見ることで利用可能な Greeter が確認できます。以下の例では lightdm-gtk-greeterlightdm-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 lockdm-tool switch-to-greeter の使用は推奨されません [1]light-lockerなど他のスクリーンロッカーを使ってください。

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-greeterAUR: /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
ノート: LightDM ユーザーが画像ファイルにアクセスできるようにするため、/usr/share/pixmaps に PNG や 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-greeterAUR の場合、ログイン画面で直接背景画像を選択することができます。起動するたびにランダムに画像を表示するオプションも存在します。デフォルトでは、画像は /usr/share/backgrounds から読み込まれます。lightdm-webkit2-greeter.conf を編集することで背景画像のディレクトリを変更できます。例:

/etc/lightdm/lightdm-webkit2-greeter.conf
[branding]
background_images = /usr/share/backgrounds
ノート: 背景画像は LightDM ユーザーからアクセスできる場所にないと表示されないため /home 下の場所を指定しないでください。

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.confBackground 変数を編集する方法もあります:

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

アバターを変更する

ヒント: KDE を使っている場合、KDE システム設定からアバターを変更できます。

まず accountsservice パッケージ (公式リポジトリにあります) がインストールされているか確認してください。それから、以下の手順で設定してください。<username> はあなたのログイン名に置き換えてください。.png ファイルの拡張子はファイル名に含めません。

  • /var/lib/AccountsService/users/<username> を作成・編集して、次の行を加えて下さい:
[User]
Icon=/var/lib/AccountsService/icons/username
  • 96x96 の PNG アイコンファイルを /var/lib/AccountsService/icons/username に配置して下さい。
ノート: 作成したファイルのパーミッションは 644 に設定して下さい。詳しくは chmod を参照。

Arch の 64x64 アイコンを使う

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

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

システムユーザーをログイン画面で表示されないようにするには、任意の依存パッケージ accountsservice をインストールするか、ユーザーの名前を /etc/lightdm/users.confhidden-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 変数に値を入力する必要があります。xy を入れることができ、絶対座標 (ピクセル) と相対座標 (パーセント) で指定できます。また、ウィンドウのアンカーの位置 (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 トンネルを開いてローカルホストに接続してください。

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

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#設定を参照してください。

参照