This is a guest post by my Google Summer of Code student Arthur Arlt.

Hello everyone,





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

well;).

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

touchscreen.

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

class.





Cheers!