Contributing

If you would like to support and become part of the Plasma Active team, you can use the following list of open tasks as inspiration. Please pick one of these tasks, for questions, you can always get in touch with us.

To add a new task, please email the mailing list (active at kde.org) with a subject starting with "Task Proposal:" and which includes a User Story, Why This Is Important, Proposed Implementation and Task Details section as used on this page for tasks. After discussion on the mailing list, it can be moved here. The unclaimed tasks section is a great place to start looking for inspiration.

If you start working on of the tasks below, please let the rest of the team know by email or on irc so that we may coordinate. While each task has an "owner" everyone is welcome and encouraged to participate in the development of solutions for the task.

On Screen Keyboard

Status: 90% complete

User Story

When there is a text edit area on screen, it should be possible to enter new text and edit the text that is there using the on screen keyboard. Touching a text edit area brings up the keyboard. It should be possible to use multiple keyboard layouts; access numbers, symbols and accented letters; avoid covering the editing area, etc.

Why this is important

Without a keyboard, text input is impossible; the better the keyboard is, the better the text input experience will be and given that this is an extremely common use case is an important item.

Proposed implementation

Write a keyboard layout description file to QML converter which would, using the Maliit keyboard layout descriptions and the C++ library to access them the Maliit project has written. This would give us a set of QML files that can be loaded directly into a keyboard shell, and this QML should use Plasma Qt Components

Write a Maliit plugin that loads these QML files and provides integration with things such as switching layouts, etc.

This will get us support for non-Qt apps, edit area avoidance, ability for apps to request specific layout types and other advanced features for "free". It will add a Maliit dependency, however. The Maliit developers have been extremely supportive and open so far, and we are holding monthly meetings with them.

Task Details

Owned by: Aaron Seigo

Effort Estimation: 4

Task dependencies: None.

Unify suspend and shutdown with lock screen

Status: 90% complete

Implementation complete and working. Needs improved artwork for widgets on lock screen, power button applet on panel should be removed and screenlocker branch needs merging into master of kde-workspace.

User Story

When finished using the device (which may have been 5 minutes or hours of usage), it is desirable to put the device to sleep to save the battery. In certain cases, such as when a download or other background process is ongoing and / or the time between usage is expected to be short, then it is desirable to just lock device rather than sleep it. If usage is not expected for quite some time (e.g. overnight or longer) where charging will not be possible, it can be more desirable to actually turn the device off altogether and so a shutdown option is required. A single, elegant interface for these functions will be provided.

Why this is important

Lock, sleep and shutdown are critical end-of-usage modes that people in different scenarios will need. Making these features easy to get to and easy to understand and use will make every end-of-use experience more pleasant.

Proposed implementation

On the QML based, lock screen add two sliders: one for Sleep and one for Shutdown. The sleep slider will appear in the top left and shutdown in the top right, aligned vertically with the clock.

Upon locking, the sleep slider will start moving slowly on its own towards the "activate" position. User intervention will stop the slider, thereby cancelling the automatic sleep. This also gives the user feedback as to how long until the device actually sleeps when it locks (e.g. automatically after lack of usage)

The Shutdown slider will only trigger if the user actually interacts with it. If the user starts sliding it, the auto-sleep will be cancelled.

This would also be a good opportunity to move the lock screen into ksmserver itself, getting rid of the separate daemon that exists only for locking.

Task Details

Owned by: Aaron Seigo

Effort Estimation: 2

Task dependencies: None.

Centralized account management

Status: 0% complete

Not started.

User Story

A big portion of the user life on the tablet is about interacting with online services, being sharing photos on flickr, twitter or syncing the contents of his activities, files and contacts to an owncloud instance.

Why this is important

Many different applications will need access to the same services, so a separate user authentication is not acceptable, a centralized framework is needed.

Proposed implementation

Write a generic framework to load authentication plugins to web services. it will need to be able to load a library for authentication, either c++ or js and a qml file for the authentication form, integrate with the systemsettings app

Write a couple of modules for at least owncloud and a couple of other services such as twitter or flickr

Write a couple of SLC plugins at least for sharing photos and text* document the process for third party developers to add other services in the supported ones

This will get support for a central authentication system, shared between any app that needs to connect to a service, slc, owncloud

Task Details

Owned by: Marco Martin

Effort Estimation: 4

Task dependencies: None, some other tasks depend from this one.

eBook Reader

Status: 0% Completed

User Story

Jimmi has a number of eBooks in PDF and ePub format on his Plasma Active device. He opens the eBook reader which presents a list of books on the system. Selecting on the books, he can then start reading, starting from where
he last left off. An elegant touch UI for navigating between pages, jumping chapters, jumping back to the collection, etc. is offered.

Why this is important

Reading on a tablet is a key activity. Aside from web content, eBooks are very popular. It is the primary use of many tablets on the market right now, in fact. Okular is a good reader, but the UI is really clumsy for a touch device.

Proposed implementation

A QML UI for Okular which takes the core display and reader of Okular and adds a Nepomuk backed collection browser along with a touch-appropriate UI for reading: swipe to change pages and a menu button to bring up additional options such as "return to collection" or "go to table of contents".

Task Details

Owned by: Aaron Seigo

Effort Estimation: 5

Task dependencies: None.

File handling, browsing and tagging

Status: 25% completed

File browser application has been written and is working.

User Story

The user will use a centralized application (with some pieces of it available also as a component, in order to have it embedded in other apps) when he want to tag, move,delete, copy to usb a large group of files, regardless of the file type

Why this is important

Right now Plasma active doesn't have a file manager, is possible to access only to images or arbitrary files by adding them to the current activity, not possible to delete them or copy to/from an usb drive

Proposed implementation

Finish eventual missing points of the nepomuk data models

export a public component for filesystem browsing (will be used only for removable drives)

write a simple application to control the metadata model, to do queries (facet style browsing) by:

date

name

rating

associated activity

functions to individually or mass-tagging, rating,deleting

simple explorer of removable drives, in the same app, same (even tough limited, partially disabled) ui

when browsing the local storage a "send to removable drive" option will be there, maybe with slc, when browsing a removable drive there will be an option to send to local storage, both either individually or en mass

move parts worth to be shared in an import to be able to include parts of it in other applications (ie semantic file selection dialog)

Current file browser fixes

"tools" becames "filters"

device buttons/drop targets in the toolbar

just arrow instead of breadcrumb

new tag should be clickable and createan empty tag

empty tags should be visible

make tags look like engraved

on drag events there shoule be images attached to the cursor

long tap selects a single icon

delete tag: drag to the bin

Task Details

Owned by: Marco Martin

Effort Estimation: 5

Task dependencies: to Authentication framework for SLC aspects.

Office document viewing enhancements

Status: ? complete

User Story

Joe uses his tablet to go through his office documents on the move. On a tablet he reads text documents, goes through some slides, and views his spreadsheet calculations. This makes it easier for him to utilize travel time before going to office.

Why this is important

A working office document viewer is an essential component for any mobile device, and is even more important in case of a tablet. People will love being able to access their office documents on the tablet.

Proposed implementation

Calligra Active is already capable of opening text documents, presentations, and spreadsheets. All that is missing is stuff like Find, Pinch zoom, selections, SLC integration etc. Such common features will be added.

Task Details

Plasma Media Center

Status: 90% complete

User Story

Listening favorite music, watching video in free time and viewing memorable days pictures with friends or family is a part of day to day activity of almost all users.

Why this is important

Since media (Music, Video, Picture) is part of life. Bringing Plasma Media Center on tablet will attract different categories of users like casual users, artists, etc. It will allow user to switch to any of the mode i.e Music, Video, Picture within an application quickly.

Proposed implementation

Beta version of Plasma Media Center is already working for Desktop. it has integration with PA data models too. There is a need to do packaging of PMC for OBS to perform testing on tablet. While testing PMC, we can improve as well as add the missing features (such as SLC, etc).

Privacy and data security

User Story

Alice works for Letni Micro Devices, and she is afraid of corporate espionage. The documents she is dealing with need to be available only to her and away from any prying eyes. She needs to have an option to encrypt the sensitive data in activities related to her job.

Her husband Bob is a shrink and he has to keep the patient data confidential. He creates an activity per patient, and only unlocks the data related to the patient he currently is seeing.

Their kid Malkolm sometimes uses the device and is able to access only public activities.

Why this is important

Privacy is important in corporate environment for obvious reasons. It is also important at home where you might need to hide certain activities like gift shopping from other house mates.

Proposed implementation

Encrypt activity data using fuse/encfs. Limit the meta-data that is stored in nepomuk or encrypt it.

Task Details

Owned by: Ivan Cukic

Effort Estimation: 4

Task dependencies: None

Audio/Video chat and IM integration in PA

Status: 50% completed

User Story

Peter and Mary are grandparents but life far away from their grandchildren. They want to "see" them more often and know that their grandchildren own computers with webcams. With some simple taps they are able to make a video and audio connection.

Why is this important

Communication is a crucial feature for todays mobile devices. A lot of the tablets have at least one webcam.

Proposed implementation

I'll get in contact with the KDE Telepathy team and see what needs to be done to get. First step would be to package the current KDE Telepathy (KTp) framework and see what hardware is already working.

A next step would be the integration of the KTp framework and infrastructure in the PA system and probably SLC system (although this might be a separate task).

A last thing or the main thing would then be the implementation of a simple audio/video chat system for KTp.

Task details

Owned by: Martin Klapetek

Effort Estimation: 5

Task dependencies: Centralized account management

Support more (touch) devices

Status: ? completed

User Story

1. A developer gets interested in the project and works on hip PC to develop
new app/utility/core functionality but has a limited number of expensive
devices to deploy and test on.

2. A user sees a blog post, youtube video of Plasma Active and thinks he
would like to use it, again he is limited to a couple of devices

Why this is important

Currently we only have a couple of touch devices supported slowing the rate of adoption by developers and users. More devices will bring developers and users to the project

Proposed implementation

Add more documentation to describe the porting process to the POV and Archos tablets to allow others to port to similar devices.

Utilise the targets being worked on in the Mer project as Plasma Active targets.

Samsung Galaxy S II

Application Human Interface Guidelines

Status: 10% completed

User Story

A UI for an Active App is to be designed and implemented. The creator(s) want(s) to create a UI that fits with the rest of Plasma Active with as little effort as possible.

Why this is important

Having HIGs for Active Apps has advantages for three groups of people:

Designers, because they can use elements that work well and are consistent with other apps in their designs instead of having to re-invent the wheel

Developers, because they can use existing components and frameworks to implement the designs

Users, because they can transfer knowledge between applications and can use proven elements

Proposed implementation

Create HIGs for

general aspects of Active UIs

specific widgets and components

Task Details

Owned by: Thomas Pfeiffer

Effort Estimation: 4

Task dependencies: None

Base system working Mer setup

Status: ?% completed

User Story

A complete system as much as device ready as possible, besed on Mer

Why this is important

As MeeGo is discontinued, this poses some maintainance problems (and credibility even) for instance on the old version of X11 there KWin doesn't support OpenGL compositing. Mer is the community continuation of MeeGo and, combined with the support from the Mer community, our best path forward.

Proposed implementation

Fix the regressions that are in mer, some depending from high level layers some more system related:

integration with systemd

nepomuk initial db issues

changed multitouch api

partial rewrite of network management ui

missing qtmediakit, qml connman bindings

identify remaining issues

Task Details

Owned by: Marco Martin

Effort Estimation: 5

Task dependencies: None

Web Reading: sync and share bookmarks

Status: 0% completed

User Story

Laura is a knowledge worker who sits in front of her desktop at the office for most of the day. She's an avid social networker, and checks on new messages a few times a day. Laura's friends often post links to interesting articles, which Laura would like to read later on her tablet.

When Laura grabs her tablet on the couch, or on the train, she finds a list of interesting webpages which she wanted to read later.

Why is this important?

Webbrowsing is one of the primary tasks using tablets. Its workflow should be as good as possible, and it should be easy to do lighter reading on the tablet, without device borders getting in the way.

Proposed implementation

Integrate webbrowser with one or more online bookmark sync service, or at least make it easy to "send URLs to the tablet" when working from another computer.

ownCloud is a nice starting point, ownCloud is going to use the MozillaSync API, which is cool since it also gets us support for Firefox and a few other browsers by default.

Also look at Rekonq's bookmark sync, implement that as well.

Task Details

Owned by:

Possible mentor: Sebastian Kügler

Effort Estimation: 3

Task dependencies: None, possibly "Centralized account management"

Unclaimed

System Integration

Basic gestures working well on all platforms (including a local pinch-to-zoom): make multitouch in qt working on system

3G working and tested

Internationalization

Screen rotation : not for pa3: can't be done cleanly without wayland

Device shell

First boot config wizard effort 2 for the infrastructure, modules:

based on the system settings application:, same modules with prev/next buttons

Time/Timezone (current ui should be ok)

Wireless (only with the applet?) 4

Accounts (when ready, depends from account management)

Password device (if wanted)

Media

Taking pictures with web camera (kamoso does that already, just make it more touch friendly)

sharing photos to web services (kipi can do that; SLC integration?)

Maps and navigation (GPS) (Marble QML)

App management

App for updates

easy app browsing and installation

Developer Support

SDK, good API documenation with examples about how to use components (in

Javascript Setup

Launcher

Phone functionality

Decide on hardware requirements and reference device

Ability to call contacts

SMS/MMS

Braindumps

SLC

Better artwork: connect icon is very odd

Not matter what is touched, Connect is always shown: probable touch screen bug: the touch event arrives always in the same coordinates unless a connected usb mouse is moved-> actually old qgraphicsview bug: occurs also in the desktop taskbar group menus, partially fixed

Bigger target invoking popup, and implement dragable

Show title of URI to be operated on in the context menu

Window Management

OpenGL ES on MeeGO

Application workflow

Not obvious where apps are

Visual feedback between time when activity is selected and when the activity appears (so we know something is actually happening)

Window Strip

Window sorting

find solution to get at methods Martin added to kdelibs/*/kworkspace MRU