Version: (using Devel) OS: Linux Installed from: Compiled sources Unfortunately, playing with systemsettings, I changed to a kwin decoration that did not have a required method, and kwin crashed in an assert. The worst part is that I could not modify the kwin decoration after that because systemsettings also crashes when trying to modify it. Also, this could generate a denial of service for KDESC, if a malicious program changes .kde(x)/share/config/kwinrc and modifies the PluginLib in the [Style] section to something that is not a kwin decoration plugin (or does not exists at all). A solution is to load a known default plugin in that case. You could reproduce it easily changing kwinrc. But be ready to play from the console to restart any window manager.
You have specified "Compiled sources": are you using trunk or the 4.4 branch? In case of trunk what's your svn revision?
trunk revision 1080161
So it's the new decoration kcm. May I ask which decoration you tried? I'm somewhat surprised that the kcm loaded with an ABI incompatible decoration. It should crash as well... In case of a not existing decoration it should fallback to Oxygen. In case of an ABI missmatch it's difficult. KWin in general provides binary compatability for window decorations, but we currently use an Unstable API as well, which is meant to be used only by decorations shipped with KDE SC. Unfortunatelly there are some external decorations using it although it is marked as unstable (and I don't think of Nitrogen or Aurorae as both are shipped with 4.4).
Does not meet KWin HI priority status as it's not a common occurance.
Misread, reverting priority.
What I tried I think was kde3_nitrogen.so (until today late I can not provide more details). I saw 3 keramik decorations in the settings and changed to the bottom keramik, and kwin crashed. Then I tried to restart kwin (after setting the DISPLAY variable), and it crashed, then changed kwinrc with something strange and it crashed (I was curious). Then I used one of the plugin strings I saw in the console, and it worked again.
Yes nitrogen for 4.3 is binary incompatible with 4.4. In case of distribution packages the distribution should conflict the packages and remove nitrogen on update to 4.4. So it's only an issue for us poor souls compiling from trunk ;-)
in revision 1081093 (just a few minutes ago), when the plugin in kwinrc is set to a non existing .so, it defaults to oxygen, good, but if the .so exists and is not a kwin plugin, I see in the console: The library ...../kde4/lib/....so is not a KWin plugin. KWin will close now... And then, no window manager.
SVN commit 1081285 by lmurray: If the loaded decoration library isn't a valid decoration load the default decoration instead of dying. CCBUG: 224440 M +8 -0 kdecoration_plugins_p.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1081285
SVN commit 1081286 by lmurray: Backport r1081285: If the loaded decoration library isn't a valid decoration load the default decoration instead of dying. CCBUG: 224440 M +8 -0 kdecoration_plugins_p.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1081286
Git commit 11dd4504b592180d38666872cd12fd5d4de90b81 by Martin Gräßlin. Committed on 28/04/2011 at 15:56. Pushed by graesslin into branch 'master'. KWin does not require a decoration plugin any more With config option "NoPlugin" in group "Style" it is possible to no request that KWin should be run without a decoration plugin. This is a change for Plasma Active to properly support no decorations. As well if a decoration plugin cannot be loaded, KWin will no longer exit, but continue to run just without a decoration. As a nice side-effect changes in Oxygen no longer destroy my kwin build ;-) BUG: 224440 FIXED-IN: 4.7.0 CCMAIL: sebas@kde.org M +1 -1 kwin/client.cpp M +4 -2 kwin/composite.cpp M +5 -1 kwin/libkdecorations/kdecoration_plugins_p.cpp M +14 -3 kwin/plugins.cpp M +7 -0 kwin/plugins.h M +18 -6 kwin/workspace.cpp M +24 -0 kwin/workspace.h http://commits.kde.org/kde-workspace/11dd4504b592180d38666872cd12fd5d4de90b81