greetd と regreet の使い方チュートリアル

一般的なディスプレイ マネージャー (またはログイン マネージャー) には、LightDM、GDM、Ly などが含まれます。それらのほとんどは C で書かれており、多くの場合、グラフィカル インターフェイスまたはコマンド ライン インターフェイスのみをサポートします。 greed は Rust で書かれており、wayland をサポートし、コマンド ラインとグラフィカル インターフェイス (greeter) の両方をサポートします。

この記事では、greetdregreet を使用して、ラボ環境。

最終的な効果図:

greetd-regreet

「greeted」は数年前から存在しており、2019 年に最初の投稿が行われました。

1commit 2571da3772ff3219af1ccfce169bcaab5603501f
2Author: Kenny Levinsen <[email protected]>
3Date:   Tue Sep 10 00:36:35 2019 +0200
4
5    Initial commit

現在、コンソールとグラフィカル グリーターの両方をサポートしているのはこれだけです。

挨拶もサビで書かれていて、つい最近生まれたもので、読後感はかなり良いです。

この 2 つの組み合わせを体験する前は、主に gdm3 と ly を使用していましたが、それらは味気なく退屈で、Gnome 関連の機能は非常に制限されていました。

早速、操作プロセスを説明します。

1.greeded の手動インストール

ソースコード をダウンロードした後、他の Rust アプリケーションと同様に非常に簡単にインストールできます。

 1# Compile greetd and agreety.
 2cargo build --release
 3
 4# Put things into place
 5sudo cp target/release/{greetd,agreety} /usr/local/bin/
 6sudo cp greetd.service /etc/systemd/system/greetd.service
 7mkdir /etc/greetd
 8cp config.toml /etc/greetd/config.toml
 9
10# Create the greeter user
11sudo useradd -M -G video greeter
12sudo chmod -R go+r /etc/greetd/
13
14# Look in the configuration file `/etc/greetd/config.toml` and edit as appropriate.
15# When done, enable and start greetd
16systemctl enable --now greetd

インストール完了後に確認すると自動的にdisplay-manager.serviceと関連付けられます ly、gdm3 なども同様のロジックです。 これは、Linux システムが開始された後、最終的にグリード サービスが実行され、その後グリードがグリーターを呼び出すことを意味します。

1➜ ls -al /etc/systemd/system/display-manager.service
2lrwxrwxrwx 1 root root 34 Aug 24 15:18 /etc/systemd/system/display-manager.service -> /etc/systemd/system/greetd.service

理由は後述しますが、この時点ではシステムを再起動しないでください。

2. regreet をインストールする

ソースコードをダウンロードした後、直接コンパイルします。

1cargo build --all-features --release

システム用にコマンドをコピーします。

1sudo cp target/release/regreet /usr/bin/regreet

その他の設定を行いたい場合は、プロジェクトの Readme ドキュメントを確認してください (この記事では主な手順のみを紹介します)。

3. 設定ファイル

greetd と regreet の設定ファイルは両方とも次の場所にあります。

 1➜  greetd ls
 2config.toml  regreet.css  regreet.toml
 3➜  greetd pwd
 4/etc/greetd
 5➜  greetd cat config.toml
 6[terminal]
 7# The VT to run the greeter on. Can be "next", "current" or a number
 8# designating the VT.
 9vt = 1
10
11# The default session, also known as the greeter.
12[default_session]
13
14# `agreety` is the bundled agetty/login-lookalike. You can replace `/bin/sh`
15# with whatever you want started, such as `sway`.
16# command = "agreety --cmd /bin/sh"
17command = "labwc -s regreet"
18
19# The user to run the command as. The privileges this user must have depends
20# on the greeter. A graphical greeter may for example require the user to be
21# in the `video` group.
22user = "greeter"
23➜  greetd cat regreet.toml
24# SPDX-FileCopyrightText: 2022 Harish Rajagopal <[email protected]>
25#
26# SPDX-License-Identifier: GPL-3.0-or-later
27
28[background]
29# Path to the background image
30# path = "/usr/share/backgrounds/greeter.jpg"
31path = "/usr/share/backgrounds/guilin.jpg"
32
33# How the background image covers the screen if the aspect ratio doesn't match
34# Available values: "Fill", "Contain", "Cover", "ScaleDown"
35# Refer to: https://docs.gtk.org/gtk4/enum.ContentFit.html
36# NOTE: This is ignored if ReGreet isn't compiled with GTK v4.8 support.
37fit = "Contain"
38
39# The entries defined in this section will be passed to the session as environment variables when it is started
40[env]
41ENV_VARIABLE = "value"
42
43[GTK]
44# Whether to use the dark theme
45application_prefer_dark_theme = true
46
47# Cursor theme name
48cursor_theme_name = "Adwaita"
49
50# Font name and size
51font_name = "Cantarell 16"
52
53# Icon theme name
54#icon_theme_name = "Adwaita"
55icon_theme_name = "Papirus"
56
57# GTK theme name
58#theme_name = "Adwaita"
59theme_name = "Orchis-Green"
60
61[commands]
62# The command used to reboot the system
63reboot = [ "systemctl", "reboot" ]
64
65# The command used to shut down the system
66poweroff = [ "systemctl", "poweroff" ]

config.toml は greeted の設定ファイル、greet.tom は greet の設定ファイルです。 私の構成を参照してください。

設定項目はコメントで非常に明確ですが、説明する価値があるのは「command = "labwc -s respect"」だけです。これは私が理解したものです。 labwc 環境を使用していない場合 (たとえば、sway を使用している場合)、セットアップ方法については、挨拶されたドキュメントを確認してください。

regreet.css テストしてみましたが効果はありませんでした。デフォルトの外観で問題ありません。

読者の中には、ログイン マネージャーとグリッターの違いを理解していない人もいるかもしれません。

gdm3 など、多くのログイン マネージャーとグリーターがバンドルされています。

たとえば、ログイン マネージャー lightDM では、greeter を一緒に使用する必要があります。 上記のログイン マネージャーとグリーターの構成ファイルからも、機能の違いがわかります。 ログイン マネージャーは、システムの起動後にどの VT (tty1 ~ tty7) を使用するか、および後続のプログラムを開始するためにどのコマンドを実行するかを決定します。グリッターは、ホテルのフロント デスク、ウェイターと黄山の絵を思い浮かべます。お出迎えパイン。 本当に理解できない場合は、違いを無視してください。とにかく、これはシステムが Gnome/KDE/Labwc などに入力できる最後のステップです。

### 世界を救う

最後に、ログインマネージャーの設定はやはり危険です。greeted の設定を開始すると、greeter が設定されていない可能性があるため再起動が許可されません。その場合、深く理解していないユーザーは、ログインマネージャーに入力できないため、非常に怒る可能性があります。システム。

ただし、人間は機械ではないため、「グラフィカル インターフェイスにログインできない」という事態が発生すると、設定やその他の操作で間違いが発生しやすくなります。

    1. Ctrl + Alt + F1~F7 を忘れずに押してください。通常、システムには 7 つの tty があります。現在 tty2 を使用していてクラッシュした場合は、Ctr + alt + F1 を押して tty1 に切り替え、ユーザー名を入力してください。現時点では、ターミナル インターフェイスに入ってエラーを修正する方法を見つけることができればいいですね。
    1. 本当に修正できず、もう面倒な作業をしたくない場合は、パニックにならずに、Gnome 環境であると仮定して、元のログイン マネージャーに再インストールしてください。
    1sudo apt reinstall gdm3
    

    これは、外で怪我をしたときに、両親に家に帰って、ゲームをやめてカードを見せびらかすように言うようなものです。

    1. 続行したいのですが、ステップ 1 が機能しません。この状況は本当にイライラします。無限ループでそのインターフェイスでスタックし、再起動しても役に立ちません。

      私も LightDM をいじっていたときにこのようなことに遭遇し、怖くて何もできず、結局、コンピューターは何も操作できず、単なる鉄のレンガのような状態でした。

      実際、現時点では、「別のコンピュータを使用して ssh 経由でリモート ログインするだけ」という保存方法がまだあります。 sshd リモート ログインを有効にしていない場合、それを保存する唯一の方法はファイル システムをブート ディスクにマウントすることであると推定されますが、これにはより時間がかかります (このとき、IP アドレスはルーターを通じてチェックされます) /パケットキャプチャなど)。

つまり、より安定したログイン マネージャーを選択することをお勧めします。結局のところ、自分自身をロックアウトしたい人はいないでしょうが、あまり恐れる必要はありません。一般的に言えば、1 と 2 で救われます。一部のログイン マネージャーにはデバッグ モードもあります。 世の中の心配事が減るように、私の個人的な経験をシェアします。もしかしたら、そうする運命にある人の助けになるかもしれません。

最終更新日: Wednesday, October 11, 2023

このシリーズの投稿:

翻訳: