Jump to content

Systemd/logind: Difference between revisions

From NixOS Wiki
imported>SidharthArya
m Visibility of Quote marks
Ardenet (talk | contribs)
Marked this version for translation
Tags: Mobile edit Mobile web edit
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{breadcrumb|Systemd}}
<translate>
<!--T:1-->
<code>logind</code> is systemd’s login manager.
<code>logind</code> is systemd’s login manager.


It’s main manual page is <code>systemd-logind.service(8)</code>. Its configuration options are described in <code>logind.conf(5)</code>.
<!--T:2-->
Its main manual page is <code>systemd-logind.service(8)</code>. Its configuration options are described in <code>logind.conf(5)</code>.


== Handling of power keys == <!--T:3-->


== Handling of power keys ==
<!--T:4-->
<code>logind</code> handles power and standby hardware switches. The Arch wiki has a [https://wiki.archlinux.org/index.php/Power_management#ACPI_events good overview of which ACPI events are handled].


<code>logind</code> handles power and standby hardware switches. The Arch wiki has a [https://wiki.archlinux.org/index.php/Power_management#ACPI_events good overview of which ACPI events are handled].
=== Don’t shutdown on power button press === <!--T:5-->
 
<!--T:6-->
On a laptop, you often don’t want an accidental short press of the power button to shut down your system, but instead to <code>suspend</code> or <code>hibernate</code>. You can add the following snippet to your <code>logind</code> config:
</translate>


=== Don’t shutdown on power button press ===
<syntaxhighlight lang="nix">
services.logind.powerKey = "suspend";
</syntaxhighlight>


When you use a laptop, often you don’t want an accidental short press of the power button to shut down your system. You can add the following snippet to your <code>logind</code> config:
<translate>
<!--T:14-->
If you want to ignore short presses of the power button entirely, you can use the following snippet instead:
</translate>


  <nowiki>services.logind.extraConfig = ''
<syntaxhighlight lang="nix">
    # don’t shutdown when power button is short-pressed
services.logind.powerKey = "ignore";
    HandlePowerKey=ignore
</syntaxhighlight>
  '';</nowiki>


<translate>
<!--T:8-->
Long-pressing your power button (5 seconds or longer) to do a hard reset is handled by your machine’s BIOS/EFI and thus still possible.
Long-pressing your power button (5 seconds or longer) to do a hard reset is handled by your machine’s BIOS/EFI and thus still possible.


=== Ignore hardware keys when using <code>systemd-inhibit</code> ===
<!--T:15-->
Similar to the power key, you can ignore the reboot, suspend and hibernate keys like this:
</translate>


<syntaxhighlight lang="nixos">
services.logind.rebootKey = "ignore";
services.logind.suspendKey = "ignore";
services.logind.hibernateKey = "ignore";
</syntaxhighlight>
<translate>
<!--T:16-->
Or ignore the action of closing/opening the lid on laptops like this:
</translate>
<syntaxhighlight lang="nixos">
services.logind.lidSwitch = "ignore";
</syntaxhighlight>
<translate>
=== Ignore hardware keys when using <code>systemd-inhibit</code> === <!--T:9-->
<!--T:10-->
<code>systemd-inhibit</code> allows you to put a lock on e.g. shutdown or sleep that is in place as long the given process is running. By default, the hardware key actions configured in <code>logind</code> override such inhibits.
<code>systemd-inhibit</code> allows you to put a lock on e.g. shutdown or sleep that is in place as long the given process is running. By default, the hardware key actions configured in <code>logind</code> override such inhibits.


<!--T:11-->
Say you want your laptop to stay awake when closing the lid in some circumstances, for example if you want to listen to music. If you start your lock screen with an inhibit on the lid switch
Say you want your laptop to stay awake when closing the lid in some circumstances, for example if you want to listen to music. If you start your lock screen with an inhibit on the lid switch


  systemd-inhibit --what=handle-lid-switch lock-screen-tool
<!--T:17-->
<code>systemd-inhibit --what=handle-lid-switch lock-screen-tool</code>
 
<!--T:12-->
<code>logind</code> still overrides that user decision. For it to work, you need to tell logind to ignore the lid switch in your system config:
</translate>


<code>logind</code> logind still overrides that user decision. For it to work, you need to tell logind to ignore the lid switch in your system config:
<syntaxhighlight lang="nix">
services.logind.extraConfig = ''
  # want to be able to listen to music while laptop closed
  LidSwitchIgnoreInhibited=no
'';
</syntaxhighlight>


  <nowiki>services.logind.extraConfig = ''
<translate>
    # want to be able to listen to music while laptop closed
<!--T:18-->
    LidSwitchIgnoreInhibited=no
[[Category:Applications]]
  '';</nowiki>
[[Category:systemd]]
</translate>

Latest revision as of 21:45, 7 October 2025

←︎
Back to Systemd

logind is systemd’s login manager.

Its main manual page is systemd-logind.service(8). Its configuration options are described in logind.conf(5).

Handling of power keys

logind handles power and standby hardware switches. The Arch wiki has a good overview of which ACPI events are handled.

Don’t shutdown on power button press

On a laptop, you often don’t want an accidental short press of the power button to shut down your system, but instead to suspend or hibernate. You can add the following snippet to your logind config:

services.logind.powerKey = "suspend";

If you want to ignore short presses of the power button entirely, you can use the following snippet instead:

services.logind.powerKey = "ignore";

Long-pressing your power button (5 seconds or longer) to do a hard reset is handled by your machine’s BIOS/EFI and thus still possible.

Similar to the power key, you can ignore the reboot, suspend and hibernate keys like this:

services.logind.rebootKey = "ignore";
services.logind.suspendKey = "ignore";
services.logind.hibernateKey = "ignore";

Or ignore the action of closing/opening the lid on laptops like this:

services.logind.lidSwitch = "ignore";


Ignore hardware keys when using systemd-inhibit

systemd-inhibit allows you to put a lock on e.g. shutdown or sleep that is in place as long the given process is running. By default, the hardware key actions configured in logind override such inhibits.

Say you want your laptop to stay awake when closing the lid in some circumstances, for example if you want to listen to music. If you start your lock screen with an inhibit on the lid switch

systemd-inhibit --what=handle-lid-switch lock-screen-tool

logind still overrides that user decision. For it to work, you need to tell logind to ignore the lid switch in your system config:

services.logind.extraConfig = ''
  # want to be able to listen to music while laptop closed
  LidSwitchIgnoreInhibited=no
'';