This is a guest post by my Google Summer of Code student Arthur Arlt.
in this very first blog post in my life I first want to introduce myself. Then I
want to give an overview on my GSoC objectives and say some words about code I
already produced for KDE’s compositor KWin.
My name is Arthur Arlt. I am studying Applied Computer Science (MSc) at the
University of Heidelberg. I reached my Bachelor degree at the University of
Mannheim, where I studied Software- and Internet Technology (BSc). I still
live in Mannheim and shuttle to the university, since all my friends live here
and Heidelberg is not that far away (and much more expensive to live, as
My GSoC project deals with refactoring KWin’s workspace class. In consequence
of more than twelve years programming work this class grew to a giant
‘monster’. Very many functionality was just added to the workspace class
leading to a header file of almost 1500 lines of code. The objective of my GSoC
project is to refactor this one big class, structuring the functionalities to
reasonable own classes as modules. On the fly it is possible to rename
variables and functions to follow a consistent naming scheme.
Doing all this is not only just for fun. The main reason for the
modularization of KWin is to ease the port to Wayland. Also some
functionalities are not required for special devices like tablet PCs. E.g. the
functionality of screen edge handling is not needed for devices controlled by
In the past three month I started to code some peanuts for KWin. The first idea
I had was to extend the quick tiling feature with tiling to quarters. My
mentor Martin Gräßlin showed me where the changes have to take place and I got
my first feature implemented As a foretaste of my GSoC I moved the outline
functionality to an own class. This made it possible to easily write an effect
for outlining windows and replace the old X implementation.
My first GSoC step was to remove the non-working functionality of TopMenu. As
replacement we now have Kubuntu’s AppMenu. The second step I am currently
working on is to break out the TabBox (Alt+TAB) from workspace to an own
Powered by Blogilo