Growing Plasma Mobile: Collect data
Open, HighPublic

Description

In this task we will collect the data we have about the status of Plasma Mobile:

  • Number of active developers
  • Number of contributions (per week/month?)
  • Website stats
  • Impact outside the KDE community (mentions in press, social, media, etc.)
  • [ Add to this list]
paulb created this task.Jan 17 2018, 9:29 AM
paulb triaged this task as High priority.

As discussed, my points here are:

  • To count contributors and set realistic goals, we need to define what Plasma Mobile is. Currently, I think of it as Halium (hardware abstraction), Kirigami as UI SDK, Plasma & whole stack as DE, some entry-level apps
  • To be able to attract new contributors, we need to prepare for them internally: collect open tasks from participating projects; collect information on what devices can be used for testing already; prepare instructions for deployment and emulating
  • Finally, to be able to promote Plasma Mobile, we need to know its strong points. As far as I know, it is far from being a daily driver, so we probably need to mention architectural strengths, design concepts, and wide opportunities

It is important, however, to be true-to-life: there really is lack of developer effort, so no exaggerating, no past one-line-of-code contributors etc. We should be open about it and call the wide community for help.

paulb added a comment.Jan 17 2018, 9:52 AM

Yes, sounds reasonable... Shall I assign this to you, @IlyaBizyaev, at least for the time being? Can you get this started?

I hope so... It may be not the best time for me right now, but I'll be able to get this started.

paulb reassigned this task from paulb to IlyaBizyaev.Jan 17 2018, 10:22 AM

Great. I am here too, so if you need any grunt-work done, just shout. Also, don't be afraid to recruit more people if you need them.

Just started a poll, it got widespread quickly. Hoping to get a lot of feedback.

Wow! Great job. That is what I call efficiency.

In a day, the post on the Russian community page has collected 300 votes.
Here are the results:

What is your attitude to Plasma Mobile?

  • Would like to contribute - 8,7% (26)
  • Would like to try - 50,3% (151)
  • Would like to learn more about the project - 28,3% (85)
  • Aren't interested in the project - 12,7% (38)

VK: https://vk.com/kde_ru?w=wall-33239_1517
Also, a @vote bot in Telegram was used.

Original results at the moment of writing:

People clearly lack information, which is on its own a reason for this campaign.

Considerations about results:

  • More than a half of poll participants want to try Plasma Mobile. While it's generally good, we clearly cannot provide this opportunity yet as PM is not supported by a wide range of devices and we haven't yet collected a list of supported ones. Also, the emulator is currently not end-user friendly and has problems that can make the wrong opinion of the project.
  • Even though the percentage of potential contributors is the lowest of all options, 26 people is a very good result for a community mostly consisting of users; if all those people could be onboarded and guided, that would be a huge progress already.
  • 87% of those who responded to the poll are interested in the project, which is a very, very positive fact :D

And finally, I wanted to share these stats:


This. Is. Incredible.

paulb added a comment.EditedJan 18 2018, 8:12 AM

Yeah, I'm getting similar results from Twitter and G+.

Conclusions are:

  • Plasma Mobile is something our community (and beyond) feel strongly about and want.
  • We (as in the promo team) should ask the devs to build an ISO, VM or something users can download and try on their desktop.
  • We should write or help write an easy to follow, step by step tutorial for said image.
  • We should help users give the devs feedback in and orderly manner (i.e.: using the bugtracker).
  • We should work on helping potential contributors become active contributors.

We should be very careful and clear and explain that these are early days! Users are NOT going to be able to ditch the Android on the S8s and start using PlaMo.

Yeah, and we also probably need to ask developers fix most annoying issues there (i.e. those not present on real devices)

paulb added a comment.Jan 18 2018, 8:25 AM

This was the easy part of this task. As per @IlyaBizyaev's comment:

  • To count contributors and set realistic goals, we need to define what Plasma Mobile is. Currently, I think of it as Halium (hardware abstraction), Kirigami as UI SDK, Plasma & whole stack as DE, some entry-level apps

I would say this up next. Can we start this discussion? For lack of knowing any better, I agree with @IlyaBizyaev's definition of "Plasma Mobile".

Anybody else got feedback on this?

For me, "Plasma Mobile" in the strict sense is a Plasma shell optimised for touch input. That's what the name implies, after all. Basically I see it as the successor to Plasma Active and the overall concept of Plasma adapting to one's hardware dynamically. Obviously for it to be useful there need to be other utilities that are touch optimised as well, but that's Plasma Mobile only in the loose sense (and actually KDE Applications). I find the other things (Kirigami etc.) to be their own projects that integrate well with the shell.

And indeed I'd say the most important task is packaging. The website of Plasma Mobile links to amd64 builds that are thoroughly obsolete. Ideally, Plasma Mobile should be a single apt-get/zypper install/etc. away, just like Plasma Desktop is. For instance, there's been a long-standing Gentoo bug about packaging it and nobody apart from me seems to take it up (potentially because it's not clear how it is supposed to be packaged).

And while it's undestandable that ARM is a major target for Plasma Mobile, amd64 is a low-hanging fruit that should not be ignored. There are real nice Intel tablets nowadays. I looked at how some other mobile-oriented Linux projects work (Sailfish OS, Chromium), and one thing that was always annoying is that installation instructions always assume ARM and include a lot of unnecessary hardware abstraction/kernel/flashing steps that are simply a non-issue on amd64. I hope Plasma Mobile can avoid that and make installation for amd64 users a breeze.

PureTryOut added a subscriber: PureTryOut.EditedJan 18 2018, 7:29 PM

Note that we have already packaged Plasma Mobile for postmarketOS. This already made it possible to run Plasma on whole bunch of new devices (in this list basically every device with a working screen). Besides making it really easy to install it on your phone (as long as it's supported), it also makes Plasma Mobile a "apk add postmarketos-ui-plasma-mobile" away from a regular Alpine Linux installation if our repo is being used. Obviously not many people use Alpine on their computers, but it's a start. postmarketOS also provides a relatively straight forward Qemu VM to use.

I also maintain a Gentoo overlay so I could take a shot at packaging it there as well.

Sweet. I actually have a slightly more updated ebuild for plasma-mobile, as well as an ebuild for plasma-phone-components, that's not posted on the Gentoo bug tracker yet, I should probably upload that. I am in fact succesfully running Plasma Mobile on my tablet already. It's far from being ready for daily use, of course, but the basics work fine.

paulb added a comment.Jan 18 2018, 9:46 PM

Thanks @PureTryOut. Can you add links to packages and instructions to T7779?

Ok, so with a lot of help from @bshah, we have the following data.

Naming

Plasma Mobile and Plasma Phone are two different things that are often confused: Plasma Phone is a phone shell, user interface, while Plasma Mobile is a common name for the stack (Qt/KDE parts: Plasma, frameworks, applications). Halium is not included in this stack, which is reasonable as Plasma Mobile can also work on top of postmarketOS and desktop distributions.

Running with Halium

In order to run Plasma Mobile on a device that is so far only supported by Android, the following parts are used:

  • boot.img (contains a kernel and minimal initrd)
  • Halium system.img (contains the Android binary blobs)
  • Plasma Mobile rootfs

boot.img and system.img need to be compiled for each device separately and cannot be reused "as is" on different devices. The rootfs can be used on different subsets of devices. Currently, two types of rootfs are provided:

  • Generic rootfs
  • CodeAurora Forum (CAF) rootfs

CAF rootfs is used on Qualcomm devices which are using the kernel and binary blobs provided on CodeAurora Forum; for others, the generic is used.

Plasma Mobile rootfs components

A Plasma Mobile rootfs includes following parts:

  • init system
  • Logind / consolekit
  • Libinput
  • DRM / HWcomposer / Framebuffer for graphics
  • Wayland
  • Qt 5 (5.7.1 minimum, 5.9 recommended)
  • Login manager with Wayland session support (e.g. SDDM)
  • Ofono, Telepathy (optional, provide phone call functionality)
  • Plasma Phone components
  • Kirigami as user interface components
  • Various applications

Any distribution packaging this can act as a base system for Plasma Mobile. Packaging these parts along with plasma-phone-components ensures a working Plasma Mobile system. Nowadays, most modern distributions provide these parts and should be able to package and run Plasma Mobile.

Phone shell interface

Phone shell interface is in https://cgit.kde.org/plasma-phone-components.git/, maintained and developed mostly by Marco Martin.

Applications currently provided

ApplicationDeveloperRepositoryStatus
CameraKDEhttps://cgit.kde.org/plasma-camera.git/Very basic, no activity
DiscoverKDEhttps://cgit.kde.org/discover.git/Our application store, actively developed
DolphinKDEhttps://cgit.kde.org/dolphin.git/Not mobile friendly
Kirigami GalleryKDEhttps://cgit.kde.org/kirigami.git/Actively developed, used to showcase Kirigami components
KMahjonggKDEhttps://cgit.kde.org/kmahjongg.git/A game, installed just for fun
KokoKDEhttps://cgit.kde.org/koko.git/A gallery application, last developed by Atul Sharma during GSoC, no recent activity
KonsoleKDEhttps://cgit.kde.org/konsole.git/Actively developed (mostly by Kurt Hindenburg), not mobile-friendly
Marble MapsKDEhttps://cgit.kde.org/marble.git/Maps application, seems to have had commits in recent past
PeruseKDEhttps://cgit.kde.org/peruse.git/A comic book reader, actively developed by Dan Leinir
PhoneKDEhttps://cgit.kde.org/plasma-phone-components.git/tree/dialerUsed to be developed by Martin Klapetek, no activity now
SettingsKDEhttps://cgit.kde.org/plasma-settings.git/Seems to have had commits in recent past
SpaceBarKDEhttps://cgit.kde.org/spacebar.git/An SMS application, used to be developed by Martin Klapetek, no activity now
Take ScreenshotKDEhttps://github.com/plasma-apps/screenshotappA basic screenshot tool by Bhushan Shah, currently does not work due to upstream problems, a patch is pending
TerminalKDEhttps://github.com/notmart/qmltermwidgetQML and mobile friendly terminal, Elv13 + Marco Martin as maintainer
vPlayer3rd partyKirigami interface by JBBgameich: https://github.com/JBBgameich/kirigami-videoplayerInterface needs to be upstreamed?
Audacious3rd partyUsed to showcase XWayland
ChessGNOME
ChromiumGoogle
FirefoxMozilla

Thoughts

  • Halium and postmarketOS actively improve device support, so on the device side we seemingly only need to improve distribution packaging
  • Plasma and KWin are actively developed, so to improve the interface, we need to work on Plasma Phone components
  • The basic application set (core functionality) needs work
  • Currently, mobile-specific development is only done by Bhushan Shah and Marco Martin!
  • There is an old repository on cgit: https://cgit.kde.org/plasma-mobile-design-docs.git/, which describes interface ideas. As far as I remember, the vision of the user interface of Plasma Mobile is still not completed, so before someone could work on the phone shell, VDG input is needed
  • @bshah supports the idea of Plasma Mobile tasks being proposed to GSoC and promised to come up with important ones tomorrow. GSoC is a nice way to get work done, but for this to succeed, we need mentors.

Perhaps for the camera, we could use Kamoso? It uses Kirigami and is developed by @apol, who does Discover.

apol added a comment.Jan 19 2018, 9:37 PM

Also any application that now is targetting Android should be there too: kstars, minuet, kalgebra, KDE Connect...

What is offered at the moment is purely arbitrary, we should make sure that any application that is available on Neon is available on the phone.

Another interesting fact is that packaging-wise any snap and flatpak that builds the right architecture should work:
https://twitter.com/AleixPol/status/917071293261975552 (note that ATM flathub builds arm and aarch64 by default, including the KDE Runtime)
https://twitter.com/kdecommunity/status/917305668792709121

IlyaBizyaev added a comment.EditedJan 19 2018, 9:41 PM

I also think about apps that do not target Android but would fit well on mobile, e.g. KTimer. In my opinion, packaging all apps that could run on Plasma Mobile for it would help raise community's internal interest and also showcase more projects to the public.

IlyaBizyaev added a comment.EditedJan 21 2018, 10:21 AM

@PureTryOut I copied a list of devices with screen working, where should we point testers for installation instructions?
EDIT: this page seems nice: https://wiki.postmarketos.org/wiki/Installation_guide

For completeness repeating what was said on Telegram, yes that installation guide will do. We also have https://wiki.postmarketos.org/wiki/Plasma_Mobile for Plasma Mobile specific, but the former will do nicely. I assume most people understand they need to choose "plasma-mobile" when promped for a UI choice.