Skip to content

fix persistent logout issue with sddm #964

Description

@nuknes

What would you like to be added?

issue is that the sddm tty handover fails when asked nicely resulting in a black screen with blinking cursor

loginctl terminate-session $XDG_SESSION_ID

loginctl terminate-user $(whoami)

loginctl terminate-user ""

uwsm stop

and (for some users) even hyprctl dispatch exit doesn't work

only the sledgehammer pkill -KILL -u $(whoami) works because it forces the session to terminate from the outside

but there's now

https://github.com/hyprwm/hyprshutdown

a new graceful execution orchestrator for the Hyprland exit process, might finally ensure a clean logout with sddm

interesting forkoff() function in case any remaining stubborn processes still not gracefully shutting down politely we can add a "--post-cmd" flag so the detached hyprshutdown process still brings out the hammer and executes the final bash -c 'pkill -KILL -u $(whoami)'

hyprshutdown isn't available in the AUR yet but you can try it by installing manually and assuming that you have a working hyprland installation with all dependencies (hyprlang, hyprutils, etc.)

now in the AUR, so just

yay -S hyprshutdown-git

or manual install if you prefer

sudo pacman -S --needed git base-devel
git clone https://github.com/hyprwm/hyprshutdown.git
cd hyprshutdown
cmake --no-warn-deprecated ..
make
sudo cp hyprshutdown /usr/local/bin/

then edit ~/.config/caelestia/shell.json

"logout": ["hyprshutdown", "--post-cmd", "bash -c 'pkill -KILL -u $(whoami)'"],

How will it help?

should fix the persistent logout issue with sddm where you logout to a black screen with blinking cursor

this two stage approach, a graceful app termination followed by a guaranteed, hard session kill from a detached process is the most reliable way to force a clean tty handover

if you've tried it and it solves your logout issue please comment

hopefully it works for everyone and when hyprshutdown is finalized and available I'll open a PR to add a dependency and update the example config.json

#936

#816

#711

#303

#250

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions