Compiz Stuff

Here is a a list of compiz stuff I’ve worked on:

Plugins

Freewins

First started by Rodolfo Granata, then continued by myself, the Freewins plugin might be one of the most famous compiz plugins as it allows you to freely rotate and scale any window. It also includes a kind of physics animation system where windows smoothly go towards where you dragged them as well as a number of helpers. So the code might be a bit bloated and over-featured, but hey, it works! Note that you can’t interact with windows while they are transformed, that is a deliberate limitation, the input is prevented alltogether. This is fixed by input redirection.

Note: That video is about a year old, but gives you an idea of what is possible. The plugin is much improved of course.

git clone git://git.compiz-fusion.org/users/warlock/freewins

Elements-Extendable

The elements plugin was written by Pat Fisher based on the ports of the fireflies and stars plugins I had done earlier last year and also his work on autumn and bubbles. This plugin allows you to draw ‘elements’ on screen as a kind of toy or decoration. The plugin was pretty much unmaintained after Pat released it, so I forked it and rewrote it to allow it to be easily extendible and allow for features like

  • On-Screen display of elements
  • Multiple elements definitions in a multi-list
  • Animations of elements (even though the current implementation is pretty bad as we can’t have lists in lists)
  • Extension interface, so different movement patterns can be easily implemented without reimplementing the entire plugin.
OSD Display

OSD Display

git clone git://git.compiz-fusion.org/users/smspillaz/elements-extendable

Wii Remote Plugin

The Wii Remote is an input device which allows for some very interesting possibilities. Afterthe release of the Nintendo Wii console, it was found that the Wii Remote actually used standard bluetooth to communicate with the console and would happily pair itself with any bluetooth enabled computer. With a special lib, CWiiD, it is very easy to read input directly from the device and use it in your own programs. I have created a compiz plugin which allows you to use the Wii Remote to control plugins via the Compiz Action System. It has a gesture reading interface and and an interface to report to other plugins. This allowed for interesting oppurtunities like headtracking and flick gesturing.

git clone git://git.compiz-fusion.org/users/smspillaz/wiimote

Simple Animations

Simple animations was really an excuse for me to start learning the animation plugin so I could hack on it later. I created a few animations I’ve always wanted, such as Fly In, Rotate In, Bounce (iPhone like), Sheet (Mac OS X Like) and Example (a user contributed animation), which was later split in two, Expand and Expand-Piecewise by Joel Bosveld. The plugin is a simple extension to the animation plugin, perhaps one day I will add comments to it so other developers can understand the interfaces animation provides.

git clone git://git.compiz-fusion.org/users/smspillaz/simple-animations

Compiz-Menu

Being sick of exactly how many actions there were, I decided that it wouldn’t be too long before we actually ran out of keys to trigger them. Hence my solution: compiz-menu. Compiz Menu is a menu that you can define, which allows you to trigger different actions of plugins once you select its item in the menu. Fairly simple, but useful if you have a lot of stuff on keybindings that you don’t use that often.

git clone git://git.compiz-fusion.org/users/smspillaz/compiz-menu

Throw

Commonly requested, so I implemented it. The throw plugin allows you to ‘throw’ your windows by moving them and releasing them while they are moving.

git clone git://git.compiz-fusion.org/users/smspillaz/throw

Peek

It’s a feature of Windows 7, and specifically to the compositing window manager part, so I figured that they better not be able to one-up us on release. In a nutshell, it’s basically a hacky combination of the opacify and thumbnail plugins so when you are hoving a window in the taskbar, all the other windows dim out and you can see it. When you hover the taskbar, all windows fade out and you can see the desktop. Thanks to Danny Baumann for cleaning it up though, it had a really nasty stack corruption bug which I believe is fixed now.

git clone git://git.compiz-fusion.org/users/smspillaz/peek

Lazypointer

E17 has this feature, so why can’t we? In a nutshell, this plugin moves the pointer for you when a window is focussed, activated or on a keybinding. It’s annoying unless you really find it useful however.

git clone git://git.compiz-fusion.org/users/smspillaz/lazypointer

Prompt

This plugin serves as a library plugin for other plugins to display messages on screen. That is all. It’s used by the wiimote plugin for guided instructions on how to connect a Wii Remote to the computer. The way it is implemented, does not require it to be depended on, it can be sent text and parameters over DBUS or compiz.

Python Compiz Tools

Back when I first started to learn how to program, I wrote a set of python compiz tools, such as settings managers, decoration managers etc. The entire set is clone-able at

git clone git://git.compiz-fusion.org/users/smspillaz/compiz-tools

Compiz Fusion Preferences

Simple settings manager to Compiz Fusion. It is pretty much superseeded by simple-ccsm, but it has a nice feature that detects if compiz can be run on your hardware setup. Of course, that feature is now obsolete as compiz can run on any hardware setup, without compositing (well, the upcoming compiz++ can).

Compiz-Fusion-Preferences

Compiz-Fusion-Preferences

Compiz Decorator Settings

The very first application I ever wrote, Compiz Decorator settings gives a frontend to configure the various decorators of compiz.

Compiz-Decorator-Settings

Compiz-Decorator-Settings

Compiz-Settings-List

Mainly for developers, this application lists all the compiz fusion options in their repective groups along with plugin and option short names for reference

LiveDesktop-Settings

This program is a frontend to the XWinWrap program written by David Reveman. It allows for easy setting of a screensaver or a movie file as the background.

Compiz Fusion installer

An unofficial GUI installer for compiz. First time I learned to use threads in a program.

Compiz Fusion Installer

Compiz Fusion Installer

Patches

Among other work, I also have a patchset against compiz core to enable certain functionality that can’t be done in plugins.

Compiz MPX IR

On November the 1st, 2008 I released a patcheset which added MPX and IR support to Compiz and Compiz Fusion (with the help of Peter Hutterer and Joel Bosveld). This allows plugins to interact correctly with multiple cursors and correctly handle input on transformed windows. It won’t be merged because it requires a patch to the X Server which adds a hook to the core event creation function to transform co-ordinates on a mesh. The MPX Support patch, requires no changes to X and can be merged in as soon as it is ready (unfortunately, it will need to be rewritten for compiz++).

git clone git://git.compiz-fusion.org/users/smspillaz/compiz-mpx-ir

4 Responses

  1. These are all awesome plugins and programs you’ve written! Thank you for all your hard work making compiz fusion better than it was :) I really enjoyed seeing the wiimote and the freewins videos.

    Keep it up,

    Chrelad

  2. thanks for ur hard work i enjoy and love using compiz fusion and everyday it keeps getting better. if i know how to do any programing/coding which i am try to learn i will contribute.

  3. Very nice all around. Makes me wonder what you haven’t accomplished yet, mind reading plugin maybe? Anyways I wish I knew how to make a plugin then I would make a “electric” one, whenever something happened it would look like lighting striking or something like that and also I would have a sound of thunder so many seconds after wards lol anyways good job on everything

  4. Love the peek plugin, but the “peek all windows on taskbar hover” thing is kind of annoying. Could you make it optional?

Leave a Reply