From a wayland plasma session the systemsettings5 application crashes due to a null pointer exception when clicking on the "Input Devices" -> Touchpad page. Looking through the plasma-desktop source (kcms/touchpad/src/touchpadbackend.cpp) there is a comment stating "There will be multiple backends later". Unfortunately, when running within wayland TouchpadBackend::implementation returns a null pointer which is dereferenced by systemsettings5, causing the seg fault. Note: the touchpad settings works correctly when running from an X11 session.
Can you provide the crash trace?
built from git sources plasma-desktop: bdf2bf8f0... systemsettings: fa9dd8f4... Thread 1 "systemsettings5" received signal SIGSEGV, Segmentation fault. 0x00007fffd15e6b91 in TouchpadConfig::TouchpadConfig (this=0xaba9e0, parent=0xa9b4b0, args=...) at /home/paul/src/plasma-desktop/kcms/touchpad/src/kcm/touchpadconfig.cpp:185 (gdb) bt #0 0x00007fffd15e6b91 in TouchpadConfig::TouchpadConfig (this=0xaba9e0, parent=0xa9b4b0, args=...) at /home/paul/src/plasma-desktop/kcms/touchpad/src/kcm/touchpadconfig.cpp:185 #1 0x00007fffd15e2acb in KPluginFactory::createInstance<TouchpadConfig, QWidget> (parentWidget=0x0, parent=0xa9b4b0, args=...) at /usr/include/KF5/KCoreAddons/kpluginfactory.h:477 #2 0x00007ffff36278c8 in KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&) () from /usr/lib/libKF5CoreAddons.so.5 #3 0x00007ffff797d42a in KCModuleLoader::loadModule(KCModuleInfo const&, KCModuleLoader::ErrorReporting, QWidget*, QStringList const&) () from /usr/lib/libKF5KCMUtils.so.5 #4 0x00007ffff798612f in ?? () from /usr/lib/libKF5KCMUtils.so.5 #5 0x00007ffff7986d25 in KCModuleProxy::realModule() const () from /usr/lib/libKF5KCMUtils.so.5 #6 0x00007ffff7987303 in KCModuleProxy::showEvent(QShowEvent*) () from /usr/lib/libKF5KCMUtils.so.5 #7 0x00007ffff4da5298 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5 #8 0x00007ffff4d607bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #9 0x00007ffff4d6595f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #10 0x00007ffff2f57280 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #11 0x00007ffff4da1fb8 in QWidgetPrivate::show_helper() () from /usr/lib/libQt5Widgets.so.5 #12 0x00007ffff4da1ef7 in QWidgetPrivate::showChildren(bool) () from /usr/lib/libQt5Widgets.so.5 #13 0x00007ffff4da1f8f in QWidgetPrivate::show_helper() () from /usr/lib/libQt5Widgets.so.5 #14 0x00007ffff4da4ce5 in QWidget::setVisible(bool) () from /usr/lib/libQt5Widgets.so.5 #15 0x00007ffff4da1f08 in QWidgetPrivate::showChildren(bool) () from /usr/lib/libQt5Widgets.so.5 #16 0x00007ffff4da1f8f in QWidgetPrivate::show_helper() () from /usr/lib/libQt5Widgets.so.5 #17 0x00007ffff4da4ce5 in QWidget::setVisible(bool) () from /usr/lib/libQt5Widgets.so.5 #18 0x00007ffff4d86205 in QStackedLayout::setCurrentIndex(int) () from /usr/lib/libQt5Widgets.so.5 #19 0x00007ffff4d86414 in QStackedLayout::setCurrentWidget(QWidget*) () from /usr/lib/libQt5Widgets.so.5 #20 0x00007ffff4f012a1 in QStackedWidget::setCurrentWidget(QWidget*) () from /usr/lib/libQt5Widgets.so.5 #21 0x00007ffff5585104 in ?? () from /usr/lib/libKF5WidgetsAddons.so.5 #22 0x00007ffff5585db1 in ?? () from /usr/lib/libKF5WidgetsAddons.so.5 #23 0x00007ffff2f84679 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #24 0x00007ffff2f06c87 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/libQt5Core.so.5 #25 0x00007ffff2f0b37c in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/libQt5Core.so.5 #26 0x00007ffff2f0ed9c in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/libQt5Core.so.5 #27 0x00007ffff4fde051 in QListView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/libQt5Widgets.so.5 #28 0x00007ffff4fc0dd0 in QAbstractItemView::mousePressEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5 #29 0x00007ffff4da5aff in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5 #30 0x00007ffff4ea173e in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5 #31 0x00007ffff4fc7153 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQt5Widgets.so.5 #32 0x00007ffff2f56fe1 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #33 0x00007ffff4d60795 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #34 0x00007ffff4d66727 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #35 0x00007ffff2f57280 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #36 0x00007ffff4d64ee5 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQt5Widgets.so.5 #37 0x00007ffff4dbf2c3 in ?? () from /usr/lib/libQt5Widgets.so.5 #38 0x00007ffff4dc1793 in ?? () from /usr/lib/libQt5Widgets.so.5 #39 0x00007ffff4d607bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #40 0x00007ffff4d6595f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #41 0x00007ffff2f57280 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #42 0x00007ffff4584693 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5 #43 0x00007ffff4585ea5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5 #44 0x00007ffff456318b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5 #45 0x00007fffe5f984d0 in ?? () from /usr/lib/libQt5WaylandClient.so.5 #46 0x00007fffee706dd7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #47 0x00007fffee707040 in ?? () from /usr/lib/libglib-2.0.so.0 #48 0x00007fffee7070ec in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #49 0x00007ffff2fad6cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #50 0x00007ffff2f5546a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #51 0x00007ffff2f5da0c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5 #52 0x0000000000419bfe in main (argc=1, argv=0x7fffffffe608) at /home/paul/src/systemsettings/app/main.cpp:55 (gdb) p m_backend $1 = (TouchpadBackend *) 0x0
Adding Martin Gräßlin to cc; to check how best to handle this for Wayland platform.
I had already investigated a little bit last week on this issue. The main reason for the crash is that no backend gets loaded and this isn't handled gracefully (crash instead of "unsupported" message). To properly implement support, we need to write a KWin/Wayland specific backend. The big question is how to communicate with KWin. I thought of exposing all found devices through DBus, so that the configuration module can use most of the existing detection code and also allows to modify the settings for the preview area.
*** Bug 369355 has been marked as a duplicate of this bug. ***
Still a problem in 5.8.1.
It's known to Martin that this is still not working. He already did some work on the touchpad Wayland integration. He reported about his work in Bug 366605, which covers the problem of no tap-to-click on Wayland.
*** Bug 371014 has been marked as a duplicate of this bug. ***
*** Bug 365738 has been marked as a duplicate of this bug. ***
Let me know when this bug is fixed.
*** Bug 372137 has been marked as a duplicate of this bug. ***
*** Bug 372363 has been marked as a duplicate of this bug. ***
*** Bug 373794 has been marked as a duplicate of this bug. ***
Fixed by new Wayland Touchpad KCM with Plasma 5.9: https://phabricator.kde.org/R119:3db456588d0df6c7fe8d227608bde4dcd4255f23
*** Bug 375315 has been marked as a duplicate of this bug. ***
*** Bug 365790 has been marked as a duplicate of this bug. ***