We all know that the biggest problem we have is the lack of a good and up-to-date settings-tool. I spent a while working on that topic and want to start this thread as a brainstorming for ideas and to sum up the ideas and things I have already. This is a basic outline of what I expect from a serious settings-tool (feel free to add your own expectations):
- less is more (!!!!) - which means: if it is not essentially needed on the first look, hide it
- written in Python to allow as many people as possible to contribute
- uses compizutil-library as interface between backend (dbus/fuse/...) and frontend (the UI) to allow accessing compiz over various backends (should work with CompOtion-classes)
- has tree-like navigation on the left (similar to kControl or the eMail-tree in evolution)
- offers user-configurable groups in the tree (like in evolution), default grouping should match the (upcoming) new "grouping by target" in the wiki (see here for details)
- searchbox above (or below) navigation to quickly find plugins or single options
- dynamic UI-creation using abstracted ui-classes like "StringInput, FloatInput, ... which would also allow implementing various frontends using different toolkits (gtk/qt/...)
- plugin-system to allow compiz-plugin-coders (or other people) to add additional input-elements and UI for individual plugins (e.g. the wallpaper-plugin could offer an additional tab/input with a representation of the user's viewports and a simple and attractive way to set images on the different viewports - e.g. by drag&drop)
- maybe a differentiation between simple and advanced mode, the simple-mode could be also defined by a plugin (i.e. script) which simply defines what options should be displayed in the "simple"-mode
- ideally it should be made to be extensible to not only configure compiz but also other apps (or at least not requires a rewrite if we want to do such things in the future)
- should automagically care for plugin-dependancies and/or -conflicts and display information-dialogs with human-readable information (!!!) whenever something can't be loaded
- plugin-based frontpage with a "frequently used settings"-plugin as default
- possibility to let two plugins appear under the same configuration (i.e. let one plugin "plugin-in" into the configuration of another plugin) ... (Note: maybe the grouping-feature could support something like that)
I will add things to this list as soon as they come to my mind (or other people note them). I already have written a (unfinished but working) compizutil-library and have a basic settings-tool to play with but I want to design the structure and workflow before coding any further.
Once we have a good and extensible base, we can setup a git-repo for it and everyone can work on it and contribute to it as he/she likes.


...