Project ideas for GSOC 2011

Every year Google allows regular students to work on opensource software and getting paid real money at the same time. This year fluxbox tries to be accepted as a mentoring organization. We have some project ideas and want YOU to work on them.

Adding Compositing Features

The Composite Extension renders the output of windows to an off-screen buffer. Fluxbox could take this off-screen buffer and start doing fancy stuff with it:

  • Real transparency
  • Shadows around windows
  • Animate hiding / unhiding windows
  • Animate changing the workspace

Think Compiz, just within fluxbox. And no need for xcompmgr either.

This project is for students who want to bite into something real. You can read a related tutorial over there to get a rough idea of what is needed to be successful.

Implementing the Desktop Menu Specification

For years fluxbox used the good old 'fluxbox-generate_menu' script to come up with a good menu for the normal user. Though it works (kind of), there are a couple of issues with it:

  • It is one gigantic script with translations in it, lists of applications to check in it. Pretty uneasy to maintain.
  • The user or the system administrator have actually no way of specifying the structure of the created menu. The only way the user could add her own entries is by providing a file called 'usermenu' which is then incorporated at a specific position inside the menu.
  • Distributions like Debian/Ubuntu disable the script alltogether since they have their own mechanism of keeping a system wide menu up to date
  • Keeping fluxbox-generate_menu posix compliant on every OS fluxbox runs on is a tedious task.

And then there is the "Desktop Menu Specification" which allows system administrators to define a system wide menu and allows users to override parts of that system wide menu or ignore it completely and run their own. And such defined menus work in other Window manages as well (if they support the spec).

So, the task for the student would be to create a programm (C / C++) to which the user feeds the window manager independent menus and gets valid fluxbox menus. No special Xlib-related skills are needed, just pure C/C++.

There might be some synergy effects with fbautostart, an application which implements the Autostart specification.

Your own idea - here

You can come up with a fancy idea for fluxbox on your own as well. Chat with us about it on #fluxbox or mail to the mailinglist.

Areas in which fluxbox needs some love:

  • Code documentation
  • Test driven development
  • Refactoring the menu code
  • One config file syntax to rule them all
  • Different auto-layouting algorithms / strategies (tiling etc)
  • Independent workspaces on multiple monitors