Write-up for SoK Project – OpenQA Plasma Mobile

KDE Goal: Usability and Productivity proposed by Nate Graham, is one of the three goals selected by KDE. This goal will focus on polishing our basic software so everyone will be delighted to use it. One of important aspect of Usability and Productivity is focus on quality assurance.

In this Season of KDE (SoK) 2018, I am working on “OpenQA Plasma Mobile” project. This project indirectly helps to achieve the goal of Usability and Productivity as it would work to get the higher quality version of the mobile by creating integration testing for it. It would make it easier to test the common operations of the mobile.

In these few weeks with the help of my mentor Bhushan Shah I have implemented the following:

  •  Test of checking wayland session.


  • Test of checking initial phone session.


  • Test of opening dialer application.


The work done can be found at : https://github.com/bdhruve/kde-os-autoinst/tree/openqa-plasma-mobile

In the upcoming weeks, I will add the tests for more features of Plasma Mobile shell as well as other applications in Plasma Mobile.


Write-up for GSoC Project- Plasma Mobile Emulator

Hello everyone,

It has been pretty a while, i haven’t posted anything regarding the progress in my project. So my project is “Plasma Mobile Emulator”-  A solution for developing, testing and accessing plasma mobile system without having to install on real phone.

So far i have worked on the following:

As mentioned in previous blog post, earlier I added support for touch events in the KWayland fakeinput_interface, after that this was integrated in kwin_wayland.

kwin_wayland nested in QQuickItem
In Plasma Mobile emulator, KWin would need to be child of the emulator window, to achive this Martin Graesslin suggested to use a declartive plugin which would create the anonymous wayland server which in turn would get the nested kwin_wayland started.
Typical definition for such QML item would look like:

import QtQuick 2.0
import org.kde.kwin.qml 1.0

Text {
text: “Hello world”
height: 600
width: 800
KWinQml {
id: kwin
anchors.fill: parent
socketName: “kwin-plasma-emulator-0”
focus: true
Timer {
interval: 5000
repeat: false
running: true
onTriggered: kwin.start()

Rendering the kwin_wayland on QML
After I got kwin_wayland running in headless mode inside QQuickItem, next task was to render its contents, for that I triggered repaint of the QQuickItem when damaged signal of SurfaceInterface was triggered.


Input in QQuickItem
Once rendering was working, next task was to use QQuick input events and pass them to anonymous wayland server using seat_interface.
a. Mouse Hover Events – to set the pointer position.
b. Mouse Press/Release Events – to send the pointer button events.
c. KeyPress events- to send keys.


Changes mentioned above are under review on phabricator. I will further update you on the progress of my project.
Thank you. 🙂

Hello KDE

Hello everyone, myself Bhavisha Dhruve. I am a graduate in Bachelors of Commerce and Computer Application and pursuing A Levels in Computer Application. Currently i am a part of Google Summer of Code (GSOC) 2016, and the project i am working for is “Devising the Plasma Mobile Emulator” with the help of KDE organization.

Plasma Mobile Emulator will be the solution for developing, testing and accessing plasma mobile system without having to install on real phone.
This project takes in the following:

  • Docker Container with plasma mobile.
  • Different Resolution.
  • Translation of click to touch events.
  • Screenshots and Screen Recording (Future Development).

With the guidance of my mentor Bhushan Shah in these 4 weeks i have been able to create Docker container with kwin_wayland running inside. Currently working on Extending fakeinput interface in kwayland for touch events and the autotests for these added functionalities is in progress and once done it will allow to translate and emulate click events into touch events, as soon as it is done i will update it.

Working with KDE is a gratified experience and a place where everyday i learn something amazing. Thanks to my mentor Bhushan Shah and the plasma-devel team for always being there and helping me out when in need. And a big thank you to Google for giving us such opportunities and letting me to be a part of this 2016 GSOC.

And as it is very well said :“It’s Never Early, Never Late. It takes a little Patience and Faith but it’s worth to wait.” 🙂

Happy Weekend:)