• Immutable Page
  • Info
  • Attachments

Proposals for Compiz Fusion Development

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.

Core proposals

MPX support

We should also handle multiple-pointer X as well. In more detail

Input Redirection

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

Performance Ideas

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

Unit Testing

We need a framework to test certain functionality of the window manager to avoid random regressions. In more detail

Plugin Proposals

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

X11 Plugin

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

UIBuilder Plugin

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

Wallpaper Objects

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

Interactive Console

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 Proposals

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

Project Proposals

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)