Situation:
I use dwm as window manager, and use gdm as display manager to login. I set autologin. I also used services.kmscon.enable and boot.plymouth.enable, all works together fine in 24.11.
When I upgrade to 25.05, a lot of the settings conflict with each other and prevent me from login.
Two of my machine (nvidia and amd GPU) also have this problem.
This is the current working workaround config (but not the way I want it to be, services.xserver.displayManager.gdm.autoLogin.delay was not there before, and kmscon have to be disabled):
{ pkgs, lib, ... }:
{
services.xserver.enable = true;
# Field: services.xserver.desktopManager
services.xserver.desktopManager.gnome.enable = true;
services.xserver.desktopManager.xfce.enable = true;
services.xserver.desktopManager.wallpaper.mode = "scale";
services.xserver.desktopManager.runXdgAutostartIfNone = false;
# Field: services.xserver.displayManager
services.xserver.displayManager.gdm.enable = true;
services.xserver.displayManager.gdm.autoLogin.delay = 7; # delay 7 seconds as workaround
services.xserver.displayManager.sessionCommands = ''
export _JAVA_AWT_WM_NONREPARENTING=1
'';
services.xserver.displayManager.session = [
{ manage = "window"; name = "mydwm";
start = ''
dwm &
waitPID=$!
'';
}
];
services.displayManager.defaultSession = "none+mydwm";
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "user";
# Field: services.desktopManager
services.desktopManager.plasma6.enable = true;
# Programs
programs.slock.enable = true;
programs.xss-lock.enable = true;
programs.xss-lock.lockerCommand = "/run/wrappers/bin/slock";
programs.ssh.askPassword = lib.mkForce "${pkgs.seahorse}/libexec/seahorse/ssh-askpass";
services.unclutter-xfixes.enable = true;
services.unclutter-xfixes.timeout = 5;
# KMS related
# services.kmscon.enable = true; # disable this as workaround
boot.plymouth.enable = true;
boot.plymouth.theme = "breeze";
}
Then problems:
services.kmscon.enable = true;prevent the gdm login screen appear, so I have to disable it for it to work in all of my testing.- With
plymouthandkmsconboth disabled, autologin failed with blinking screen of tty, making the text in tty very hard to see. - For above problem 2, it can be solved by:
a) Disable autologin.
b)services.xserver.displayManager.gdm.autoLogin.delay = 1;(delay for 1 second) - With
plymouthenabled, autologin set, and with no autoLogin.delay, or set autoLogin.delay to only 1 second, it successfully login to dwm, but about half a second / a second later, it shows total black screen. In this scenario,ctrl+alt+F1-7have no response.journalctlshows some application log with something likeX connection broken, I think the x server broken here with unknown reason, but I can’t find the error message of it. - With
plymouthenabled, the only workaround for autologin is setservices.xserver.displayManager.gdm.autoLogin.delay = 7;(to delay something longer than 7 seconds), then the system can autologin into dwm fine.
It is far from ideal, just a workaround.
I really don’t know how to debug this. The journalctl did not shows anything special.