Season of KDE 2006
Tabs (window groups) support in KWin (KDE Window manager)
A Season of KDE 2006 project by Martin Böhm
Mentored by Lubos Lunak
Project Details
I'd like to work on
the KDE feature that is described on the KDE Ideas page –
"Tabs support in KWin". That means I would like to implement
grouping support and grouping windows management in the KDE
Window manager called "KWin" and included in the KDE . The
feature should allow users to easily group windows into other
windows, moving groups of windows instead of one by one
etc. This feature should be fairly eas y to use (dragging the
window on top of the other holding the middle mouse button as
in Fluxbox or maybe using a shortcut to group the window with
the closest one). This feature could be configured through
kcontrol – this way the user can choose default window
groupping of certain applications (e.g. the mail client and
the web browser) and other options as well. The implementation
should have almost no effect on over all performance of
KDE.
I'm applying for this certain task because I
think it would help users to organize their workplace in a
more efficient way. I use this feature in the Fluxbox window
manager every time I'm working with it. I would use it in
KDE, too. I know many users who see the benefit of tabbed
windows in browser or terminal emulators (Mozilla Firefox
users, Konsole users). I think a more general approach to
tabbing would be convenient because the management of windows
and groups of windows is clearly the window manager's job (and
not the application's).
I don't have any vacation or
summer classes planned. I'll be able to work throughout all
summer. The amount of time spent depends on the progress of my
work (more pressure, more time). I'd prefer to work around 6-8
hours a day (6-7 days a week).
I'm skilled at both C
and C++ programming. I've read a lot of open-source code,
although I haven't contributed much code yet (I want to change
that this summer and SoC is really a great opportunity to do
so). As for scripting languages, I prefer mostly Python,
although I programmed in others too (PHP, bash, basics of
Perl). I develop in UNIX environments (GNU/Linux, sometimes
BSDs) only. As for Qt/KDE libraries , I don't know them very
well yet, but a) I would gladly (and fast) learn them if I got
accepted and b) the KDE Ideas page explains that KWin doesn't
use much functionality from the libraries anyway. I also have
web development experience (PHP, X(HT)ML,CSS) but that`s not
essential for this assignment.
As a GNU/Linux "power
user" and former server administrator, I have tried and
compared many UNIX programs, including window managers. I've
used,configured and checked to source code of
Blackbox,Fluxbox,Enlightenment,XFCE and KDE. The only window
managers that are still in my system are (incidentally)
Fluxbox and KDE. I use KDE a lot and I know a lot about its
functionality and features.
I don't think there will
be any language barrier. I speak English and German quite
well, so I can communicate with the German KDE developers if
necessary. Even better, the developer who is supposed to men
tor this project (according to KDE Wiki) is Lubos Lunak, also
a Czech citizen (as far as I know) – that not only eliminates
the communication barrier, but also gives the chance of
meeting the mentor in person.< br> I think I will work
under my mentor's supervision without a problem. I'm used to
working at home because I worked for a small Internet provider
company as a system administrator (and partially as a web de
veloper) last year. The communication between me and my
superior was similar to the communication with the mentor of
my project, too.
I haven't applied for any other
Google Summer of Code projects because I want to concentrate
on this task and accomplish it without delays or, preferably,
before the end of the Summer of Code. If I had ti me after
this feature is complete, I'd work on other KDE features which
my mentor suggested (I have some humble ideas about
superkaramba, but the mentor has the last word).
Why
do I think I am the best programmer for this work? It's
because I really believe in the usefulness of this feature in
KDE, because I am willing to spend almost all of my free time
working on it and I won't participate in other SoC projects,
because I know how this feature works in other window managers
and (last but not least) because I have no problems working
independently and under a foreign mentor.
[ Edit ]