greetd

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

greetd は、コンソールベースであれグラフィカルであれ、ユーザが何を起動したいのかを仮定しない、軽量で柔軟なログインマネージャデーモンです。コンソールから起動できるスクリプトやプログラムはすべて greetd で起動できるので、Wayland コンポジタに特に適しています。greeter を起動して、他のディスプレイマネージャと同様にユーザセッションを開始することもできます。

インストール

greetd パッケージか greetd-gitAUR パッケージをインストールしてください。

デフォルトの設定ファイルは /etc/greetd/config.toml です。PAM 固有のオプションは、/etc/pam.d/greetd で設定します。

Greeter

greetd (自体) には greeter がバンドルされていません。なので、ユーザーセッションを開始できるようにするには、greeter をインストールする必要があります。いくつかの greeter が利用可能です:

  • greetd-agreety — デフォルト。agetty に似たテキストベースの greeter。
https://git.sr.ht/~kennylevinsen/greetd || greetd-agreety
  • dlm — fbdev の greeter。
https://git.sr.ht/~kennylevinsen/dlm || greetd-dlm-gitAUR
  • ddlm — fbdev の greeter。dlm の強化/拡張バージョン。
https://github.com/deathowl/ddlm || greetd-ddlm-gitAUR
  • gtkgreetGTK の greeter。
https://git.sr.ht/~kennylevinsen/gtkgreet || greetd-gtkgreet, greetd-gtkgreet-gitAUR
  • ReGreetGTK の greeter。様々なカスタムオプションが利用可能。Wayland 限定。
https://github.com/rharish101/ReGreet || greetd-regreet, greetd-regreet-gitAUR
https://git.sr.ht/~kennylevinsen/wlgreet || greetd-wlgreetAUR, greetd-wlgreet-gitAUR
  • tuigreet — コンソール UI の greeter。
https://github.com/apognu/tuigreet || greetd-tuigreet
  • qtgreetQt の greeter。
https://gitlab.com/marcusbritanicus/QtGreet || greetd-qtgreetAUR

Greetd を開始する

greetd.service有効化してください。これで、greetd がブート時に開始されます。

ディスプレイマネージャ#ディスプレイマネージャをロードする も参照。

Greeter の設定

greetd によって実行される greeter は、/etc/greetd/config.toml 内の default_session セクションで command オプションを使用して設定します。設定に変更が加えられていない場合は、同梱されている agreety greeter が使用されます。また、#agreety も参照してください。

デフォルトでは、greeter は greeter ユーザーとして実行されます。設定ファイル内の default_session セクションで user オプションを変更すれば、別のユーザとして実行できます。例 (another_user の部分は置き換えてください):

...
[default_session]
user = "another_user"
...

また、/etc/greetd ディレクトリの所有権も適切に変更してください。

agreety

これがデフォルトの greeter です。以下のように設定ファイルを変更すれば、agreety が起動されます:

...
[default_session]
command = "agreety --cmd $SHELL"
...

agreety は、ユーザのログイン時に任意のコマンドを実行することができます。例えば、Sway を起動するには、上の例の $SHELLsway に置き換えてください。

gtkgreet

gtkgreet が動作するには、コンポジターが必要です。完全なエクスペリエンスを得るには、wlr-layer-shell-unstable をサポートするコンポジターが必要ですが、他のものでも動作します。そのため、sway を使うことが推奨されますが、cage のようなものを使うことも可能です。cage と sway の両方の例が以下に示されています。

gtkgreet で起動できるログイン環境を指定するには、/etc/greetd/environments にその一覧を記述してください。例:

sway
bash

また、gtkgreet を呼び出す際に -c mycommand パラメータを使うこともできます (mycommand はログイン成功時に実行したいプログラムに置き換えてください。例えば、gtkgreet -c bashgtkgreet -c sway)。以下のコンポジタの例では、必要に応じてそのようにしてください。

cage を使う

cageインストールし、以下のように command オプションを設定してください:

...
[default_session]
command = "cage gtkgreet"
...

sway を使う

swayインストールしてください。Sway を gtkgreet のコンポジタとして使用する場合、ユーザがログインしたら終了しなければなりません。そのために、特定の設定ファイル (例えば /etc/greetd/sway-config) を以下の内容で作成する必要があります:

# `-l` は layer-shell モードを有効化します。
# `swaymsg exit` が 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"
...

ReGreet

gtkgreet と同じように、ReGreet もコンポジタが必要です。例えば、Cage と Sway は両方とも gtkgreet のときのように使用することができます (ただし、gtkgreet コマンドは regreet に置き換えてください)。Sway をコンポジタとして使用する場合の設定は以下のようになるでしょう:

# `swaymsg exit` は ReGreet の後に実行されることに注意してください。
exec "regreet; 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/*

ReGreet は /usr/share/xsession ディレクトリ (X11 セッション) と /usr/share/wayland-sessions ディレクトリ (Wayland セッション) から利用可能なセッションを認識します。なので、/etc/greetd/environments にセッションのリストを記述する必要はありません。

ReGreet は TOML ファイル /etc/greetd/regreet.toml で設定することができます。サンプルのファイルは /usr/share/doc/greetd-regreet/regreet.sample.toml にあり、このファイルには利用可能な全オプションが記述されています。このファイルを /etc/greetd/regreet.toml にコピーし、好きなように変更してください。必要ない行はコメントアウトしたり削除したりしてください。無効なオプションは全て無視されます。

wlgreet

wlgreet を開始するには、wlr-layer-shell-unstable をサポートするコンポジタが必要です。#sway を使う で説明されているように gtkgreet を Sway でセットアップするときと同じ手順を行ってください。ただし、/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 ベースのコンポジタ (wayfireAURsway など) が必要です。

Wayfire を使う

wayfireAURインストールし、以下のように command オプションを設定してください:

...
[default_session]
command = "wayfire --config /etc/qtgreet/wayfire.ini"
...

ここで参照されている Wayfire の設定ファイルは qtgreet に同梱されています。

ヒントとテクニック

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

特定のユーザに自動的にログインするようにしたい場合は、/etc/greetd/config.toml 内に initial_session セクションを定義する必要があります:

...
[initial_session]
command = "sway"
user = "myuser"
...

command オプションには、任意の実行可能ファイルの名前を指定することができます。上記の例では、ブート時に Sway が myuser ユーザによって開始され、ユーザーがログアウトシた後に gtkgreet が起動されます。

greetd を使用せず、常に自動ログインを有効にしておきたい場合は、autologin を参照してください。

ローカルのプログラムを実行する

パスを ~/.profile に追加してください。さもないと、greetd によって呼び出されたデスクトップ環境がローカルのプログラムを実行できません。Greetd はユーザのホームディレクトリ内の .bashrc.zshrc にアクセスできないので、これらのファイルにパスを指定しても意味がありません。

~/.profile
export PATH="$HOME/.local/bin:$PATH"

参照

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