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:

<code>
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()
}
}
</code>

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.

lockscreen

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.

kate

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:)