This year i took part on the GSoC and i was being mentored my Martin Gräßlin. My project was to port the KWin Effects KCM to Qt5. After a bit of research we decide that it will be easier to rewrite them back from the scratch instead of trying porting them.
Why?
We wanted to have an application which is written completely in QML and we were able to do it because of the Qt Quick Controls. And in order to do that we had to make a lot of changes into the KWin Effects KCM, because it was based on Qt Gui so all the UI stuff needed to be rewritten from the scratch. So we came down to the conclusion that it would be easier to rewrite it. The name of the new application is KWincompositing. Also some of the KDE4 code did not make any sense on the world of Qt5. Furthermore, KWincompositing is using a more flexible model (QAbstractItemModel for those who are interested for the technical details) for loading the effects. The KDE4 model was coming out of a library which didn’t allow us to modify stuff. For example we didn’t had the ability to add an extra button for removing the effects which had being installed from the Get Hot New Stuff… And more cool stuff can be added, we might add an embedded video which will show the functionality of each effect.
What are the advantages of the new UI?
The new UI comes without any tabs, while the KDE4 version had 3 (General, All Effects, Advanced). The existence of the tabs was making some stuff harder for the user because he had to remember which option exists in which tab. On KWincompositing all the available options exist on one page. So you will no more have to navigate through the tabs. Also our new UI comes with more changes. E.X. the about information for the KWin Effect, the KDE4 version was opening a new windows, while the KWincompositing is showing you the information inside from a dropdown menu. At the moment the KWincompositing is under development and it is not consider to be stable.
Contact Info
If you are interesting about KWincompositing you can
How can i build it?
You can download it from
here.
After that you will need the kdelibs (frameworks branch), plasma-framework (master branch) and kde-workspace (master).
Our code exists on master branch.
then run cmake -DCMAKE_INSTALL_PREFIX=$KF5 -DCMAKE_PREFIX_PATH=$KF5 . && make && make install
For more information about how to build frameworks, you could take a look at the
wiki.