lxqt / lxqt-wayland-session

Files needed for the LXQt Wayland Session
https://github.com/lxqt/lxqt/wiki/ConfigWaylandSettings
Other
14 stars 3 forks source link

panel issue (labwc) #26

Open Alphizi opened 2 months ago

Alphizi commented 2 months ago

if monitor turn off, then turn on -> lxqt panel not auto starting. Need command "lxqt-panel" in terminal by hands.

stefonarch commented 2 months ago

How do you turn off the monitor? In Session Settings → Modules do you see the panel running? It can be stopped and started there.

Alphizi commented 2 months ago

How do you turn off the monitor? In Session Settings → Modules do you see the panel running? It can be stopped and started there.

push on physical button on monitor case.

Did I pick the right place to leave bug reports for lxqt wayland + labwc session?

In Session Settings → Modules

Thanks

stefonarch commented 2 months ago

I can't reproduce this in both setups I have.. But somehow it reminds me of https://github.com/lxqt/lxqt-panel/issues/2073

2 questions:

1.In Session Settings → Modules do you see the panel running when the monitor is turned on again? Open it before to see.

  1. Do you use kanshi or it's default configuration?

Did I pick the right place to leave bug reports for lxqt wayland + labwc session?

It's fine, lxqt-panel would be good too. I don't think labwc is involved here, but you could check with other compositors too.

JFLim1 commented 6 days ago

Had similar experience with lxqt-wayland session with labwc and kwin wayland compositor.

When you turn off the monitor after a while and the system auto lock-session. Turn on the monitor again, the lxqt-panel disappeared and the screen colour become garbled/distorted. Had to resort to logout/login or reboot return display monitor to display correctly again.

Is there any simple command or gui to prevent system from auto lock-session when on labwc or kwin wayland compositor session?

Tried "sudo systemctl mask loginctl lock-session" it didn't work.

stefonarch commented 6 days ago

Is there any simple command or gui to prevent system from auto lock-session when on labwc or kwin wayland compositor session?

Session Settings → unset "Lock before suspend/hibernate" Power Management → no "lock " action In KDE's systemsettings is a setting for lockscreen, it would be possible also modifying startlxqtwayland adding --no-lockscreen to the kwin command.

JFLim1 commented 6 days ago

Power Management → no "lock " action

Thank you for guiding.

On Power Management GUI cannot find NO Lock actiion.

image

Green in programming. Where do insert the command for " --no-lockscreen " in startlxqtwayland?

labwc

elif [ "$COMPOSITOR" = "labwc" ]; then
    # Copy default configuration if not existing and set keyboard layout if different from us
    if [ ! -d "$XDG_CONFIG_HOME/labwc" ]; then
       cp -av "$share_dir"/lxqt/wayland/labwc "$XDG_CONFIG_HOME"/  # use default location here
       if echo "$valid_layouts" | grep -q "$trylayout"; then
          echo "XKB_DEFAULT_LAYOUT=$trylayout" >> $XDG_CONFIG_HOME/labwc/environment
       fi
    fi

    # enable cursor on VM (systemd only)
    if type systemd-detect-virt > /dev/null 2>&1 && systemd-detect-virt --quiet; then
        export WLR_NO_HARDWARE_CURSORS=1
        echo "Running on virtualized hardware"
    fi

    exec $COMPOSITOR -C $XDG_CONFIG_HOME/labwc -S lxqt-session

kwin_wayland

elif [ "$COMPOSITOR" = "kwin_wayland" ]; then
    # Style KDE's QML apps like systemsettings
    export QT_QUICK_CONTROLS_STYLE=org.kde.desktop
    export XDG_CURRENT_DESKTOP="LXQt:$COMPOSITOR"
    if echo "$valid_layouts" | grep -q "$trylayout"; then
        kxkbrc=$XDG_CONFIG_HOME/kxkbrc
        layout="LayoutList=$trylayout"
        if [ -f $XDG_CONFIG_HOME/kxkbrc ]; then
            if ! grep -q "LayoutList" "$kxkbrc"; then
                echo $layout >> $XDG_CONFIG_HOME/kxkbrc
            fi
        else
            echo "[Layout]" > $XDG_CONFIG_HOME/kxkbrc
            echo $layout >> $XDG_CONFIG_HOME/kxkbrc
        fi
    fi
    # WARNING: Option '--no-kactivities' can result in crashes with animations and corner actions.
    exec ${COMPOSITOR}_wrapper --exit-with-session lxqt-session --xwayland
stefonarch commented 6 days ago

Here: exec ${COMPOSITOR}_wrapper --exit-with-session --no-lockscreen lxqt-session --xwayland

In the powermanagement lock screen could be triggered as idleness action, in your screenshot it is not enabled.

JFLim1 commented 6 days ago

exec ${COMPOSITOR}_wrapper --exit-with-session --no-lockscreen lxqt-session --xwayland

Thanks. Done will test it out.

In the powermanagement lock screen could be triggered as idleness action, in your screenshot it is not enabled

Does that means in "labwc" wayland session, should not be having system auto lock-session? But from my experience yesterday on "labwc" wayland compositor still encountered the system auto lock-session which resulted in garbled/distorted screen. Will give "labwc" wayland a go later.

Currently on lxqt-desktop session (X11) which run fine with low resource usage but it loose chromium-mpp_v129 vpu hardware acceleration (only available with Wayland enabled).

tsujan commented 6 days ago

This is strange to me because I also use LXQt+kwin_wayland and have no issue — it's almost the same as the LXQt+kwin_x11 session I used before we made LXQt work with Wayland, but it feels lighter and more responsive.

Nowhere in LXQt or KDE's systemsettings I have a screenlocker. I don't use --no-lockscreen either.

I have monitorOffCommand=kscreen-doctor --dpms off in ~/.config/lxqt/power.conf (see https://github.com/lxqt/lxqt/wiki/ConfigWaylandSettings#turning-off-monitor-when-idle-with-kwin) and have enabled idle watcher like this:

idle

It works exactly like it did in X11, without any problem.

Also, the graphic settings may play a role here. I've always had Intel+modesettings.

JFLim1 commented 6 days ago

Here: exec ${COMPOSITOR}_wrapper --exit-with-session --no-lockscreen lxqt-session --xwayland

@stefonarch, Kwin_Wayland -- Apparently where "--no-lockscreen" is inserted it made a difference. With "--on-lockscreen" insert as above, still have the system auto "lock-screen" issue.

With "--no-lockscreen" inserted after lxqt-session like below, no more auto lock-session anymore with more 20 minutes idle or no activities.

exec ${COMPOSITOR}_wrapper --exit-with-session lxqt-session --no-lockscreen --xwayland

This is strange to me because I also use LXQt+kwin_wayland and have no issue — it's almost the same as the LXQt+kwin_x11 session I used before we made LXQt work with Wayland, but it feels lighter and more responsive.

@tsujan, I am on Arm64 device (Orange Pi 5 Plus - RK3588 SOC) not sure whether it made a difference.

Next is to test labwc wayland session whether it still have the auto lock-session issue and garble display after the auto lock-session kicks it and at time looses the "lxqt-panel" too.

tsujan commented 6 days ago

I am on Arm64 device ... not sure whether it made a difference.

I've received reports (in my own repositories) that showed it could make strange differences. I have no idea why.

JFLim1 commented 6 days ago

Hi @tsujan and @stefonarch,

On lxqt-kwin-wayland, I can trigger the loss of "lxqt-panel" by turn-off the Monitor and turn-on the Monitor again. The lxqt-panel will disappear and also the background wallpaper. image disappear.

On terminal: lxqt-panel will restart the lxqt-panel.

tsujan commented 6 days ago

When you say it disappears, do you mean just visually or programmatically? If its process stops, then it should have crashed, and we need a backtrace. The same for pcmanfm-qt (which draws the desktop).

I think your issue happens at a more basic level than that of LXQt. My guess is that it's about Wayland.

tsujan commented 6 days ago

if monitor turn off, then turn on -> lxqt panel not auto starting. Need command "lxqt-panel" in terminal by hands.

@Alphizi lxqt-panel doesn't need to auto-start after switching the monitor on and off; it should just be there. If it has crashed, please attach a backtrace.

tsujan commented 6 days ago

@JFLim1, @Alphizi

It might also be helpful if you tell which versions of Qt, labwc and KWin you have. But backtraces are needed.

@Alphizi, do you have arm64, like @JFLim1?

JFLim1 commented 5 days ago

When you say it disappears, do you mean just visually or programmatically? If its process stops, then it should have crashed,

When I refer, lxqt-panel disappears in this case I suppose it crashes. As it can be restarted with the command "lxqt-panel". Do take note the background wallpaper also disappeared just black background without image. It is similar to a Plasma-Shell crash.

I think your issue happens at a more basic level than that of LXQt. My guess is that it's about Wayland

Yes, the turn-off monitor crashes the lxqt-panel is when on lxqt-wayland session. So far no issue with lxqt-desktop session (X11).

It might also be helpful if you tell which versions of Qt, labwc and KWin you have.

QT:6.8.0, from archlinuxarm.org labwc: 0.8.1-1 from AUR repo kwin: 6.2.3-1 from archlinuxarm.og

But backtraces are needed.

Need guidance and specific instructions and command on how to provide backtraces. Greenhorn on this.

Thank you.

tsujan commented 5 days ago

Need guidance and specific instructions and command on how to provide backtraces.

Check if there's a recent dump file for lxqt-panel inside /var/lib/systemd/coredump. If there is, open a terminal and do

coredumpctl gdb lxqt-panel <Say "no" to prompt if any> where <copy what comes after where and paste it here> q

I'm afraid that Archlinux Arm may have a compiler problem (see https://github.com/tsujan/Kvantum/discussions/999 — they circumvented the issue by using clang). I'm not sure whether your Wayland problem is related to it, but it was worth mentioning.

JFLim1 commented 4 days ago

Check if there's a recent dump file for lxqt-panel inside /var/lib/systemd/coredump. If there is, open a terminal and do

There is only one file dated 23 Nov 2024 in /var/lib/systemd/coredump/:

core.lxqt-config-ses.1000.27b03edf918e4ebebfa0d3b458e25120.1305.1732336562000000.zst

[jfl@alarm ~]$ coredumpctl gdb lxqt-panel
No match found.
[jfl@alarm ~]$ 

No match found.

Currently on lxqt-labwc-wayland session. So tried to trigger the "lxqt-panel" crash by turn-off monitor and turn-on again.

This pic is before turn-off monitor: image

After turn-off and turn-on monitor. The "lxqt-panel" disappeared. image

Unfortunately there is no new coredump files generated.

JFLim1 commented 4 days ago

Hi @tsujan,

FYI, On archlinuxarm-Gnome/KDE Plasma I do not have the "Turn-Off" monitor issue crashing Plasma-Shell or Gnome-Shell in Wayland.

tsujan commented 4 days ago

If there's no coredump, then there's no crash. For some reason, the panel exits normally when you turn off the monitor under Wayland.

Could you please check your log (journalctl -b --no-pager) to see if the following string is in it after the panel disappears?

Workaround Qt 5 bug #40681: delete panel
tsujan commented 4 days ago

Let me explain my theory:

There's a workaround for an old Qt bug in the codes of lxqt-panel and pcmanfm-qt. It deletes and recreates panel/desktop when a screen is destroyed.

Now, that workaround is for X11 — it was made when Wayland wasn't usable — while the codes apply it without checking whether the app is running under X11 or Wayland. So, I'm going to add that check to the codes of pcmanfm-qt and lxqt-panel after doing some tests with an external monitor.

That being said, I don't know why the screen should be destroyed when you turn off the monitor; it doesn't seem to happen here. Perhaps it's specific to arm.

JFLim1 commented 4 days ago

Could you please check your log (journalctl -b --no-pager) to see if the following string is in it after the panel disappears?

Workaround Qt 5 bug #40681: delete panel

Currently on lxqt-kwin-wayland session.

No. After turn-off monitor and lxqt-panel crash,

"journalctl -b --no-pager" does NOT return "Workaround Qt 5 bug #40681: delete panel"

That being said, I don't know why the screen should be destroyed when you turn off the monitor; it doesn't seem to happen here. Perhaps it's specific to arm.

This time around turn-off monitor just resulted in lxqt-panel crash but background wallpaper is still intact. But I have change "Widget Style to Qt Style = Breeze from Fusion and LXQTt-Theme to Kwantum from Dark. Not sure whether this make a difference to "Background Wallpaper" not being distroyed/loss.

So, I'm going to add that check to the codes of pcmanfm-qt and lxqt-panel after doing some tests with an external monitor.

Thanks.

tsujan commented 4 days ago

Thanks for your reply! It showed that my theory was wrong. I also checked the codes and saw that the above-mentioned workaround wasn't called on Wayland at all.

No. After turn-off monitor and lxqt-panel crash

As I explained above, that it not a crash :) If it was, you'd see a coredump. For some reason unknown to me, your panel exits normally after you turn off the monitor.

tsujan commented 4 days ago

@JFLim1 I made https://github.com/lxqt/lxqt-panel/pull/2181 for another reason. If fixes an issue that has a small resemblance to what you've described. It'll be in the next point release of lxqt-panel soon.

However, I can't promise that it'll fix your problem, because I still don't have the slightest idea about its cause. That fact that we can't reproduce it shows that there's something different about your system (which may not be wrong necessarily).

JFLim1 commented 3 days ago

I made lxqt/lxqt-panel#2181 for another reason.

@tsujan Just wait for archlinuxarm.org update? Is there a prebuilt new lxqt-panel for archlinuxarm for download to test?

tsujan commented 3 days ago

Sorry, I don't know how archlinuxarm works. And we don't make any binary here.

JFLim1 commented 3 days ago

Sorry, I don't know how archlinuxarm works. And we don't make any binary here.

Thanks for taking the time to assist. Will upgrade when it is available on archlinuxarm repo.