Elogind: Difference between revisions
(mention PAM requirement for enviroment to work) |
Prabuanand (talk | contribs) (rephrased sentence and moved some content to Backlight related to Brightnessctl) |
||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[https://github.com/elogind/elogind '''elogind'''] is | [https://github.com/elogind/elogind '''elogind'''] is extracted out of "logind" - systemd login manager to be a standalone daemon and provides [[Seat manager]] support by setting up necessary permissions for the desktop environment or window manager and handles poweroff, reboot, suspend and hibernate via '''loginctl''' commands. | ||
== Installation == | |||
{{Cmd|# apk add {{Pkg|elogind}} | |||
<nowiki>#</nowiki> rc-update add elogind | |||
<nowiki>#</nowiki> rc-service elogind start}} | |||
Polkit is used for authentication. Without it some things may not function. You need to install and configure [[D-Bus#Installation|D-Bus]] to use polkit. | |||
{{Cmd|# apk add {{Pkg|polkit-elogind}} | |||
<nowiki>#</nowiki> rc-update add polkit | |||
<nowiki>#</nowiki> rc-service polkit start}} | |||
Set up a [[PAM]] login. | |||
== Hibernating == | |||
For {{Cmd|# loginctl hibernate}} to work, you must have a swap partition. Check {{Cmd|# lsblk}} for a partition with the mountpoint [SWAP]. | |||
<pre> | |||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | |||
nvme0n1 259:0 0 953.9G 0 disk | |||
├─nvme0n1p1 259:1 0 200M 0 part /boot | |||
├─nvme0n1p2 259:2 0 100G 0 part / | |||
├─nvme0n1p3 259:3 0 805G 0 part /home | |||
└─nvme0n1p4 259:4 0 48.7G 0 part [SWAP] | |||
</pre> | |||
Remember also to add a kernel parameter to resume, ie in {{Path|/etc/default/grub}} : | |||
{{ | {{Cat|/etc/default/grub|<nowiki>... | ||
GRUB_CMDLINE_LINUX_DEFAULT="modules=sd-mod,usb-storage,ext4,nvme quiet rootfstype=ext4 resume=/dev/nvme0n1p4" | |||
</nowiki>}} | |||
= | Note the "resume=" flag with the same partition that was marked as [SWAP]. | ||
= | The resume process can be speed up reducing the size of the hibernation images. See the documentation for [https://docs.kernel.org/admin-guide/pm/sleep-states.html?highlight=image_size#basic-sysfs-interfaces-for-system-suspend-and-hibernation image_size] in the kernel docs for the details, but writing 0 to {{Path|/sys/power/image_size}} should make the images as small as possible. | ||
== Configuration == | |||
{{ | Edit the systemwide config file {{Path|/etc/elogind/logind.conf}} to configure handling of power events, such as suspending the computer when power button is pressed: | ||
= | {{cat|/etc/elogind/logind.conf|... | ||
[Login] | |||
HandlePowerKey{{=}}suspend | |||
...}} | |||
If using a Window Manager or Desktop Environment, such as [[Sway]], the user must ensure that login session is correctly configured. When correctly configured, the <code>loginctl</code> command should output the following: | If using a Window Manager or Desktop Environment, such as [[Sway]], the user must ensure that login session is correctly configured. When correctly configured, the <code>loginctl</code> command should output the following: | ||
Line 35: | Line 60: | ||
If the output is <code>No session available.</code>, such as in the case of launching Sway from tty, suspend and many other functionality will not work. The user then must configure a display manager such as {{Pkg|greetd}}, [[SDDM]] or {{Pkg|lightdm|LightDM}}. | If the output is <code>No session available.</code>, such as in the case of launching Sway from tty, suspend and many other functionality will not work. The user then must configure a display manager such as {{Pkg|greetd}}, [[SDDM]] or {{Pkg|lightdm|LightDM}}. | ||
Since <Code>loginctl</Code> requires privilege escalation, allow either the user to be part of wheel group or configure doas to allow running it as an unprivileged user. | |||
Option1: | |||
# optionally, allow $USER root access with password | |||
adduser $USER wheel | |||
Option2: | |||
[[Setting_up_a_new_user#doas|Doas]] is used to grant permissions for suspend-to-RAM. In the doas config file {{Path|/etc/doas.conf}}, set | |||
permit nopass $USER as root cmd /bin/loginctl | |||
After setting the above, suspend-to-RAM can be triggered by running {{Cmd|$ /bin/loginctl suspend}} | |||
== See also == | == See also == | ||
* [https://wiki.gentoo.org/wiki/Elogind elogind - Gentoo Wiki] | * [https://wiki.gentoo.org/wiki/Elogind elogind - Gentoo Wiki] | ||
* [https://wiki.gentoo.org/wiki/Polkit polkit - Gentoo Wiki] | |||
* [https://wiki.archlinux.org/title/Polkit polkit - ArchWiki] | |||
[[Category:Desktop]] | [[Category:Desktop]] | ||
[[Category:Seat_manager]] |
Latest revision as of 05:31, 25 February 2025
elogind is extracted out of "logind" - systemd login manager to be a standalone daemon and provides Seat manager support by setting up necessary permissions for the desktop environment or window manager and handles poweroff, reboot, suspend and hibernate via loginctl commands.
Installation
# apk add elogind # rc-update add elogind # rc-service elogind start
Polkit is used for authentication. Without it some things may not function. You need to install and configure D-Bus to use polkit.
# apk add polkit-elogind # rc-update add polkit # rc-service polkit start
Set up a PAM login.
Hibernating
For
# loginctl hibernate
to work, you must have a swap partition. Check
# lsblk
for a partition with the mountpoint [SWAP].
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 953.9G 0 disk ├─nvme0n1p1 259:1 0 200M 0 part /boot ├─nvme0n1p2 259:2 0 100G 0 part / ├─nvme0n1p3 259:3 0 805G 0 part /home └─nvme0n1p4 259:4 0 48.7G 0 part [SWAP]
Remember also to add a kernel parameter to resume, ie in /etc/default/grub :
Contents of /etc/default/grub
Note the "resume=" flag with the same partition that was marked as [SWAP].
The resume process can be speed up reducing the size of the hibernation images. See the documentation for image_size in the kernel docs for the details, but writing 0 to /sys/power/image_size should make the images as small as possible.
Configuration
Edit the systemwide config file /etc/elogind/logind.conf to configure handling of power events, such as suspending the computer when power button is pressed:
Contents of /etc/elogind/logind.conf
If using a Window Manager or Desktop Environment, such as Sway, the user must ensure that login session is correctly configured. When correctly configured, the loginctl
command should output the following:
~$ loginctl SESSION UID USER SEAT TTY c1 105 sddm seat0 c2 1000 User seat0 tty8 2 sessions listed.
If the output is No session available.
, such as in the case of launching Sway from tty, suspend and many other functionality will not work. The user then must configure a display manager such as greetd, SDDM or lightdm.
Since loginctl
requires privilege escalation, allow either the user to be part of wheel group or configure doas to allow running it as an unprivileged user.
Option1:
# optionally, allow $USER root access with password adduser $USER wheel
Option2:
Doas is used to grant permissions for suspend-to-RAM. In the doas config file /etc/doas.conf, set
permit nopass $USER as root cmd /bin/loginctl
After setting the above, suspend-to-RAM can be triggered by running
$ /bin/loginctl suspend