Wayland boots to black screen no cursor, X11 boots to black screen with cursor

Hello I have been experiencing a strange issue after plugging my laptop into an external monitor.
System Information:
Garuda Linux x86_64
LENOVO LNVNB161216
6.8.7-zen1-1-zen
Plasma 6.0.4
AMD Ryzen 7 7730U with Radeon Graphics (16) @ 4.546GHz
AMD ATI Barcelona

What happened:
The strange behavior began when I plugged in my laptop to an external monitor - specifically a projector that used a VGA to hdmi adapter. The main monitor went black but the secondary was still usable luckily.

Since then, the main laptop display has not shown an image except the login screen when trying to log into wayland. I can log in from SDDM, but if I choose wayland I get no splash screen just black without a cursor and have to enter a tty and run killall sddm to get back to the sddm login screen or I have to reboot. If I try to log in to X11 session after this, I get a black screen with a cursor. In the X11 session, I am able to move my mouse to the top left corner and I am able to see the view where it shows all your desktops at the top and you can search for applications just below that. I usually have to reboot at least once and log into x11 to get a full desktop environment again.

What I have tried:
I looked into kwin_wayland logs but I don’t really know what I am looking at and there was nothing particularly obious. I have tried reinstalling kwin_wayland and wayland as well as mesa. None of these worked and the issues persist.

kwin_wayland journalctl: https://pastebin.com/bey65eS0

sddm journalctl: https://pastebin.com/8kJD5VWE

wayland info: https://pastebin.com/f5Sd2j9q

How can you help?:
If you have experienced this before or are aware of a known bug let me know. Where can I look to solve this? I cannot find any great information, searching yields mostly issues due to nvidia drivers, which I do not need nor have.

Thank you.

I am going to go ahead and file a bug report since I am not hearing back from anyone here.

1 Like

I have started getting a similar situation today.

My main monitor is a 21:9 100Hz ultrawide, while the secondary is a 120Hz 4K 16:9 one. Only one of them is enabled at a time.

If I use the 4K 16:9 monitor, I can login through SDDM with X11 and Wayland just fine, but while Wayland is up, I cannot get past SDDM on the 21:9 Monitor ever. Even if I keep only the 21:9 one attached SDDM drops me to a black screen without cursor after login.

Hitting CTRL-ALT-F2 will show a slightly desaturated SDDM again which isn’t interactible.

Logging in with X11 works fine for both monitors.

Thanks for the response. This is still an issue for me - I cannot use wayland at all. It has to do with KDE somewhere because I tried out hyprland and that works fine.

Here is the bug report 485805 – Wayland session black screen no cursor, X11 black screen with cursor until reboot after plugging into external monitor

@Critter2359 for your screenlocker problem in X11 switch your plasma style to either breeze dark or breeze light, but not breeze (follows color scheme)

For your wayland issue: Long shot, but I think your kwinoutputconfig.json might be corrupted.
You can try to delete (better rename) it from the tty before logging in:

cd .config
mv kwinoutputconfig.json _kwinoutputconfig.json

If it doesn’t work you can replace the file again. Afaik you need to do this before logging in or kwin will just restore it.

2 Likes

Amazing. That worked. Can I ask how you came to that conclusion? I was stumped trying to troubleshoot this. Is there documentation for this somewhere or is it just familiarity with KDE?

So somehow plugging in an external monitor corrupted my kwinoutputconfig.json which effected both X11 and wayland? Or are these two separate issues that both just seemed to appear at the same time?

1 Like

@Critter2359 sure I will give you my thought process in a minute.

Regarding the broken kwinoutputconfig.json , did you rename it instead of deleting it? If so could you please post the contents so this can be analyzed so this can prevented in the future.

1 Like

Sure, here is the corrupted file:

1 Like

The reason I thought about it was because you gave very good information but I couldn’t find anything in your logs. That made me think your packages are fine but maybe you have a issue with your config.

Actually I thought your X11 worked fine and the only reason you had issues with X11 was because you killed SDDM. After relogging your X11 worked fine.

So I was looking for a config that only affects Wayland but not X11 and handles the screen config ( I knew this file existed, but didn’t remember its name). So I searched for kwin in .config and played around it with my own system.
It seemed to only affect Wayland but not X11 so it seemed like a possible solution for your problem.

That actually fixed for me as well!

I actually needed to reboot and before logging into any session move the kwinoutputconfig.json. If I was logged in with X11 before it still didn’t let me log in to Wayland, and if logging into Wayland failed before, removing the file also didn’t work.

It’s interesting to me that the broken file shows “2560x1440” being used for both monitors, which is not the native resolution for either of them.
I usually run DP-1 at 3440x1440 and DP-3 at 3840x2560.
Also both of them are supposed to always be 120 Hz refresh, not the 60 Hz listed for DP-1.

Corrupt kwinoutputconfig.json
[
    {
        "data": [
            {
                "autoRotation": "InTabletMode",
                "connectorName": "DP-1",
                "edidHash": "90c8b5c927a9a977c7d9bdcb2d4f1dd9",
                "edidIdentifier": "ACR 1401 1914731074 22 2017 0",
                "highDynamicRange": false,
                "iccProfilePath": "",
                "mode": {
                    "height": 1440,
                    "refreshRate": 59961,
                    "width": 2560
                },
                "overscan": 0,
                "rgbRange": "Automatic",
                "scale": 1,
                "sdrBrightness": 200,
                "sdrGamutWideness": 0,
                "transform": "Normal",
                "vrrPolicy": "Never",
                "wideColorGamut": false
            },
            {
                "autoRotation": "InTabletMode",
                "connectorName": "DP-3",
                "edidHash": "00839ecf945eb90f5fcf8460431831fe",
                "edidIdentifier": "GSM 49312 16843009 1 2019 0",
                "highDynamicRange": true,
                "iccProfilePath": "",
                "mode": {
                    "height": 1440,
                    "refreshRate": 119998,
                    "width": 2560
                },
                "overscan": 0,
                "rgbRange": "Automatic",
                "scale": 1,
                "sdrBrightness": 300,
                "sdrGamutWideness": 1,
                "transform": "Normal",
                "vrrPolicy": "Never",
                "wideColorGamut": true
            }
        ],
        "name": "outputs"
    },
    {
        "data": [
            {
                "lidClosed": false,
                "outputs": [
                    {
                        "enabled": true,
                        "outputIndex": 0,
                        "position": {
                            "x": 0,
                            "y": 0
                        },
                        "priority": 0
                    },
                    {
                        "enabled": false,
                        "outputIndex": 1,
                        "position": {
                            "x": -2560,
                            "y": 0
                        },
                        "priority": -1
                    }
                ]
            },
            {
                "lidClosed": false,
                "outputs": [
                    {
                        "enabled": true,
                        "outputIndex": 0,
                        "position": {
                            "x": 0,
                            "y": 0
                        },
                        "priority": 0
                    }
                ]
            },
            {
                "lidClosed": false,
                "outputs": [
                    {
                        "enabled": true,
                        "outputIndex": 1,
                        "position": {
                            "x": 0,
                            "y": 0
                        },
                        "priority": 0
                    }
                ]
            }
        ],
        "name": "setups"
    }
]