Proposals for Compiz Fusion Development
Proposals for Compiz Fusion Development
- Managing this page
- Core proposals
- Plugin Proposals
- LibCompizConfig Proposals
- Project Proposals
Managing this page
Please keeep your propsals small and meaningful using complete, english sentences. If your propsal needs more elaboration, create a sub page, and include a _small_ description with a link. The proposals are in no particular order, but it is recommended that you add new proposals ON TOP, so it's easier to spot new proposals. It is a good idea to discuss them beforehand.
We should also handle multiple-pointer X as well. In more detail
We need to interact with transformed windows. This also presents us an opportunity to truly redirect all input handling to the compositor In more detail
There are some ways which we can slightly increase the performance of compiz to squeeze a few extra fps out of every render. In more detail
Compiling plugins into core
Compiling plugins into core allows us to decrease startup time substantially (since we aren't spending a whole bunch of time in dlopen. In more detail
Better handling of unexpected input
There is a very limited amount of input testing going on, and when something goes wrong, the plugin author generally has to look at the core function to understand why. This shouldn't be necessary.
Document all core functions in the source code
This should always be done, and needs to be updated for existing functions. Input, output, expected result and known quirks/weaknesses need to be documented for every function.
Split large functions
One function - One job. Large functions needs to poor code re-use, cache misses and lousy readability.
Port to OpenGL ES
Embedded devices require GLES support. It would be cool to have compiz work on them. In more detail
We need a framework to test certain functionality of the window manager to avoid random regressions. In more detail
Significantly improve the mouse cursor code in eZoom
This code is mostly related to XFixes, which is bugged. It can be improved to better handle bugs, and perhaps eventually end up drawing a software cursor whenever enabled. The idea is to make it generic enough so that it could eventually move out of eZoom.
Make animation code more accessible
Animation code sounds modularised, but isn't. We need to modularise it, split out all the animation specific stuff out of core functions, add more hooks and make animations avaliable to all plugins. In more detail
It looks like Xorg might be on the way out, and the fact that we are tied to it is not good. We should look to expand our horizons into things like wayland by making X11 an optional requirement. An X11 plugin shouldn't be too difficult to do - all it takes is making an X11Screen, X11Window classes (base window manager things can go in CompWindow, CompScreen) In more detail
Cairo Rendering Plugin
A lot of plugins use cairo in order to render things on screen. This involves a lot of cairo setup/teardown code which gets a bit repetitive for every plugin. We should create a cairo plugin which provides a class for us to simply set up a surface, bind it to a texture, get the size and be done with it. Very much similar to the Text Plugin. Proposed Interface
More and more it looks like we will be putting bits and pieces of UI into compiz. This obviously presents a problem to us since compiz eats certain events that UI Windows would like, which means that we obviously can't get them. In more detail
The wallpaper plugin is pretty cool for drawing wallpapers on the desktop - it would be even better if we could have wallpaper objects for live wallpapers and the like. In more detail
Debugging X11 related stuff in compiz is really annoying and tedious. How about a live debugging console using the text plugin to do some X11 debugging. In more detail
LibCompizConfig cascading options
Currently, libCompizConfig does not support options within options. This proves problematic when using multi-lists where only generic pre-defined settings are available. In more detail
Get a bugtracker
Bugzilla Died. Do we want to use it, something else, or launchpad even?.
Establish clear goals for releases
This will help guide the project, and give both developers, packagers and users and idea about releases.
Development/Proposals (last edited 2011-01-30 12:48:07 by 203-59-81-207)