Kristian Lyngstøl's Blog

Shelf Plugin preview

Posted on 2007-12-12

I've been working on a new Compiz Fusion plugin currently known as Shelf (it was named miniwin2 for a brief period, more on this further down). This is a fairly straight forward idea, and I'm doing this as a bounty for Canonical.
(http://glug.grm.hia.no/~kristian/misc/Shelf-Alpha-1.png)
http://glug.grm.hia.no/~kristian/misc/Shelf-Alpha-1-small.png

What it does is simple: It visually scales a window down in size. Unlike resizing, this keeps the content of the window as-is, and just makes it seem all together smaller.

At the current time, the plugin is in an alpha-phase. It does the job of scaling quite well and it also masks out input. It hasn't got an animation yet, nor is it very flexible. There are three preset scale factors: 1.0 (normal size), 0.5 (half size) and 0.25 (quarter size), and you cycle through them, default binding is currently super+l, though that seems to be taken.

It can deal with being moved naturally (in fact, it doesn't even have to deal with it, it happens all by it self), it can take keyboard input, and it seems to generally work well.

What it lacks is an animation, more intelligence behind the interaction, input-handling of the mouse (currently you actually click the upper left corner of the window when you click a scaled down window, this will be changed), and general tweaking.

The name is courtesy of Gavintlgold who made a forum post recently about this basic idea. This isn't a new idea, however. There was a supposedly problem-ridden "miniwin" plugin back in the old days before Beryl (and before compiz fusion of course), that did this. We've had to deal with input masking and such in other plugins by now, so we've been getting better at handling these sort of plugins. Danny Baumann pointed me in the right direction, as he've worked with the Shape extension for the group plugin.