I’m glad to announce the 0.3.0 release of cairo-compmgr.

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Plugins can be used to add some cool effects to your desktop.

Changes last pre-release :

  • Drop glitz and openvg backends, we wait for new opengl cairo backend to add 3D support in CCM
  • Use more classical dialog box for configuration and snapshot
  • Vala is now required to build cairo-compmgr
  • Add a mosaic (« exposé ») plugin that you can activate with <Super>Tab keys
  • Add experimental clone plugin which provide the capability to an external application to get the content of any showed window.
  • Add the capability to launch the configuration in command line with cairo-compmgr –configure command.
  • Fix many bugs and performance issues.

You can get latest tarball here : http://download.tuxfamily.org/ccm/cairo-compmgr/

or grab debian packages here : http://cairo-compmgr.tuxfamily.org/download/debian-packages/

Have fun !

I’m glad to announce a pre-release of cairo-compmgr:  0.2.93

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.

Changes since 0.2.91 pre-release :

- Fix opacity when set with transset on framed window.

- Add settings UI page for plugins except magnifier

- Add cursor redirect paint API

- Fix some death window steal on screen

- Mosaic plugin click on window activate it, shadow window when cursor is not over them.

- Magnifier plugin use latest cursor redirect API to draw pointer.

- Fix some crash on enable/disable ccm

- Fix some memory leak.

You can get latest tarball here : http://download.tuxfamily.org/ccm/cairo-compmgr/

or the ubuntu intrepid packages here : http://cairo-compmgr.tuxfamily.org/download/binary-packages/

Have fun !

gandalfn

This is my first article (of hopefully a long series) on Cairo Composite Manager except announcements releases. I hope that you will be very indulgent on my very approximate English

I’ll try to explain in these items the various technical aspects of CCM and the problem I faced during its development.
To begin I would like to respond to two questions which always posed on CCM.

First, what does Cairo Composite Manager?

As its name suggests it is a « composite manager » that uses cairo for rendering and can work with any  EWMH compliant window manager (Metacity, Openbox, etc.).

CCM has specific feature:

- If you have multiple graphics card CCM can manage them independently

- CCM using Cairo he may use different type of backend (XRender, Glitz, etc..), for now the only effective backend is XRender.

- It is completely coded in Glib Object.

Why make a new composite manager when most of WM includes this feature or why not improve the existing composite manager?

- Just to see if it was possible to do a composite manager based on Cairo :-P

Now the heart of the matter, a good composite manager must have its magnifier, the magnifier CCM was initiated by Carlos Diógenes and I ended its integration into the CCM.

To start simply activate the plugin in the preferences :

magnifier-enable1

and press simultaneously on <Super>F12 to launch it.

The technique used is the simplest as possible, at the start of the magnifier creates a surface on which it forwards the windows rendering at each draw. Once all the windows has drawed, it draw the surface on the screen in the right scale. In fact the biggest problem for the magnifier is the pointer rendering. This must indeed be in hiding and redraw in the  magnifier scale and in the good position. For that Xorg provide two functions in Xfixes extension to hide and display the main pointer. But as pointed out by Kristian Lyngstøl this feature has a problem again the pointer became visible. Indeed all animated pointers disappeared. After checking in the code of Xorg it seems that due from a call of virtual cursor display function at initialization and termination of pointer hidding. I post a naive patch on xorg bugzilla that seems to solve the problem. I hope that once reviewed by X developper it solve the problem permanently.

gandalfn

I’m glad to announce a pre-release of cairo-compmgr:  0.2.91

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.

Due of lack of time, It’s a long time I don’t push a new release and I didn’t answer at any comments, I apologize to all who post or send an email which I have not yet responded, I’ll to try answer very soon.

Well, many answers are in this pre-release, which include many news feature and fixes :

- first many performance improvement

- all dependencies of libgnome are removed

- perf plugin and it’s depencies to libgtop has became optionnal

- all settings are migrated to key files located in user dirs ($HOME/.config/cairo-compmgr), if you want use gconf you can force cairo-compmgr to use it with –use-gconf paramater when you launch it.

- a new snapshot plugin is added which provide to take a snapshot of screen region when you selected an area with mouse and <Super> (Windows) button pressed or take a snapshot of window when you click on it with <Super><Alt> pressed.

- a new decoration plugin which allow to have alpha window decoration.

- the region management has completly rewrite and now use pixman (>=0.12).

- the shadow has improved to manage better and take less ressource to draw shadow.

- the window transformation has be rewritten, it manage now a stack of transformation on paint.

- an experimental input redirection is available without any Xorg patch is available, it needs some work to be functionnal.

- an new settings dialog and API is available, it is really on beginning for now it only manage the plugin activation/desactivation.

- ccm support vala binding and it have a sample vala plugin (vala-window-plugin)

- a very experimental automate plugin which record/play user input is available too.

- API documentation is added and available here : http://cairo-compmgr.tuxfamily.org/reference/

- and some others fixes

You can get latest tarball here : http://download.tuxfamily.org/ccm/cairo-compmgr/

or the ubuntu intrepid packages here : http://cairo-compmgr.tuxfamily.org/download/binary-packages/

Have fun !

gandalfn

I’m glad to announce cairo-compmgr 0.2.2

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.To find out more about it, just point your browser to: http://cairo-compmgr.tuxfamily.org

It’s bugs fix release which improve glitz TFP backend.

To switch from xrender rendering to glitz TFP rendering do :

gconftool --set --type string /apps/cairo-compmgr/screen_0/general/backend glitz
gconftool --set --type bool /apps/cairo-compmgr/screen_0/general/native_pixmap_bind true
gconftool --set --type bool /apps/cairo-compmgr/screen_0/general/indirect true

and restart ccm.

To switch back on xrender rendering do :

gconftool --set --type string /apps/cairo-compmgr/screen_0/general/backend xrender

and restart ccm.

Changes since 0.2.1 release :

- API cleanup.
- Fix TFP mode.
- Magnifier performance improvement.

You can grab lastest source code here :

http://download.tuxfamily.org/ccm/cairo-compmgr/cairo-compmgr-0.2.2.tar.gz

You can found here the instructions to build ccm from source.

Binary packages for ubuntu hardy are also available to find out more about them, just point your browser to: http://cairo-compmgr.tuxfamily.org/download/binary-packages/

have fun

gandalfn

I’m glad to announce cairo-compmgr 0.2.1

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.To find out more about it, just point your browser to: http://cairo-compmgr.tuxfamily.org

It’s quick bugs fix release which improve XRender backend performance, which are really bad in 0.2.0 release. To have the better performance with xrender you can enable native_pixmap_bind option like this:

gconftool --set --type string /apps/cairo-compmgr/screen_0/general/backend xrender
gconftool --set --type bool /apps/cairo-compmgr/screen_0/general/native_pixmap_bind true

and restart ccm.

Changes since 0.2.0 release :

- XRender backend: improve performance.

- TFP glitz backend fixes.

- Shadow plugin fixes with glitz TFP backend.

You can grab lastest source code here :

http://download.tuxfamily.org/ccm/cairo-compmgr/cairo-compmgr-0.2.1.tar.gz

Binary packages for ubuntu hardy are also available to find out more about them, just point your browser to: http://cairo-compmgr.tuxfamily.org/download/binary-packages/

Nota: experimental backends (TFP, OpenVG) are disabled  in binary packages to test them, you must build ccm from source.

For glitz support you need a modified version of glitz than you can grab here:

http://download.tuxfamily.org/ccm/glitz/glitz-0.5.7.tar.bz2

and a patch for cairo :

patch for cairo 1.6.x : http://download.tuxfamily.org/ccm/glitz/0001-cairo-1.6-Fix-glitz-support-for-24.8-fixed-point.patch

patch for cairo 1.7.x: http://download.tuxfamily.org/ccm/glitz/0001-Fix-glitz-support-for-24.8-fixed-point.patch

You can grab latest source in ccm git repos with following commands :

cairo-compmgr:

git clone git://git.tuxfamily.org/gitroot/ccm/cairocompmgr.git cairo-compmgr

glitz:

git clone git://git.tuxfamily.org/gitroot/ccm/glitz.git

have fun

gandalfn

I’m glad to announce cairo-compmgr 0.2.0

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.To find out more about it, just point your browser to: http://cairo-compmgr.tuxfamily.org

Changes since 0.1.3.1 release :

- Many rewrite to improve and stabilize the core.

- Stack check rewrite.

- Get/Set image rewrite.

- Plugins methods call improvement.

- Timeline support.

- Async property support.

- Dynamic preferences change support.

- Many performances improvements.

- Add magnifier plugin.

- Add experimental mosaic plugin.

- Experimental glitz TFP backend.

- Experimental openvg backend.

You can grab lastest source code here :

http://download.tuxfamily.org/ccm/cairo-compmgr/cairo-compmgr-0.2.0.tar.gz

Binary packages for ubuntu hardy are also available to find out more about them, just point your browser to: http://cairo-compmgr.tuxfamily.org/download/binary-packages/

For glitz support you need a modified version of glitz than you can grab here:

http://download.tuxfamily.org/ccm/glitz/glitz-0.5.7.tar.bz2

and a patch for cairo :

patch for cairo 1.6.x : http://download.tuxfamily.org/ccm/glitz/0001-cairo-1.6-Fix-glitz-support-for-24.8-fixed-point.patch

patch for cairo 1.7.x: http://download.tuxfamily.org/ccm/glitz/0001-Fix-glitz-support-for-24.8-fixed-point.patch

You can grab latest source in ccm git repos with following commands :

cairo-compmgr:

git clone git://git.tuxfamily.org/gitroot/ccm/cairocompmgr.git cairo-compmgr

glitz:

git clone git://git.tuxfamily.org/gitroot/ccm/glitz.git

have fun

gandalfn

I’m glad to announce cairo-compmgr 0.1.3.1.

Cairo Composite Manager is a versatile and extensible composite manager which use cairo for rendering. Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.To find out more about it, just point your browser to: http://cairo-compmgr.tuxfamily.org

Changes since 0.1.2 release :

- Add pixmap buffered surface, improve significantly the performance.
- Native pixmap backend (for now only xrender backend is supported)
- Fix some issues in shadow plugins.
- Some performances improvements
- Add a desktop launcher in System Tools menu.

This release include two new way to bind pixmap, buffered pixmap surface and experimental native pixmap backend. For now, to improve significantly the performance you can use buffered pixmap with this screen gconf option :

/apps/cairo-compmgr/screen_<x>/general/use_buffered_pixmap (x is your screen number).

it’s enabled by default.

If you have some trouble with this option or if you use git, you must, perhaps, remove ~/.gconf/apps/cairo-compmgr directory and restart gconfd-2.

This release include also a native pixmap bind, it’s only active for xrender backend.

/apps/cairo-compmgr/screen_<x>/general/native_pixmap_bind (x is your screen number).

It can improve your performance, but for now it’s really unstable

You can grab lastest source code here :

http://download.tuxfamily.org/ccm/cairo-compmgr/cairo-compmgr-0.1.3.1.tar.gz

Binary packages for ubuntu gutsy are also avaibles to find out more about them, just point your browser to: http://cairo-compmgr.tuxfamily.org/download/binary-packages/

Screenshot

décembre 28th, 2007 2 Comments

An updated screenshot with a video and freeze plugin in action (window is grayed when the application became unresponsive).

Nota: I use on my desktop global menu and the very good avant window navigator dock bar.  All resemblance to a known Operating System, is not fortuitous. ;)

Changelog and NEWS

décembre 28th, 2007 2 Comments

git is a very good distributed revision control system but when it used by a stupid boy like me :) . It can give the impression than a changelog or news file aren’t necessary :)

It’s fixed now you can see changelog here and NEWS here , in future, it is promised, i’ll don’t forget them.