Closed stefonarch closed 1 year ago
I agree.
BTW, at some point, I should ask you through email how exactly you use lxqt-session
with Wayfire (for now, I'm under X11+LXQt).
how exactly you use
lxqt-session
with Wayfire
I just updated the README and wayfire.ini here: https://github.com/stefonarch/LXQt-Wayland-files/blob/640b18713b93dd21b6d36d2d7d733dc83efe8e78/wayfire/wayfire.ini#L126
I noticed that applications started by wayfire shortcuts are not handled bylxqt-leave --logout
- which isn't a surprise.
Thanks! I'd forgotten that you created a repository for it. Will read it later.
I noticed that applications started by wayfire shortcuts are not handled by lxqt-leave --logout - which isn't a surprise.
pstree
shows what's under lxqt-session. Under Wayfire, only those processes are controlled by LXQt Session. Under LXQt+X11, all user processes are under it.
Forgot to add this:
#0 LXQt::ScreenSaverPrivate::isScreenSaverLocked() (this=0x556838c20920) at /tmp/liblxqt/lxqtscreensaver.cpp:196
#1 0x00007f24f46f5d8c in LXQt::ScreenSaver::lockScreen() (this=0x556838c1fb28) at /tmp/liblxqt/lxqtscreensaver.cpp:253
#2 0x0000556837b77e7e in operator()(bool) const (__closure=0x556838ce1d20, beforeSleep=true)
at /home/stef/git/lxqt/lxqt-session/lxqt-session/src/lockscreenmanager.cpp:102
#3 0x0000556837b7a748 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, LockScreenManager::startup(bool, int)::<lambda(bool)> >::call(struct {...} &, void **) (f=..., arg=0x7fffa4348470) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#4 0x0000556837b7a62d in QtPrivate::Functor<LockScreenManager::startup(bool, int)::<lambda(bool)>, 1>::call<QtPrivate::List<bool>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fffa4348470) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#5 0x0000556837b7a51e in QtPrivate::QFunctorSlotObject<LockScreenManager::startup(bool, int)::<lambda(bool)>, 1, QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x556838ce1d10, r=0x556838c1fb10, a=0x7fffa4348470, ret=0x0)
at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#6 0x00007f24f30bea71 in () at /usr/lib/libQt5Core.so.5
#7 0x0000556837b610cd in LockScreenProvider::aboutToSleep(bool) (this=0x556838c5f710, _t1=true)
at /home/stef/git/lxqt/lxqt-session/build/lxqt-session/lxqt-session_autogen/UVLADIE3JM/moc_lockscreenmanager.cpp:144
#8 0x0000556837b60e68 in LockScreenProvider::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(_o=0x556838c5f710, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffa4348740)
at /home/stef/git/lxqt/lxqt-session/build/lxqt-session/lxqt-session_autogen/UVLADIE3JM/moc_lockscreenmanager.cpp:77
#9 0x00007f24f30bec20 in () at /usr/lib/libQt5Core.so.5
#10 0x00007f24f43afb57 in QDBusInterface::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libQt5DBus.so.5
#11 0x00007f24f43dd45f in () at /usr/lib/libQt5DBus.so.5
#12 0x00007f24f30b1bb0 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#13 0x00007f24f3d78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007f24f308df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#15 0x00007f24f308ea53 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#16 0x00007f24f30d4e88 in () at /usr/lib/libQt5Core.so.5
#17 0x00007f24f3b1682b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#18 0x00007f24f3b6dcc9 in () at /usr/lib/libglib-2.0.so.0
#19 0x00007f24f3b150e2 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#20 0x00007f24f30d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#21 0x00007f24f30866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#22 0x00007f24f3091219 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#23 0x0000556837b6323a in main(int, char**) (argc=1, argv=0x7fffa4348e78) at /home/stef/git/lxqt/lxqt-session/lxqt-session/src/main.cpp:73
(gdb)
In a more general way (maybe we should open a discussion for this) : I see 2 options:
Make the actual lxqt-session
compatible with wayland which would need
swaylock
startlxqtwayland
script which I already have working) eg. wayland_compositor=Hyprland
Clone it into a lxqt-wayland-session
with a lxqt-config-wayland
which would handle things.
isScreenSaverLocked
is disabled now in liblxqt under wayland so it doesn't crash anymore when locking on suspend is enabled on wayland (reverting line 122 of https://github.com/lxqt/lxqt-session/pull/469)
Current Behavior
When the checkbox for screen locking before suspend in
lxqt-config-session
is checked at first suspendlxqt-session
crashes. Logout is greyed out and list of modules running shows none running, but no other signs, so the session itself is still running but the process is dead after resume.Possible Solution
Disable screenlock function when running on wayland. Afaik there is no general method as under X11, so supporting
swayidle before-sleep swaylock
if running under wayland could be an option.Context
lxqt-session is quite useful under wayland, for modules, some settings and autostart
System Information