「Greetd」の版間の差分
(→Greeters: テンプレート:App を使う。) |
(同期) |
||
1行目: | 1行目: | ||
{{Lowercase title}} |
{{Lowercase title}} |
||
[[Category:ディスプレイマネージャ]] |
[[Category:ディスプレイマネージャ]] |
||
− | [[en: |
+ | [[en:greetd]] |
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|ディスプレイマネージャ}} |
{{Related|ディスプレイマネージャ}} |
||
7行目: | 7行目: | ||
{{Related|Sway}} |
{{Related|Sway}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | [https://git.sr.ht/~kennylevinsen/greetd greetd] は、コンソールベースであれグラフィカルであれ、ユーザが何を起動したいのかを仮定しない、軽量で柔軟な |
+ | [https://git.sr.ht/~kennylevinsen/greetd greetd] は、コンソールベースであれグラフィカルであれ、ユーザが何を起動したいのかを仮定しない、軽量で柔軟な[[ディスプレイマネージャ|ログインマネージャ]]デーモンです。コンソールから起動できるスクリプトやプログラムはすべて greetd で起動できるので、[[Wayland#コンポジタ|Wayland コンポジタ]]に特に適しています。[[#Greeter|greeter]] を起動して、他のディスプレイマネージャと同様にユーザセッションを開始することもできます。 |
== インストール == |
== インストール == |
||
− | {{Pkg|greetd}} |
+ | {{Pkg|greetd}} パッケージか {{AUR|greetd-git}} パッケージを[[インストール]]してください。 |
− | デフォルトの設定ファイルは {{ic|/etc/greetd/config.toml}} です。[[PAM]] 固有のオプションは、 |
+ | デフォルトの設定ファイルは {{ic|/etc/greetd/config.toml}} です。[[PAM]] 固有のオプションは、{{ic|/etc/pam.d/greetd}} で設定します。 |
=== Greeter === |
=== Greeter === |
||
− | ユーザーセッションを開始できるようにするには、 |
+ | greetd (自体) には greeter がバンドルされていません。なので、ユーザーセッションを開始できるようにするには、greeter をインストールする必要があります。いくつかの greeter が利用可能です: |
* {{App|greetd-agreety|デフォルト。[[agetty]] に似たテキストベースの greeter。|https://git.sr.ht/~kennylevinsen/greetd|{{Pkg|greetd-agreety}}}} |
* {{App|greetd-agreety|デフォルト。[[agetty]] に似たテキストベースの greeter。|https://git.sr.ht/~kennylevinsen/greetd|{{Pkg|greetd-agreety}}}} |
||
28行目: | 28行目: | ||
* {{App|qtgreet|[[Qt]] の greeter。|https://gitlab.com/marcusbritanicus/QtGreet|{{AUR|greetd-qtgreet}}}} |
* {{App|qtgreet|[[Qt]] の greeter。|https://gitlab.com/marcusbritanicus/QtGreet|{{AUR|greetd-qtgreet}}}} |
||
− | == |
+ | == Greetd を開始する == |
− | + | {{ic|greetd.service}} を[[有効化]]してください。これで、greetd がブート時に開始されます。 |
|
− | + | [[ディスプレイマネージャ#ディスプレイマネージャをロードする]] も参照。 |
|
== Greeter の設定 == |
== Greeter の設定 == |
||
− | greetd |
+ | greetd によって実行される greeter は、{{ic|/etc/greetd/config.toml}} 内の {{ic|default_session}} セクションで {{ic|command}} オプションを使用して設定します。設定に変更が加えられていない場合は、同梱されている {{ic|agreety}} greeter が使用されます。また、[[#agreety]] も参照してください。 |
− | もし何も変更がなければ、含まれている {{ic|agreety}} greeter が使用されます。また、[[#agreety]] も参照してください。 |
||
− | デフォルトでは、greeter は {{ic|greeter}} ユーザーとして実行されます。 |
+ | デフォルトでは、greeter は {{ic|greeter}} ユーザーとして実行されます。設定ファイル内の {{ic|default_session}} セクションで {{ic|user}} オプションを変更すれば、別のユーザとして実行できます。例 (''another_user'' の部分は置き換えてください): |
... |
... |
||
46行目: | 45行目: | ||
... |
... |
||
− | {{ic|/etc/greetd}} ディレクトリの |
+ | また、{{ic|/etc/greetd}} ディレクトリの[[所有権]]も適切に変更してください。 |
=== agreety === |
=== agreety === |
||
− | これがデフォルトの greeter です。 |
+ | これがデフォルトの greeter です。以下のように設定ファイルを変更すれば、agreety が起動されます: |
... |
... |
||
57行目: | 56行目: | ||
... |
... |
||
− | agreety は、ユーザ |
+ | agreety は、ユーザのログイン時に任意のコマンドを実行することができます。例えば、[[Sway]] を起動するには、上の例の {{ic|$SHELL}} を {{ic|sway}} に置き換えてください。 |
=== gtkgreet === |
=== gtkgreet === |
||
− | gtkgreet が動作するには、コンポジターが必要です。完全な |
+ | gtkgreet が動作するには、コンポジターが必要です。完全なエクスペリエンスを得るには、{{ic|wlr-layer-shell-unstable}} をサポートするコンポジターが必要ですが、他のものでも動作します。そのため、{{pkg|sway}} を使うことが推奨されますが、{{pkg|cage}} のようなものを使うことも可能です。cage と sway の両方の例が以下に示されています。 |
− | gtkgreet で起動できるログイン環境を指定するには、 |
+ | gtkgreet で起動できるログイン環境を指定するには、{{ic|/etc/greetd/environments}} にその一覧を記述してください。例: |
− | 例: |
||
sway |
sway |
||
bash |
bash |
||
− | また、gtkgreet |
+ | また、gtkgreet を呼び出す際に {{ic|-c ''mycommand''}} パラメータを使うこともできます (''mycommand'' はログイン成功時に実行したいプログラムに置き換えてください。例えば、{{ic|gtkgreet -c bash}} や {{ic|gtkgreet -c sway}})。以下のコンポジタの例では、必要に応じてそのようにしてください。 |
− | ==== cage |
+ | ==== cage を使う ==== |
− | {{ |
+ | {{Pkg|cage}} を[[インストール]]し、以下のように {{ic|command}} オプションを設定してください: |
... |
... |
||
80行目: | 78行目: | ||
... |
... |
||
− | ==== sway |
+ | ==== sway を使う ==== |
− | {{ |
+ | {{Pkg|sway}} を[[インストール]]してください。[[Sway]] を gtkgreet のコンポジタとして使用する場合、ユーザがログインしたら終了しなければなりません。そのために、特定の設定ファイル (例えば {{ic|/etc/greetd/sway-config}}) を以下の内容で作成する必要があります: |
{{bc| |
{{bc| |
||
− | # `-l` |
+ | # `-l` は layer-shell モードを有効化します。 |
+ | # `swaymsg exit` が gtkgreet の後に実行されることに注意してください。 |
||
exec "gtkgreet -l; swaymsg exit" |
exec "gtkgreet -l; swaymsg exit" |
||
97行目: | 96行目: | ||
}} |
}} |
||
− | 次に、上記の設定ファイルで [[Sway]] を開始するように greetd を設定する必要があります。 |
+ | 次に、上記の設定ファイルで [[Sway]] を開始するように greetd を設定する必要があります。{{ic|command}} オプションを以下のように設定してください: |
... |
... |
||
103行目: | 102行目: | ||
command = "sway --config /etc/greetd/sway-config" |
command = "sway --config /etc/greetd/sway-config" |
||
... |
... |
||
+ | |||
+ | === ReGreet === |
||
+ | |||
+ | gtkgreet と同じように、ReGreet もコンポジタが必要です。例えば、Cage と Sway は両方とも gtkgreet のときのように使用することができます (ただし、''gtkgreet'' コマンドは ''regreet'' に置き換えてください)。Sway をコンポジタとして使用する場合の設定は以下のようになるでしょう: |
||
+ | |||
+ | {{bc| |
||
+ | # `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 は {{ic|/usr/share/xsession}} ディレクトリ (X11 セッション) と {{ic|/usr/share/wayland-sessions}} ディレクトリ (Wayland セッション) から利用可能なセッションを認識します。なので、{{ic|/etc/greetd/environments}} にセッションのリストを記述する必要はありません。 |
||
+ | |||
+ | ReGreet は TOML ファイル {{ic|/etc/greetd/regreet.toml}} で設定することができます。サンプルのファイルは {{ic|/usr/share/doc/greetd-regreet/regreet.sample.toml}} にあり、このファイルには利用可能な全オプションが記述されています。このファイルを {{ic|/etc/greetd/regreet.toml}} にコピーし、好きなように変更してください。必要ない行はコメントアウトしたり削除したりしてください。無効なオプションは全て無視されます。 |
||
=== wlgreet === |
=== wlgreet === |
||
− | wlgreet を開始するには、{{ic|wlr-layer-shell-unstable}} |
+ | wlgreet を開始するには、{{ic|wlr-layer-shell-unstable}} をサポートするコンポジタが必要です。[[#sway を使う]] で説明されているように gtkgreet を Sway でセットアップするときと同じ手順を行ってください。ただし、{{ic|/etc/greetd/sway-config}} ファイルは以下のようにしてください: |
{{bc| |
{{bc| |
||
122行目: | 142行目: | ||
=== tuigreet === |
=== tuigreet === |
||
− | tuigreet は特別な設定を必要 |
+ | tuigreet は特別な設定を必要しないので、以下のように {{ic|command}} オプションを設定するだけで十分です: |
... |
... |
||
129行目: | 149行目: | ||
... |
... |
||
− | {{ic|tuigreet--help}} |
+ | {{ic|tuigreet --help}} を実行すればカスタマイズオプションが表示されます。 |
=== ddlm === |
=== ddlm === |
||
− | ddlm は特別な設定を必要 |
+ | ddlm は特別な設定を必要しないので、以下のように {{ic|command}} オプションを設定するだけで十分です: |
... |
... |
||
142行目: | 162行目: | ||
=== qtgreet === |
=== qtgreet === |
||
− | qtgreet を使用するには、WLR ベースのコンポジタ |
+ | qtgreet を使用するには、WLR ベースのコンポジタ ({{AUR|wayfire}}、{{Pkg|sway}} など) が必要です。 |
− | ==== Wayfire |
+ | ==== Wayfire を使う ==== |
− | {{AUR |
+ | {{AUR|wayfire}} を[[インストール]]し、以下のように {{ic|command}} オプションを設定してください: |
... |
... |
||
153行目: | 173行目: | ||
... |
... |
||
− | 参照される Wayfire 設定ファイルは qtgreet に |
+ | ここで参照されている Wayfire の設定ファイルは qtgreet に同梱されています。 |
+ | == ヒントとテクニック == |
||
− | == 自動ログインを有効にする == |
||
+ | === 自動ログインを有効にする === |
||
− | ユーザーが自動的にログインするようにするには、{{ic|initial_session}} セクションを {{ic|/etc/greetd/config.toml}} で定義する必要があります。 |
||
+ | |||
+ | 特定のユーザに自動的にログインするようにしたい場合は、{{ic|/etc/greetd/config.toml}} 内に {{ic|initial_session}} セクションを定義する必要があります: |
||
... |
... |
||
165行目: | 187行目: | ||
... |
... |
||
− | {{ic|command}} オプションには、任意の実行可能ファイルの名前を |
+ | {{ic|command}} オプションには、任意の実行可能ファイルの名前を指定することができます。上記の例では、ブート時に Sway が {{ic|''myuser''}} ユーザによって開始され、ユーザーがログアウトシた後に ''gtkgreet'' が起動されます。 |
− | ''greetd'' を使用せず、常に自動ログインを有効に |
+ | ''greetd'' を使用せず、常に自動ログインを有効にしておきたい場合は、[https://git.sr.ht/~kennylevinsen/autologin autologin] を参照してください。 |
+ | === ローカルのプログラムを実行する === |
||
− | == See also == |
||
+ | パスを {{ic|~/.profile}} に追加してください。さもないと、greetd によって呼び出されたデスクトップ環境がローカルのプログラムを実行できません。Greetd はユーザのホームディレクトリ内の {{ic|.bashrc}} と {{ic|.zshrc}} にアクセスできないので、これらのファイルにパスを指定しても意味がありません。 |
||
− | * [https://sr.ht/~kennylevinsen/greetd/ greetd project page] |
||
+ | |||
− | * [https://git.sr.ht/~kennylevinsen/greetd/ greetd source code] |
||
+ | {{hc|~/.profile|2= |
||
+ | export PATH="$HOME/.local/bin:$PATH" |
||
+ | }} |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | * [https://sr.ht/~kennylevinsen/greetd/ greetd のプロジェクトページ] |
||
+ | * [https://git.sr.ht/~kennylevinsen/greetd/ greetd のソースコード] |
||
* [https://man.sr.ht/%7Ekennylevinsen/greetd/ greetd wiki] |
* [https://man.sr.ht/%7Ekennylevinsen/greetd/ greetd wiki] |
||
+ | |||
+ | {{TranslationStatus|greetd|2023-10-07|789467}} |
2023年10月7日 (土) 23:32時点における版
関連記事
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。
- dlm — fbdev の greeter。
- ddlm — fbdev の greeter。
dlm
の強化/拡張バージョン。
- gtkgreet — GTK の greeter。
- ReGreet — GTK の greeter。様々なカスタムオプションが利用可能。Wayland 限定。
- wlgreet — Wayland の greeter。
- tuigreet — コンソール UI の greeter。
- qtgreet — Qt の greeter。
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 を起動するには、上の例の $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 を 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 ベースのコンポジタ (wayfireAUR、sway など) が必要です。
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"