Skip to content

Suspension via keyboard shortcut "s" instantly wakes the system #2489

Description

@rigobersio

Compositor

Niri

Distribution

Arch Linux

If Other, please specify

No response

Select your Installation Method

DankInstaller

Was this your original Installation method?

Yes

If no, specify

No response

dms doctor -vC


Description

Bug Report: Suspension via keyboard shortcut "s" instantly wakes the system

Description

When using the keyboard shortcut to suspend the device (holding down the s key), the system enters suspend mode correctly, but wakes up immediately without any additional user action. ⚠️

Actual behavior 🚨

  • The shutdown, reboot, logout, and suspend buttons work fine with the mouse: a long-click on the icon shows an interactive loading bar and triggers the action properly.
  • The keyboard shortcuts for shutdown, reboot, and logout also work as expected.
  • Only the suspend shortcut (s) fails: the device enters suspend mode, but because Arch Linux suspends very quickly, the s key remains physically pressed. The system interprets this continuous keypress as a wake-up command and immediately wakes itself.

Probable cause

The key-down event is not released before the kernel completes the suspend process. Since the s key stays pressed, the system registers it as a wake request just after entering suspend mode. This does not happen with the mouse because most GNU/Linux distributions ignore mouse clicks as suspend-canceling input.

Affected system

Tested on Arch Linux, but likely occurs on any distribution with very fast suspend times.

Proposed solution 💡

  • Trigger the shortcut action on key release instead of key hold.
  • Alternatively, ignore any keyboard events that arrive during the suspend/shutdown process.

Reported by: Rigoberto Martínez

Expected Behavior

Expected behavior ✅

The computer should remain in suspend mode until the user manually wakes it (for example, by pressing the power button or a dedicated wake-up key).

Steps to Reproduce

Steps to reproduce

  1. Open DankMaterialShell.
  2. Use the suspend shortcut: press and hold the s key. ⌨️
  3. Notice that the screen turns off briefly (entering suspend), then turns back on by itself with no additional interaction.

Error Messages/Logs

No response

Screenshots/Recordings

Image

Reported by: Rigoberto Martínez :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions