SUMMARY System settings crashes if I exit without saving the changed keyboard shortcut for a custom keyboard shortcut. STEPS TO REPRODUCE 1. Open System Settings > Workspace > Shortcuts > Custom shortcuts 2. choose any custom shortcut item (e.g. kmenuedit > search) 3. Click on the 'shortcut' box and change the shortcut 4. Close the System Settings application without applying the change (confirm discarding the change when it asks you) OBSERVED RESULTS System Settings crashes EXPECTED RESULTS System Settings should not crash. SOFTWARE VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.24.4 KDE Frameworks Version: 5.92.0 Qt Version: 5.15.3 Kernel Version: 5.15.33-1-lts (64-bit) Graphics Platform: X11 Processors: 8 × AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx Memory: 21.5 GiB of RAM Graphics Processor: AMD Radeon Vega 8 Graphics ADDITIONAL INFORMATION Also reproducible on KDE Neon unstable BACKTRACE Application: கணினி அமைப்புகள் (systemsettings), signal: Segmentation fault Content of s_kcrashErrorMessage: {_M_t = {<std::__uniq_ptr_impl<char, std::default_delete<char []> >> = {_M_t = std::tuple containing = {[1] = 0x0, [2] = {<No data fields>}}}, <No data fields>}} [KCrash Handler] #6 _q_uuidToHex (uuid=..., dst=0x7fff4e9b3371 "\231\071\237\376U", dst@entry=0x7fff4e9b3370 "{\231\071\237\376U", mode=mode@entry=QUuid::WithBraces) at plugin/quuid.cpp:90 #7 0x00007f4d50a1b70e in QUuid::toString (this=this@entry=0x20) at plugin/quuid.cpp:608 #8 0x00007f4ce84ca4c8 in KHotKeys::ShortcutTrigger::shortcut (this=0x0) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/triggers/shortcut_trigger.cpp:166 #9 0x00007f4ce84ca82a in KHotKeys::ShortcutTrigger::primaryShortcut (this=<optimized out>) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/triggers/shortcut_trigger.cpp:177 #10 0x00007f4ce8547a8d in ShortcutTriggerWidget::isChanged (this=0x7fff4e9b3458) at /usr/src/debug/khotkeys-5.24.4/kcm_hotkeys/triggers/shortcut_trigger_widget.cpp:65 #11 0x00007f4ce85500bb in HotkeysWidgetIFace::slotChanged (this=0x55fe9e8e63d0) at /usr/src/debug/khotkeys-5.24.4/kcm_hotkeys/hotkeys_widget_iface.cpp:41 #12 0x00007f4d50a554af in doActivate<false> (sender=0x55fe9f033ce0, signal_index=4, argv=0x7fff4e9b35b0) at kernel/qobject.cpp:3898 #13 0x00007f4d50a56eda in QSignalMapper::mapped (this=this@entry=0x55fe9f033ce0, _t1=...) at .moc/moc_qsignalmapper.cpp:231 #14 0x00007f4d50a570c8 in QSignalMapperPrivate::emitMappedValue<void (QSignalMapper::*)(QString const&), QHash<QObject*, QString> > (this=0x55fe9f014d50, this=0x55fe9f014d50, mappedValues=..., signal=(void (QSignalMapper::*)(QSignalMapper * const, const QString &)) 0x7f4d50a56d00 <QSignalMapper::mappedString(QString const&)>, sender=0x55fea0d486b0) at kernel/qsignalmapper.cpp:67 #15 QSignalMapperPrivate::emitMappedValues (sender=0x55fea0d486b0, this=0x55fe9f014d50) at kernel/qsignalmapper.cpp:77 #16 QSignalMapper::map (this=<optimized out>, sender=0x55fea0d486b0) at kernel/qsignalmapper.cpp:288 #17 0x00007f4d50a554af in doActivate<false> (sender=0x55fea0d486b0, signal_index=7, argv=0x7fff4e9b36e0) at kernel/qobject.cpp:3898 #18 0x00007f4d51ed0007 in KKeySequenceWidget::keySequenceChanged (this=<optimized out>, _t1=...) at /usr/src/debug/build/src/KF5XmlGui_autogen/include/moc_kkeysequencewidget.cpp:253 #19 0x00007f4d50a55463 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #20 doActivate<false> (sender=0x7f4d4ffb50b0 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>, signal_index=3, argv=0x7fff4e9b37f0) at kernel/qobject.cpp:3886 #21 0x00007f4d4ff9fbc9 in KGlobalAccel::globalShortcutChanged (this=this@entry=0x7f4d4ffb50b0 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>, _t1=<optimized out>, _t2=...) at /usr/src/debug/build/src/KF5GlobalAccel_autogen/include/moc_kglobalaccel.cpp:135 #22 0x00007f4d4ffa8a31 in KGlobalAccelPrivate::updateGlobalShortcut (this=<optimized out>, action=<optimized out>, actionFlags=..., actionFlags@entry=..., globalFlags=globalFlags@entry=KGlobalAccel::Autoloading) at /usr/src/debug/kglobalaccel-5.92.0/src/kglobalaccel.cpp:357 #23 0x00007f4d4ffa8d30 in KGlobalAccel::setShortcut (this=this@entry=0x7f4d4ffb50b0 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>, action=<optimized out>, action@entry=0x55fe9f00ddc0, shortcut=..., loadFlag=loadFlag@entry=KGlobalAccel::Autoloading) at /usr/include/qt/QtCore/qflags.h:121 #24 0x00007f4ce84cd5de in KHotKeys::ShortcutsHandler::addAction (shortcut=..., text=..., id=..., this=0x55fe9f80fa70) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/shortcuts_handler.cpp:69 #25 KHotKeys::ShortcutTrigger::activate (this=0x55fe9f282ea0, newState=<optimized out>) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/triggers/shortcut_trigger.cpp:70 #26 0x00007f4ce84c7ba0 in non-virtual thunk to KHotKeys::ShortcutTrigger::enable() () at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/triggers/shortcut_trigger.cpp:149 #27 0x00007f4ce84c003c in KHotKeys::SimpleActionData::doEnable (this=0x55fe9f282d00) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/action_data/simple_action_data.cpp:36 #28 0x00007f4ce84d6bf1 in SettingsReaderV2::readActionData (this=this@entry=0x7fff4e9b3cf0, config=..., parent=parent@entry=0x55fe9ff02420) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings_reader_v2.cpp:169 #29 0x00007f4ce84d59db in SettingsReaderV2::readGroup (parent=<optimized out>, config=..., this=0x7fff4e9b3cf0) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings_reader_v2.cpp:98 #30 SettingsReaderV2::readActionData (this=0x7fff4e9b3cf0, config=..., parent=<optimized out>) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings_reader_v2.cpp:130 #31 0x00007f4ce84cf4b2 in SettingsReaderV2::read (parent=0x55fe9fad91c0, config=..., this=0x7fff4e9b3cf0) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings_reader_v2.cpp:49 #32 KHotKeys::Settings::read_settings (stateStrategy=<optimized out>, include_disabled=184, config=..., root=0x55fe9fad91c0, this=0x7fff4e9b3cb0) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings.cpp:405 #33 KHotKeys::Settings::read_settings (this=this@entry=0x7f4d3c00b930, root=0x55fe9fad91c0, config=..., include_disabled=include_disabled@entry=true, stateStrategy=stateStrategy@entry=KHotKeys::Retain) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings.cpp:392 #34 0x00007f4ce84d1317 in KHotKeys::Settings::reread_settings (this=this@entry=0x7f4d3c00b930, include_disabled=include_disabled@entry=true) at /usr/src/debug/khotkeys-5.24.4/libkhotkeysprivate/settings.cpp:386 #35 0x00007f4ce8539a5d in KHotkeysModel::load (this=0x7f4d3c00b920) at /usr/src/debug/khotkeys-5.24.4/kcm_hotkeys/hotkeys_model.cpp:383 #36 KCMHotkeysPrivate::load (this=0x55fe9ef7d470) at /usr/src/debug/khotkeys-5.24.4/kcm_hotkeys/kcm_hotkeys.cpp:238 #37 KCMHotkeys::load (this=<optimized out>) at /usr/src/debug/khotkeys-5.24.4/kcm_hotkeys/kcm_hotkeys.cpp:175 #38 0x00007f4d50334016 in KCModuleProxy::load (this=this@entry=0x55fea0d4c0f0) at /usr/src/debug/kcmutils-5.92.0/src/kcmoduleproxy.cpp:271 #39 0x00007f4d51f56fe9 in ModuleView::resolveChanges (currentProxy=0x55fea0d4c0f0, this=0x55fe9e81f4a0) at /usr/src/debug/systemsettings-5.24.4/core/ModuleView.cpp:328 #40 ModuleView::resolveChanges (this=0x55fe9e81f4a0, currentProxy=0x55fea0d4c0f0) at /usr/src/debug/systemsettings-5.24.4/core/ModuleView.cpp:309 #41 0x00007f4d51f570df in ModuleView::resolveChanges (this=<optimized out>) at /usr/src/debug/systemsettings-5.24.4/core/ModuleView.cpp:306 #42 0x000055fe9d16cb79 in SettingsBase::queryClose (this=0x55fe9e717e30) at /usr/src/debug/systemsettings-5.24.4/app/SettingsBase.cpp:283 #43 0x00007f4d51ed4c45 in KMainWindow::closeEvent (this=0x55fe9e717e30, e=0x7fff4e9b41c0) at /usr/src/debug/kxmlgui-5.92.0/src/kmainwindow.cpp:574 #44 0x00007f4d515d643d in QWidget::event (this=0x55fe9e717e30, event=0x7fff4e9b41c0) at kernel/qwidget.cpp:8828 #45 0x00007f4d51f05a9e in KXmlGuiWindow::event (this=0x55fe9e717e30, ev=0x7fff4e9b41c0) at /usr/src/debug/kxmlgui-5.92.0/src/kxmlguiwindow.cpp:220 #46 0x00007f4d515a01c6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55fe9e717e30, e=0x7fff4e9b41c0) at kernel/qapplication.cpp:3637 #47 0x00007f4d50a245aa in QCoreApplication::notifyInternal2 (receiver=0x55fe9e717e30, event=0x7fff4e9b41c0) at kernel/qcoreapplication.cpp:1064 #48 0x00007f4d515d4f51 in QWidgetPrivate::close_helper (mode=QWidgetPrivate::CloseWithSpontaneousEvent, this=0x55fe9e695d20) at kernel/qwidget.cpp:8252 #49 QWidgetPrivate::close_helper (this=0x55fe9e695d20, mode=QWidgetPrivate::CloseWithSpontaneousEvent) at kernel/qwidget.cpp:8237 #50 0x00007f4d515f6d6c in QWidgetWindow::handleCloseEvent (event=0x7fff4e9b43f0, this=0x55fe9e8c1570) at kernel/qwidgetwindow.cpp:848 #51 QWidgetWindow::event (this=0x55fe9e8c1570, event=0x7fff4e9b43f0) at kernel/qwidgetwindow.cpp:256 #52 0x00007f4d515a01c6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55fe9e8c1570, e=0x7fff4e9b43f0) at kernel/qapplication.cpp:3637 #53 0x00007f4d50a245aa in QCoreApplication::notifyInternal2 (receiver=0x55fe9e8c1570, event=0x7fff4e9b43f0) at kernel/qcoreapplication.cpp:1064 #54 0x00007f4d50efe97f in QGuiApplicationPrivate::processCloseEvent (e=0x7f4d44009150) at kernel/qguiapplication.cpp:2639 #55 QGuiApplicationPrivate::processCloseEvent (e=0x7f4d44009150) at kernel/qguiapplication.cpp:2629 #56 0x00007f4d50ee86e5 in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169 #57 0x00007f4d4af3bf60 in xcbSourceDispatch (source=<optimized out>) at /usr/src/debug/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105 #58 0x00007f4d4e6f4163 in g_main_dispatch (context=0x7f4d44005010) at ../glib/glib/gmain.c:3417 #59 g_main_context_dispatch (context=0x7f4d44005010) at ../glib/glib/gmain.c:4135 #60 0x00007f4d4e74a9e9 in g_main_context_iterate.constprop.0 (context=context@entry=0x7f4d44005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211 #61 0x00007f4d4e6f16c5 in g_main_context_iteration (context=0x7f4d44005010, may_block=1) at ../glib/glib/gmain.c:4276 #62 0x00007f4d50a7057a in QEventDispatcherGlib::processEvents (this=0x55fe9e542230, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #63 0x00007f4d50a1c88b in QEventLoop::exec (this=0x7fff4e9b46a0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #64 0x00007f4d50a27fd7 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #65 0x00007f4d50ef8432 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867 #66 0x00007f4d5159e54a in QApplication::exec () at kernel/qapplication.cpp:2829 #67 0x000055fe9d167be8 in main (argc=<optimized out>, argv=0x7fff4e9b47d0) at /usr/src/debug/systemsettings-5.24.4/app/main.cpp:183 [Inferior 1 (process 27943) detached]
Happens to me too when I click "Reset" in Custom Shortcuts on Fedora 35 KDE Plasma. https://pastebin.com/PkWmhnMD
Created attachment 148761 [details] New crash information added by DrKonqi systemsettings (5.24.4) using Qt 5.15.2 - What I was doing when the application crashed: discarding unsaved changes from custom shortcuts -- Backtrace (Reduced): #4 0x00007f3d0ff8c504 in _q_uuidToHex(QUuid const&, char*, QUuid::StringFormat) () from /lib64/libQt5Core.so.5 #5 0x00007f3d0ff8c6be in QUuid::toString() const () from /lib64/libQt5Core.so.5 #6 0x00007f3cd2c33e17 in KHotKeys::ShortcutTrigger::shortcut() const () from /lib64/libkhotkeysprivate.so.5 #7 0x00007f3cd2c34159 in KHotKeys::ShortcutTrigger::primaryShortcut() const () from /lib64/libkhotkeysprivate.so.5 #8 0x00007f3cd2c9a15b in ShortcutTriggerWidget::isChanged() const () from /usr/lib64/qt5/plugins/kcm_hotkeys.so
As announced in https://pointieststick.com/2023/07/26/what-we-plan-to-remove-in-plasma-6/ and https://community.kde.org/Plasma/Plasma_6#Removals, I'm afraid KHotKeys has reached end-of-life in Plasma 6. Accordingly, all bug reports and feature requests for it must be closed now. Most of what KHotKeys could do can already be done with the newer KGlobalAccel system in Plasma 6. A few features such as mouse gestures and triggering conditions based on changes to window states are not yet implemented in the new system. These will be added in the future if and when resources materialize for them, and/or when a kind soul submits patches to implement them! :) Meanwhile, the 3rd-party "Mouse Actions" app (https://github.com/jersou/mouse-actions) may be usable for implementing your own mouse gestures again. Thanks for your understanding, everyone.