I messed around with labwc and icewm yesterday and then my GNOME session always falls back to x11 instead of using wayland, even if I don’t choose “GNOME on Xorg” at login. Tried creating a new user, and the new user can use wayland session without issue, even after copying .config and .cache to the new user’s home and setting the new user’s login shell to xonsh (same as my original user).
@ journalctl -b -u display-manager | cat
Feb 06 22:45:21 absolute systemd[1]: Starting Display Manager...
Feb 06 22:45:21 absolute systemd[1]: Started Display Manager.
Feb 06 22:45:56 absolute gdm-password][3133]: gkr-pam: unable to locate daemon control file
Feb 06 22:45:56 absolute gdm-password][3133]: gkr-pam: stashed password to try later in open session
Feb 06 22:45:56 absolute gdm-password][3133]: pam_unix(gdm-password:session): session opened for user yes(uid=1000) by (uid=0)
Feb 06 22:45:57 absolute gdm-password][3133]: gkr-pam: gnome-keyring-daemon started properly and unlocked keyring
Feb 06 22:46:01 absolute gdm[1799]: Gdm: Child process -1907 was already dead.
Feb 06 22:53:32 absolute gdm[1799]: Gdm: Child process -5558 was already dead.
Feb 06 22:57:04 absolute gdm-password][7541]: gkr-pam: unable to locate daemon control file
Feb 06 22:57:04 absolute gdm-password][7541]: gkr-pam: stashed password to try later in open session
Feb 06 22:57:05 absolute gdm-password][7541]: pam_unix(gdm-password:session): session opened for user yes(uid=1000) by (uid=0)
Feb 06 22:57:05 absolute gdm-password][7541]: gkr-pam: gnome-keyring-daemon started properly and unlocked keyring
Feb 06 22:57:09 absolute gdm[1799]: Gdm: Child process -7135 was already dead.
@ journalctl --user -b -u org.gnome.Shell@wayland | cat
Feb 06 22:45:58 absolute systemd[3158]: GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland).
Feb 06 22:57:06 absolute systemd[3158]: GNOME Shell on Wayland was skipped because of an unmet condition check (ConditionEnvironment=XDG_SESSION_TYPE=wayland).
@ nix-info -m
- system: `"x86_64-linux"`
- host os: `Linux 6.12.12, NixOS, 25.05 (Warbler), 25.05pre-git`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.24.12`
- nixpkgs: `/etc/nix/inputs/nixpkgs`
System Details Report
Report details
- Date generated: 2025-02-07 01:02:27
Hardware Information:
- Hardware Model: Lenovo ThinkPad L13 Yoga Gen 2
- Memory: 16.0 GiB
- Processor: 11th Gen Intel® Core™ i5-1135G7 × 8
- Graphics: Unknown
- Disk Capacity: 512.1 GB
Software Information:
- Firmware Version: R1FET59W (1.33 )
- OS Name: NixOS 25.05 (Warbler)
- OS Build: 25.05pre-git
- OS Type: 64-bit
- GNOME Version: 47
- Windowing System: X11
- Kernel Version: Linux 6.12.12
Just noticed GNOME Settings doesn’t detect my graphic card under my original user. Here’s the System Details Report fetched from the new user:
System Details Report
Report details
- Date generated: 2025-02-07 01:12:28
Hardware Information:
- Hardware Model: Lenovo ThinkPad L13 Yoga Gen 2
- Memory: 16.0 GiB
- Processor: 11th Gen Intel® Core™ i5-1135G7 × 8
- Graphics: Intel® Iris® Xe Graphics (TGL GT2)
- Disk Capacity: 512.1 GB
Software Information:
- Firmware Version: R1FET59W (1.33 )
- OS Name: NixOS 25.05 (Warbler)
- OS Build: 25.05pre-git
- OS Type: 64-bit
- GNOME Version: 47
- Windowing System: Wayland
- Kernel Version: Linux 6.12.12
Could you please post you config?
So first of all a few things to test here:
- Does it work with another displaymanager like ly?
- pleas back up these files before deleting them:
- delete
~/.config/environment.d/10-home-manager.conf
- delete
~/.config/dconf/user
- the do a rebuild
- If that does not work delete them again and past tese files from a new user in there.
- Run this command
nix-store --verify --check-contents --repair
then do a rebuild
This works for me. You’re a life saver 
1 Like
Oh, wait, it seems the fix doesn’t survive another rebuild and reboot 
I tried doing it again, but it doesn’t work this time.
This is the output of nix-store --verify --check-contents --repair
,
reading the Nix store...
checking path existence...
checking link hashes...
checking store hashes...
I wonder if it actually fixed anything 
The good thing is, now GNOME Settings can detect my GPU on my original user. Tried creating a new user again, and reproduced the issue after login to the other user.
Confirmed sddm works. Tried switching back to gdm and setting services.xserver.displayManager.gdm.debug = true
, and here’s the output of journalctl -b -u display-manager
:
So when you create a new user with this one everything works fine?
Yep, I can’t reproduce the problem on a new user.
Have you tried to disable all extensions?
I tried, and it didn’t help 
but can you start gnome from tty with you user with gnome-shell --wayland
Also can you try to change you shell in the config shell = config.programs.xonsh.package;
to something like bash for testing
Yes, I can. Also, as I mentioned, sddm launches gnome wayland without issue, except for unable to lock the screen, which is expected without gdm.
Just tried and it doesn’t make a difference.
So the thing I can think of for you to try is that you create a new user and copy their gnome, mutter, etc configs in yours. Maybe some configs are broken after your installation of other wm’s and de’s.
Another question would be if you have changed anything in your gnome settings like refresh rate, scaling…?
Maybe also try changing these.
I’ve been using 125% scaling for 3 weeks, and falling back to x11 forces it back to 100%. Manually changing it back to 100% didn’t help.
Now I’m planning to use impermanence on my home directory 
When trying to make my home impermanent, I accidentally mounted my home partition on /persist/home
while setting the persist storage location to /persistent
. As a result, I logged in to a brand new home with my original user. But to be weird, I was still kicked back to x11 
So I think there is nothing wrong with you config or Nixos here but rather with some config in you home directory that is causing that problem. Just try copying all the configs from a new user to you old home directory.
I mean, it still falls back to x11 with a brand new home for the original user.
Ok So I searched and found something on the Zorin OS Form. OP has the same issue as you and his problem were certain permissions on tmp and X11 directory. So maybe can you post the output of following command:
ls -la /tmp
Also can you try it with these environment variables disabled:
QT_QPA_PLATFORM = "wayland;xcb";
SDL_VIDEODRIVER = "wayland";