Greetd: Difference between revisions

From Alpine Linux
m (fixed typos and re arranged sentence)
(added user = "greetd" to [default_session] in Text based greeter)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:greetd}}
{{DISPLAYTITLE:greetd}}


[https://git.sr.ht/~kennylevinsen/greetd greetd] is a minimal and flexible login manager daemon that makes no assumptions about what you want to launch.
[https://git.sr.ht/~kennylevinsen/greetd greetd] is a minimal and flexible [[Display_manager|login manager]] daemon that makes no assumptions about what you want to launch. Greetd needs to be combined with a greeter. You can find a list of available greeters: {{pkg|greetd-*}}.  


This article focuses on alpine specific instructions. It is recommended to read the [https://man.sr.ht/~kennylevinsen/greetd/ greetd wiki] first.
== Text based greeter ==


Text based greeter like {{pkg|greetd-agreety}} can log you into a normal terminal session. Make sure that <code>vt</code> is set in:
{{Cat|/etc/greetd/config.toml|<nowiki>[default_session]
command = "agreety --cmd /bin/sh"
user = "greetd"
[terminal]
# The VT to run the greeter on. Can be "next", "current" or a number designating the VT.
vt = 7
</nowiki>}}


== Installation ==
Remember to [[#Activate greetd service|activate greetd service]].


greetd needs to be combined with a greeter. You can find a list of available greeters here: {{pkg|greetd-*}}. This page shows the grpahical greeter gtkgreet which is packaged as {{pkg|greetd-gtkgreet}}. Install the main package and the greeter:
== Graphical greeter - gtkgreet   ==
{{cmd|# apk add {{pkg|greetd}} {{pkg|greetd-gtkgreet}} }}


Install a lightweight wayland compositor to be used with greetd login session.(If using [[Sway]], no need for {{pkg|cage}}).
The following section details the steps for using the graphical greeter '''gtkgreet''' which is packaged as {{pkg|greetd-gtkgreet}}.  
{{cmd|# apk add {{pkg|cage}}}}
 
== Configuration ==
 
Graphical greeters like gtkgreet require either [[seatd]] or [[elogind]].  When you use <code>seatd</code> with a graphical greeter it needs the <code>seatd</code> group:
{{cmd|# adduser greetd seat}}  
 
Depending on whether [[seatd]] or [[elogind]] is used, set <code>rc_need=seatd</code>or <code>rc_need=elogind</code> in the following file:
{{Cat|/etc/conf.d/greetd|<nowiki>rc_need=seatd
</nowiki>}}


If using cage, the config file appears as follows:
# Install the main package and the greeter:{{cmd|# apk add {{pkg|greetd}} {{pkg|greetd-gtkgreet}} }}
{{Cat|/etc/greetd/config.toml|<nowiki>[default_session]
# Install a lightweight wayland compositor to be used with greetd login session.(If using [[Sway]], no need for {{pkg|cage}}).{{cmd|# apk add {{pkg|cage}}}}
# Graphical greeters like gtkgreet require either [[seatd]] or [[elogind]]. If using [[seatd]], follow the additional steps for [[#Using seatd with greetd|using seatd with greetd]].
# Gtkgreet reads desktop sessions from the file {{Path|/etc/greetd/environments}}, So create the file with the list of login environments/desktop sessions. Instead of listing <Code>sway</Code> a [[Sway#Starting_sway|wrapper script]] like <Code>sway-run</Code> can be used.{{Cat|/etc/greetd/environments|<nowiki>sway-run</nowiki>}}
# If using cage, do not skip the '''-s''' option and the config file appears as follows:{{Cat|/etc/greetd/config.toml|<nowiki>[default_session]
command = "cage -s -- gtkgreet"
command = "cage -s -- gtkgreet"
user = "greetd"
# Uncomment below command, if you have only one desktop session.
</nowiki>}}
# command = "cage -s -- gtkgreet --command sway-run"
Instead of {{pkg|cage}}, [[sway]] or any [[wayland]] compositor can be used:
user = "greetd"</nowiki>}}
{{Cat|/etc/greetd/config.toml|<nowiki>[default_session]
# Instead of {{pkg|cage}}, any other wayland compositor like [[sway]] can be used by setting the greetd config file: {{Cat|/etc/greetd/config.toml|<nowiki>[default_session]
command = "sway --config /etc/greetd/sway-config"
command = "sway --config /etc/greetd/sway-config"
user = "greetd"
user = "greetd"
</nowiki>}}
</nowiki>}}
To use sway, create a dedicated sway config that runs the greeter, and terminates when it dies:
# If [[sway]] is used, create a dedicated sway config file that runs the greeter and terminates when it dies: {{cat|/etc/greetd/sway-config|<nowiki>exec "gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit"
{{cat|/etc/greetd/sway-config|<nowiki>exec "gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit"
</nowiki>}}
</nowiki>}}
# Remember to [[#Activate greetd service|activate greetd service]].


Edit gtkgreet list of login environments, which is by default read from {{Path|/etc/greetd/environments}}. The below example shows Sway  [[Sway#Starting_sway|wrapper script]].
== Using seatd with greetd ==


{{Cat|/etc/greetd/environments|<nowiki>sway-run
{{Note|User '''greetd''' also needs [[Wayland#XDG_RUNTIME_DIR|XDG_RUNTIME_DIR]].}}
When [[seatd]] is used, following additional configuration is required.
# For graphical greeters like gtkgreet, the user '''greetd''' needs the <code>seatd</code> group:{{cmd|# adduser greetd seat}} 
# Append <code>rc_need=seatd</code> in the following file:{{Cat|/etc/conf.d/greetd|...
<nowiki>rc_need=seatd
</nowiki>}}
</nowiki>}}


Once you have completed the above configuration, Enable and start greetd:
== Activate greetd service ==
{{cmd|<nowiki># rc-update add greetd
 
Once you have completed the above configuration i.e text or graphical greeter, enable and start greetd:{{cmd|<nowiki># rc-update add greetd
# rc-service greetd start</nowiki>}}
# rc-service greetd start</nowiki>}}


For text based greeters you want to make sure that <code>vt</code> is set in:
== Auto-login ==
{{Cat|/etc/greetd/config.toml|<nowiki>
 
[terminal]
Follow [https://man.sr.ht/~kennylevinsen/greetd/#setting-up-auto-login greetd wiki] for auto-login instructions. No alpine Linux specific changes are required.
# The VT to run the greeter on. Can be "next", "current" or a number
 
# designating the VT.
== See also ==
vt = 7
</nowiki>}}


== See Also ==
* [https://man.sr.ht/~kennylevinsen/greetd/ greetd wiki]
* [https://man.sr.ht/~kennylevinsen/greetd/ greetd wiki]
* [https://wiki.archlinux.org/title/Greetd Arch wiki]
* [https://wiki.archlinux.org/title/Greetd Arch wiki]

Latest revision as of 12:53, 20 March 2025


greetd is a minimal and flexible login manager daemon that makes no assumptions about what you want to launch. Greetd needs to be combined with a greeter. You can find a list of available greeters: greetd-*.

Text based greeter

Text based greeter like greetd-agreety can log you into a normal terminal session. Make sure that vt is set in:

Contents of /etc/greetd/config.toml

[default_session] command = "agreety --cmd /bin/sh" user = "greetd" [terminal] # The VT to run the greeter on. Can be "next", "current" or a number designating the VT. vt = 7

Remember to activate greetd service.

Graphical greeter - gtkgreet

The following section details the steps for using the graphical greeter gtkgreet which is packaged as greetd-gtkgreet.

  1. Install the main package and the greeter:

    # apk add greetd greetd-gtkgreet

  2. Install a lightweight wayland compositor to be used with greetd login session.(If using Sway, no need for cage).

    # apk add cage

  3. Graphical greeters like gtkgreet require either seatd or elogind. If using seatd, follow the additional steps for using seatd with greetd.
  4. Gtkgreet reads desktop sessions from the file /etc/greetd/environments, So create the file with the list of login environments/desktop sessions. Instead of listing sway a wrapper script like sway-run can be used.

    Contents of /etc/greetd/environments

    sway-run
  5. If using cage, do not skip the -s option and the config file appears as follows:

    Contents of /etc/greetd/config.toml

    [default_session] command = "cage -s -- gtkgreet" # Uncomment below command, if you have only one desktop session. # command = "cage -s -- gtkgreet --command sway-run" user = "greetd"
  6. Instead of cage, any other wayland compositor like sway can be used by setting the greetd config file:

    Contents of /etc/greetd/config.toml

    [default_session] command = "sway --config /etc/greetd/sway-config" user = "greetd"
  7. If sway is used, create a dedicated sway config file that runs the greeter and terminates when it dies:

    Contents of /etc/greetd/sway-config

    exec "gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit"
  8. Remember to activate greetd service.

Using seatd with greetd

Note: User greetd also needs XDG_RUNTIME_DIR.

When seatd is used, following additional configuration is required.

  1. For graphical greeters like gtkgreet, the user greetd needs the seatd group:

    # adduser greetd seat

  2. Append rc_need=seatd in the following file:

    Contents of /etc/conf.d/greetd

    ... rc_need=seatd

Activate greetd service

Once you have completed the above configuration i.e text or graphical greeter, enable and start greetd:

# rc-update add greetd # rc-service greetd start

Auto-login

Follow greetd wiki for auto-login instructions. No alpine Linux specific changes are required.

See also