SDDM doesn't open when starting, only empty TTY

I want to use SDDM as a display manager, but when I have it enabled it only starts the TTY with a blinking cursor in the top left.

Here are some logs from: journalctl -xeu display-manager.service --no-pager | wl-copy

jun 11 15:11:06 desktop systemd[1]: Starting Display Manager...
░░ Subject: A start job for unit display-manager.service has begun execution
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit display-manager.service has begun execution.
░░ 
░░ The job identifier is 323.
jun 11 15:11:06 desktop systemd[1]: Started Display Manager.
░░ Subject: A start job for unit display-manager.service has finished successfully
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit display-manager.service has finished successfully.
░░ 
░░ The job identifier is 323.
jun 11 15:11:06 desktop sddm[1467]: Initializing...
jun 11 15:11:06 desktop sddm[1467]: Starting...
jun 11 15:11:06 desktop sddm[1467]: Logind interface found
jun 11 15:11:06 desktop sddm[1467]: Adding new display...
jun 11 15:11:06 desktop sddm[1467]: Loaded empty theme configuration
jun 11 15:11:06 desktop sddm[1467]: Using VT 1
jun 11 15:11:06 desktop sddm[1467]: Display server started.
jun 11 15:11:06 desktop sddm[1467]: Socket server starting...
jun 11 15:11:06 desktop sddm[1467]: Socket server started.
jun 11 15:11:06 desktop sddm[1467]: Loading theme configuration from "/run/current-system/sw/share/sddm/themes/catppuccin-mocha-peach/theme.conf"
jun 11 15:11:06 desktop sddm[1467]: Greeter starting...
jun 11 15:11:06 desktop sddm-helper[1472]: [PAM] Starting...
jun 11 15:11:06 desktop sddm-helper[1472]: [PAM] Authenticating...
jun 11 15:11:06 desktop sddm-helper[1472]: [PAM] returning.
jun 11 15:11:06 desktop sddm-helper[1472]: pam_env(sddm-greeter:session): Expandable variables must be wrapped in {} <$(tty)> - ignoring
jun 11 15:11:06 desktop sddm[1467]: Greeter session started successfully
jun 11 15:11:06 desktop sddm-helper[1472]: [PAM] Closing session
jun 11 15:11:06 desktop sddm-helper[1472]: [PAM] Ended.
jun 11 15:11:06 desktop sddm[1467]: Auth: sddm-helper exited successfully
jun 11 15:11:06 desktop sddm[1467]: Greeter stopped. SDDM::Auth::HELPER_SUCCESS

There is only 1 error: sddm-helper[1472]: pam_env(sddm-greeter:session): Expandable variables must be wrapped in {} <$(tty)> - ignoring.

Other display managers like GDM and Ly work perfectly fine. Any ideas what could be causing this?

Edit: Here is my SDDM configuration:

{
  services.displayManager = {
    sddm = {
      enable = true;
      autoNumlock = true;
      wayland.enable = true;
    };
  };
}

While you are waiting for a better answer, you might try using plasma-login-manager, newly available in 26.05, which is a fork of sddm. I had problems with sddm too (different from yours), and it solved them.

1 Like

Well I tried this one, but my cursor didn’t display, and I couldn’t select which DE to load when starting, so I tried switching back to GDM, and now I can’t even access my TTY :sob:.

Thank god for nixos generations, but now I’m stuck with no UWSM Hyprland lmao.

Edit: I get the same error with GDM:

jun 13 15:08:13 desktop gdm[1423]: Gdm: GdmDisplay: Session never registered, failing
jun 13 15:08:13 desktop gdm[1423]: Gdm: Child process -1679 was already dead.
jun 13 15:08:13 desktop gdm-launch-environment][1708]: pam_env(gdm-launch-environment:session): Expandable variables must be wrapped in {} <$(tty)> - ignoring
jun 13 15:08:14 desktop gdm[1423]: Gdm: GdmDisplay: Session never registered, failing
jun 13 15:08:14 desktop gdm[1423]: Gdm: Child process -1771 was already dead.
jun 13 15:08:14 desktop gdm[1423]: Gdm: GdmDisplay: Session never registered, failing
jun 13 15:08:14 desktop gdm[1423]: Gdm: Child process -1771 was already dead.
jun 13 15:08:14 desktop gdm-launch-environment][1789]: pam_env(gdm-launch-environment:session): Expandable variables must be wrapped in {} <$(tty)> - ignoring
jun 13 15:08:14 desktop gdm[1423]: Gdm: GdmDisplay: Session never registered, failing
jun 13 15:08:14 desktop gdm[1423]: Gdm: Child process -1825 was already dead.
jun 13 15:08:14 desktop gdm[1423]: Gdm: GdmDisplay: Session never registered, failing
jun 13 15:08:14 desktop gdm[1423]: Gdm: Child process -1825 was already dead.
jun 13 15:08:14 desktop gdm-launch-environment][1840]: pam_env(gdm-launch-environment:session): Expandable variables must be wrapped in {} <$(tty)> - ignoring
jun 13 15:08:14 desktop gdm[1423]: Gdm: GdmDisplay: Session never registered, failing
jun 13 15:08:14 desktop gdm[1423]: Gdm: GdmLocalDisplayFactory: maximum number of display failures reached. Giving up.
jun 13 15:08:14 desktop gdm[1423]: Gdm: Child process -1871 was already dead.
jun 13 15:12:39 desktop systemd[1]: Stopping Display Manager...
jun 13 15:12:39 desktop systemd[1]: display-manager.service: Deactivated successfully.
jun 13 15:12:39 desktop systemd[1]: Stopped Display Manager.
jun 13 15:12:39 desktop systemd[1]: display-manager.service: Consumed 91ms CPU time over 4min 26.684s wall clock time, 11M memory peak, 2.7M read from disk.

GDM just freezes my TTY, while SDDM at least lets me access the other ones.

Found the culprit

Edit: Nevermind, it was not this one. It was my own variable:

  environment.sessionVariables = {
    GPG_TTY = "$(tty)";
  };

Can’t remember why I did this :thinking:.