Skip to content

Lock screen: add Switch User / New Session to hand off to greetd #1612

@bzbetty

Description

@bzbetty

Feature Request

Add the ability to switch users or start a new session from the DMS lock screen, by handing off to the greetd greeter VT.

Use Cases

  1. Switch User from lock screen — When the screen is locked, a "Switch User" button (similar to the one already on the greetd greeter) would switch to the greetd VT, allowing a different user to log in while the current session stays locked in the background. This matches the behavior of GDM/GNOME where "Switch User" on the lock screen takes you to the GDM greeter.

  2. Start a new session for the same user — From the greetd greeter (reached via the lock screen), the same user could authenticate again and launch a new session on a separate VT. greetd already supports this — it just needs to be reachable from the lock screen.

Both use cases share the same mechanism: the lock screen needs a way to activate the greetd VT (e.g. via chvt or loginctl activate).

Current Behavior

  • The lock screen power menu (LockPowerMenu.qml) only offers: logout, suspend, hibernate, reboot, power off
  • "Switch User" only exists on the greetd greeter (GreeterContent.qml), which is only shown at boot/logout
  • There is no way to reach the greetd greeter from a locked session

Proposed Behavior

  • Add a "Switch User" or "New Session" action to the lock screen (either in the power menu or as a standalone button, like the greeter's existing Switch User chip)
  • When activated, switch to the greetd VT so the greeter is presented
  • The current user's session remains locked in the background
  • The greeter allows logging in as any user (including the same user for a new session)

Implementation Notes

  • The lock screen could call chvt to switch to greetd's VT, or use loginctl activate to switch seats
  • greetd already supports multi-session — no changes needed on the greetd side
  • The powerMenuActions setting could be extended to include a "switchuser" action

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions