greetd
関連記事
greetd は、コンソールベースであれグラフィカルであれ、ユーザが何を起動したいのかを仮定しない、軽量で柔軟な login manager デーモンです。コンソールから起動できるスクリプトやプログラムはすべて greetd で起動できるので、 Wayland Compositors に特に適しています。greeter を起動して、他のディスプレイマネージャと同様にユーザセッションを開始することもできます。
目次
インストール
greetd または greetd-gitAUR パッケージを インストール します。
デフォルトの設定ファイルは /etc/greetd/config.toml
です。PAM 固有のオプションは、 /etc/pam.d/greetd
で設定する必要があります。
Greeters
ユーザーセッションを開始できるようにするには、greetd に greeter が必要です。いくつかの greeter が利用可能です:
agreety
を使用します。(デフォルト、greetdAUR/greetd-gitAUR に同梱)、agetty に似たテキストベースの greeter です。- https://git.sr.ht/~kennylevinsen/dlm dlm] (greetd-dlm-gitAUR で提供), fbdev greeter です。
- gtkgreet (greetd-gtkgreetAUR/greetd-gtkgreet-gitAUR によって提供されています) GTK greeter です。
- wlgreet (provided by greetd-wlgreetAUR/greetd-wlgreet-gitAUR), a Wayland greeter.
- tuigreet (greetd-tuigreetAUR によって提供されています)、コンソール UI greeter です。
- ddlm (greetd-dlm-gitAUR によって提供されています), fbdev greeter です。
dlm
の強化/拡張版です。 - qtgreet (greetd-qtgreetAUR によって提供されています), Qt greeter です。
greetd を開始する
有効化 して greetd.service
を起動時に開始
参照 ディスプレイマネージャ#ディスプレイマネージャをロードする
Greeter の設定
greetd が実行する greeter の設定は、 default_session
セクションの command
オプションで行ないます。
もし何も変更がなければ、含まれている agreety
greeter が使用されます。また、#agreety も参照してください。
デフォルトでは、greeter は greeter
ユーザーとして実行されます。これは設定ファイルの default_session
セクションの user
オプションを編集して another_user を選択したユーザーで置き換えることで変更することが可能です。
... [default_session] user = "another_user" ...
/etc/greetd
ディレクトリの 所有者 が適切に設定されていることを確認してください。
agreety
これがデフォルトの greeter です。これは、次のように設定ファイルを設定して greetd によって起動されます。
... [default_session] command = "agreety --cmd $SHELL" ...
agreety は、ユーザーがログインすると、任意のコマンドを起動することができます。例えば、Sway を起動するには、上の例の $SHELL
を sway
に置き換えてください。
gtkgreet
gtkgreet が動作するには、コンポジターが必要です。完全な体験のためには、wlr-layer-shell-unstable
をサポートするコンポジターが必要ですが、他のものでも動作します。そのため、swayを使うことが推奨されますが、cage のようなものを使うことも可能です。cage と sway の両方の例が以下に示されています。
gtkgreet で起動できるログイン環境を指定するには、 /etc/greetd/environments
にその一覧を記述してください。
例:
sway bash
また、gtkgreet は -c mycommand
パラメータで mycommand を目的のプログラム(例えば gtkgreet -c bash
や gtkgreet -c sway
など)に置き換えて呼び出すことができます。以下のコンポジットの例では、必要に応じてそのようにしてください。
cage の使用法
cage を インストール し、以下のように command
オプションを設定してください。
... [default_session] command = "cage gtkgreet" ...
sway の利用
sway を インストール しますす。Sway を使用する場合、ユーザーがログインしたら終了させる必要があります。そのためには、例えば /etc/greetd/sway-config
に以下のような内容で特定の設定ファイルを作成する必要があります。
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet. exec "gtkgreet -l; swaymsg exit" bindsym Mod4+shift+e exec swaynag \ -t warning \ -m 'What do you want to do?' \ -b 'Poweroff' 'systemctl poweroff' \ -b 'Reboot' 'systemctl reboot' include /etc/sway/config.d/*
次に、上記の設定ファイルで Sway を開始するように greetd を設定する必要があります。 command
オプションを次のように設定します。
... [default_session] command = "sway --config /etc/greetd/sway-config" ...
wlgreet
wlgreet を開始するには、wlr-layer-shell-unstable
のコンポジターが必要です。 Sway で gtkgreet を 上記 として設定するために必要な手順に従いますが、代わりに /etc/greetd/sway-config
に以下を使用します。
exec "wlgreet --command sway; swaymsg exit" bindsym Mod4+shift+e exec swaynag \ -t warning \ -m 'What do you want to do?' \ -b 'Poweroff' 'systemctl poweroff' \ -b 'Reboot' 'systemctl reboot' include /etc/sway/config.d/*
tuigreet
tuigreet は特別な設定を必要とせず、次のように command
オプションを設定するだけです。
... [default_session] command = "tuigreet --cmd sway" ...
tuigreet--help
はカスタマイズオプションを表示します。
ddlm
ddlm は特別な設定を必要とせず、次のように command
オプションを設定するだけです。
... [default_session] command = "ddlm --target sway" ...
qtgreet
qtgreet を使用するには、WLR ベースのコンポジター(wayfireAUR、sway など)が必要です。
Wayfire の使用
wayfireAUR を インストール そして command
オプションを次のように設定します。
... [default_session] command = "wayfire --config /etc/qtgreet/wayfire.ini" ...
参照される Wayfire 設定ファイルは qtgreet に含まれています。
自動ログインを有効にする
ユーザーが自動的にログインするようにするには、initial_session
セクションを /etc/greetd/config.toml
で定義する必要があります。
... [initial_session] command = "sway" user = "myuser" ...
command
オプションには、任意の実行可能ファイルの名前を含めることができます。上記の例では、Sway は起動時に myuser
によって起動され、ユーザーがログアウトした後に gtkgreet が起動されます。
greetd を使用せず、常に自動ログインを有効にする場合は、[1] を参照してください。