Hey Luca, First of all - I like this plugin - the added functionality is really nice and useful. A few suggestions: This plugin is not needed by others as far as I understand, so why do you need the more complicated public ABI construction ? I do not really see the need for the MouseThemer class at all, and MousethemeScreen can be constructed like this: class MousethemeScreen : public PluginClassHandler <MousethemeScreen, CompScreen>, public MousethemeOptions class MousethemePluginVTable : public CompPlugin::VTableForScreen <MousethemeScreen> mousetheme.cpp and mousetheme.h in /src should be able to do enough magic, no ? availableThemesUpdate () and everythingUpdate () could then be called on plugin start in the MousethemeScreen::MousethemeScreen (CompScreen *screen) : ctor. The new functions in core could return bools and use better logging like this: bool PrivateScreen::setNormalCursor (Cursor c) { if (c == None) { compLogMessage ("core", CompLogLevelWarn, "Preventing setting the normal mousecursor to "\ "non-existent!"); if (normalCursor == None) compLogMessage ("core", CompLogLevelError, "We currently do not have a normal mousecursor!"); else compLogMessage ("core", CompLogLevelInfo, "Will continue to use the old normal mousecursor."); return false; // failure } if (normalCursor != None) XFreeCursor (dpy, normalCursor); normalCursor = c; compLogMessage ("core", CompLogLevelInfo, "Successfully set a new normal mousecursor."); return true; // success } The new dependencies also require adding libboost-filesystem-dev to the package deps in debian/control for packages to build with mousetheme. Regarding hidden settings: AFAIK action type settings are hidden in CCSM, so I am sure it might be possible with some hacking, but I agree that the mousetheme problem is a very special case ;) Greetinx, MC Return -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/compiz/attachments/20150501/a30ad313/attachment.html>