(Reorganized into categories)
 
Line 6: Line 6:
 
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.
 
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.
  
= Support for multiple (input-dependent) keyboard layouts =
+
= Shell =
== Status: not started ==
 
  
==User Story==
+
== Support for multiple (input-dependent) keyboard layouts ==
 +
===User Story===
 
When users enter a number using the on-screen keyboard, a keyboard with only numbers offers easier input than a full keyboard. Normal text input needs different keys than terminal input, etc. Users should be presented with the optimal keyboard for the input they make, or at least be able to switch between different layouts.
 
When users enter a number using the on-screen keyboard, a keyboard with only numbers offers easier input than a full keyboard. Normal text input needs different keys than terminal input, etc. Users should be presented with the optimal keyboard for the input they make, or at least be able to switch between different layouts.
 
International keyboard layouts should be available as well.
 
International keyboard layouts should be available as well.
  
==Why this is important==
+
===Why this is important===
 
Typing with an on-screen keyboard is never ideal, but a task-optimized layout helps entering specific kinds of characters a lot. International layouts are essential for any language that makes frequent use of non-ASCII characters.
 
Typing with an on-screen keyboard is never ideal, but a task-optimized layout helps entering specific kinds of characters a lot. International layouts are essential for any language that makes frequent use of non-ASCII characters.
  
==Proposed implementation==
+
===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 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.
 
* Write a Maliit plugin that loads these QML files and provides integration with things such as switching layouts, etc.
Line 22: Line 22:
 
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.
 
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==
+
===Task Details===
 
* Owned by: ?
 
* Owned by: ?
 
* Effort Estimation: ?
 
* Effort Estimation: ?
 
* Task dependencies: None.
 
* Task dependencies: None.
  
= On the fly switching from Desktop to touch screen UI =
+
== On the fly switching from Desktop to touch screen UI ==
== Status: 0% complete ==
+
=== User Story ===
== User Story ==
 
 
Hybrid devices that can act as a tablet or docked in as a lightweight desktop/laptop are going to be more and more common (see Asus transformer or Microsoft Surface).
 
Hybrid devices that can act as a tablet or docked in as a lightweight desktop/laptop are going to be more and more common (see Asus transformer or Microsoft Surface).
 
The attempts to provide a single user interface for the two modes are proven to be suboptimal in one of the two modes (or even both). Ideally the UI should seamlessy morph between a fully desktop and a fully mobile one. While this won't be achievable in the short term, at least a dinamyc morph of all the currently running apps, we can provide a roadmap to achieve this by grades.
 
The attempts to provide a single user interface for the two modes are proven to be suboptimal in one of the two modes (or even both). Ideally the UI should seamlessy morph between a fully desktop and a fully mobile one. While this won't be achievable in the short term, at least a dinamyc morph of all the currently running apps, we can provide a roadmap to achieve this by grades.
  
== Proposed implementation ==
+
=== Proposed implementation ===
 
* At the beginning the switch will be manual: either an app to do that or an icon in the workspace
 
* At the beginning the switch will be manual: either an app to do that or an icon in the workspace
 
* The mouse cursor theme should change dinamically from the completely hidden one to the default one
 
* The mouse cursor theme should change dinamically from the completely hidden one to the default one
Line 44: Line 43:
 
Ideally every application should be able to save their settings in a device specific way.
 
Ideally every application should be able to save their settings in a device specific way.
  
=Centralized account management=
+
==Centralized account management==
==Status: 0% complete==
+
===User Story===
 
 
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.
 
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==
+
===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.
 
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==
+
===Proposed implementation===
 
* Implement a QML UI for the Webaccounts Framework.
 
* Implement a QML UI for the Webaccounts Framework.
 
* 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
 
* 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
Line 61: Line 56:
 
This will get support for a central authentication system, shared between any app that needs to connect to a service, slc, owncloud
 
This will get support for a central authentication system, shared between any app that needs to connect to a service, slc, owncloud
  
==Task Details==
+
===Task Details===
 
* Owned by: ?
 
* Owned by: ?
 
* Effort Estimation: ?
 
* Effort Estimation: ?
 
* Task dependencies: None internal, but depends on Webaccounts
 
* Task dependencies: None internal, but depends on Webaccounts
  
=eBook browser=
+
==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.
 +
 
 +
Malice, an evil psycho corporate spy can't access Alices data by stealing the device from Bob.
 +
 
 +
===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: ?
 +
* Effort Estimation: ?
 +
* Task dependencies: None
 +
 
 +
==Screen rotation==
 +
Marco implemented a screen rotation system (on X11) that basically worked, but still had some problems so it wasn't released with PA4. It should be finished
 +
 
 +
* Owned by: Marco Martin ?
 +
* Effort Estimation: ?
 +
* Task dependencies: None, perhaps Wayland to work well
 +
 
 +
==Yet to explore==
 +
* 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?)
 +
** Accounts (when ready, depends from account management)
 +
** Password device (if wanted)
 +
* ownCloud integration would be interesting; tie in with private cloud
 +
** personal own devices and proprietary cloud bothers corporate IT
 +
** good use of Activities
 +
* KWallet configuation -> passwordless and no questions for access
 +
* Custom titles for widgets, and a way for applets to set custom titles
 +
* Ability to load initial widgets positions with a Javascript (ala Plasma Desktop Scripting)
 +
* Show most used / favorites as first line on first page in Launcher
 +
* Touch friendly login screen for eg touchscreen all-in-one PCs to use (low priority; we have auto-login)
 +
 
 +
===Panel===
 +
* Put application systray icons after status icons
 +
* hardcoded positions of containments (panel containment)
 +
* hardcoded positions of slc and clock (systray)
 +
 
 +
===SLC===
 +
* Bigger target invoking popup, and implement dragable
 +
 
 +
===Window Strip===
 +
* Window sorting
 +
** find solution to get at methods Martin added to kdelibs/*/kworkspace MRU
 +
** Put new windows after the current window
 +
* Sticky windows and moving windows across activities (SLC?)
 +
 
 +
=== Multimedia ===
 +
* Create multimedia activity
 +
* Good touch volume applet
  
==Status: 0% Completed==
+
=Applications=
  
==User Story==
+
==eBook browser==
 +
===User Story===
 
Jimmi has a number of eBooks in PDF and ePub format on his Plasma Active device. He opens the Books application, which presents his ePub and PDF files to him in an easy to navigate and visually pleasing way, e.g. by grouping multiple issues of a periodical or multiple volumes of a book together.
 
Jimmi has a number of eBooks in PDF and ePub format on his Plasma Active device. He opens the Books application, which presents his ePub and PDF files to him in an easy to navigate and visually pleasing way, e.g. by grouping multiple issues of a periodical or multiple volumes of a book together.
  
==Why this is important==
+
===Why this is important===
 
Reading books already works well, Files is not optimized for browsing a collection of books or periodicals.
 
Reading books already works well, Files is not optimized for browsing a collection of books or periodicals.
  
==Proposed implementation==
+
===Proposed implementation===
 
The Books application should offer an UI optimized for browsing books/periodicals/articles instead of just Files with a preselection on PDFs/ePubs.
 
The Books application should offer an UI optimized for browsing books/periodicals/articles instead of just Files with a preselection on PDFs/ePubs.
  
==Task Details==
+
===Task Details===
 
* Owned by: ?
 
* Owned by: ?
 
* Effort Estimation: ?
 
* Effort Estimation: ?
 
* Task dependencies: None.
 
* Task dependencies: None.
  
=Integrate SLC in Calligra Active=
+
==Integrate SLC in Calligra Active==
==Status: ?% complete==
+
===User Story===
==User Story==
 
 
Sarah receives a text document via email. She opens it, reads it, then connects it to an Activity related to the topic and rates it to reflect its importance.
 
Sarah receives a text document via email. She opens it, reads it, then connects it to an Activity related to the topic and rates it to reflect its importance.
  
==Why this is important==
+
===Why this is important===
 
Share/Like/Connect is especially useful for office documents because it can significantly enhance productive use.
 
Share/Like/Connect is especially useful for office documents because it can significantly enhance productive use.
  
==Proposed implementation==
+
===Proposed implementation===
 
Calligra Active still lacks SLC support, so that should be implemented.
 
Calligra Active still lacks SLC support, so that should be implemented.
  
 
Track progress at [[Calligra/Active]]
 
Track progress at [[Calligra/Active]]
  
==Task Details==
+
===Task Details===
 
* Owned by: Shantanu Tushar
 
* Owned by: Shantanu Tushar
 
* Effort Estimation: ?
 
* Effort Estimation: ?
 
* Task dependencies: None
 
* Task dependencies: None
  
=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.
+
==Audio/Video chat and IM integration in PA==
 +
 
 +
===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===
 +
There is currently an SoK project for getting the KTp Active prototype into a usable state, mentored by David Edmundson.
  
Their kid Malkolm sometimes uses the device and is able to access only public activities.
+
===Task details===
 +
* Owned by: David Edmundson
 +
* Effort Estimation: ?
 +
* Task dependencies: Centralized account management
  
Malice, an evil psycho corporate spy can't access Alices data by stealing the device from Bob.
+
==Web Reading: sync and share bookmarks==
  
 +
===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.
  
==Why this is important==
+
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.
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.
 
  
 +
===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==
+
===Proposed implementation===
Encrypt activity data using fuse/encfs. Limit the meta-data that is stored in nepomuk or encrypt it.
+
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.  
  
==Task Details==
+
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.
* Owned by: ?
 
* Effort Estimation: ?
 
* Task dependencies: None
 
  
=Audio/Video chat and IM integration in PA=
+
Also look at Rekonq's bookmark sync, implement that as well.
==Status: ?% completed==
 
  
==User Story==
+
===Task Details===
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.
+
* Owned by:
 +
* Possible mentor: Sebastian Kügler
 +
* Effort Estimation: 3
 +
* Task dependencies: None, possibly "Centralized account management"
  
 +
==Yet to explore==
 +
* 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 (works already with Bodega?)
  
==Why is this important==
+
=== Social Networks ===
Communication is a crucial feature for todays mobile devices. A lot of the tablets have at least one webcam.
+
* touch-friendly configuration for PIM (email, contacts, events.)
 +
* touch-friendly setup of Facebook via Akonadi
 +
* touch-friendly setup of Google via Akonadi
 +
* Akonadi model for QML plasmoids
 +
* Plasma QML widgets for
 +
** Contacts
 +
** Messages
 +
** Events
 +
 
 +
=== Active Browser ===
 +
* search in page
 +
* save-as menus (e.g. for images)
 +
* "back" repositions page to last viewed position
 +
* plugin support -> 100% depends from qtwebkit i.e. flash tries to work, but doesn't really ;)
 +
* display ssl status
 +
* accepting non-verifiable SSL certs
 +
* connect downloaded files to the activity (nepomuk bug)
  
 +
=== Image viewer ===
 +
* possibility to browse sd cards/download/upload images
 +
* search ui
 +
* albums?
  
==Proposed implementation==
+
=System Level=
There is currently an SoK project for getting the KTp Active prototype into a usable state, mentored by David Edmundson.
 
  
==Task details==
 
* Owned by: David Edmundson
 
* Effort Estimation: ?
 
* Task dependencies: Centralized account management
 
  
=Support more (touch) devices=
+
==Support more (touch) devices==
==Status: ? completed==
 
  
==User Story==
+
===User Story===
  
 
1. A developer gets interested in the project and works on hip PC to develop
 
1. A developer gets interested in the project and works on hip PC to develop
Line 156: Line 243:
 
would like to use it, again he is limited to a couple of devices
 
would like to use it, again he is limited to a couple of devices
  
 
+
===Why this is important===
==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
 
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==
+
===Proposed implementation===
 
Add more documentation to describe the porting process to the POV and Archos tablets to allow others to port to similar devices.
 
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.
 
Utilise the targets being worked on in the Mer project as Plasma Active targets.
  
==Task Details==
+
===Task Details===
 
* Owned by: Martin Brook (vgrade)
 
* Owned by: Martin Brook (vgrade)
 
* Effort Estimation: ?
 
* Effort Estimation: ?
 
* Task dependencies: None, maybe some seed hardware
 
* Task dependencies: None, maybe some seed hardware
  
=Application Human Interface Guidelines=
+
=Developer Support=
==Status: 10% completed==
+
 
 +
==Application Human Interface Guidelines==
  
==User Story==
+
===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.
 
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===
==Why this is important==
 
  
 
Having HIGs for Active Apps has advantages for three groups of people:
 
Having HIGs for Active Apps has advantages for three groups of people:
Line 184: Line 270:
 
* Users, because they can transfer knowledge between applications and can use proven elements
 
* Users, because they can transfer knowledge between applications and can use proven elements
  
==Proposed implementation==
+
===Proposed implementation===
 
Create HIGs for  
 
Create HIGs for  
 
* general aspects of Active UIs
 
* general aspects of Active UIs
 
* specific widgets and components
 
* specific widgets and components
  
==Task Details==
+
===Task Details===
 
* Owned by: Thomas Pfeiffer
 
* Owned by: Thomas Pfeiffer
* Effort Estimation: 4
+
* Effort Estimation: ?
 
* Task dependencies: None
 
* Task dependencies: None
  
=Web Reading: sync and share bookmarks=
+
==Yet to explore==
==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=
 
==Screen rotation==
 
Marco implemented a screen rotation system (on X11) that basically worked, but still had some problems so it wasn't released with PA4. It should be finished
 
 
 
* Owned by: Marco Martin ?
 
* Effort Estimation: ?
 
* Task dependencies: None, perhaps Wayland to work well
 
 
 
==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?)
 
** 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 (works already with Bodega?)
 
   
 
==Developer Support==
 
 
* SDK, good API documenation with examples about how to use components (in  
 
* SDK, good API documenation with examples about how to use components (in  
 
progress)
 
progress)
  
 
+
=Phone functionality=
==Enterprise special needs==
 
* ownCloud integration would be interesting; tie in with private cloud
 
** personal own devices and proprietary cloud bothers corporate IT
 
** good use of Activities
 
 
 
=Unexplored=
 
==Default Configuration==
 
* KWallet configuation -> passwordless and no questions for access
 
 
 
==Activity screen==
 
* Custom titles for widgets, and a way for applets to set custom titles
 
 
 
==Panel==
 
* Put application systray icons after status icons
 
* hardcoded positions of containments (panel containment)
 
* hardcoded positions of slc and clock (systray)
 
 
 
==Javascript Setup==
 
* Ability to load initial widgets positions with a Javascript (ala Plasma Desktop Scripting)
 
 
 
==Launcher==
 
* Show most used / favorites as first line on first page
 
 
 
==Phone functionality==
 
 
* Decide on hardware requirements and reference device
 
* Decide on hardware requirements and reference device
 
* Ability to call contacts
 
* Ability to call contacts
 
* SMS/MMS
 
* SMS/MMS
 
=Braindumps=
 
==SLC==
 
* Bigger target invoking popup, and implement dragable
 
 
==Window Strip==
 
* Window sorting
 
** find solution to get at methods Martin added to kdelibs/*/kworkspace MRU
 
** Put new windows after the current window
 
* Sticky windows and moving windows across activities (SLC?)
 
 
== Active Browser ==
 
* search in page
 
* save-as menus (e.g. for images)
 
* "back" repositions page to last viewed position
 
* plugin support -> 100% depends from qtwebkit i.e. flash tries to work, but doesn't really ;)
 
* display ssl status
 
* accepting non-verifiable SSL certs
 
* connect downloaded files to the activity (nepomuk bug)
 
 
== Image viewer ==
 
* possibility to browse sd cards/download/upload images
 
* search ui
 
* albums?
 
 
== Multimedia ==
 
* Create multimedia activity
 
* Good touch volume applet
 
* Webcam (kamoso?)
 
 
== Social Networks ==
 
* touch-friendly configuration for PIM (email, contacts, events.)
 
* touch-friendly setup of Facebook via Akonadi
 
* touch-friendly setup of Google via Akonadi
 
* Akonadi model for QML plasmoids
 
* Plasma QML widgets for
 
** Contacts
 
** Messages
 
** Events
 
 
==KDM==
 
* Touch friendly login screen for eg touchscreen all-in-one PCs to use (low priority; we have auto-login)
 
 
= Artwork =
 
  
 
= Documentation =
 
= Documentation =
Line 323: Line 293:
 
* Create user docs
 
* Create user docs
  
= Support and Testing =
 
  
 
=Goals and Larger Ideas for Future Releases=
 
=Goals and Larger Ideas for Future Releases=

Latest revision as of 17:54, 20 August 2013

Contents

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.

Shell

Support for multiple (input-dependent) keyboard layouts

User Story

When users enter a number using the on-screen keyboard, a keyboard with only numbers offers easier input than a full keyboard. Normal text input needs different keys than terminal input, etc. Users should be presented with the optimal keyboard for the input they make, or at least be able to switch between different layouts. International keyboard layouts should be available as well.

Why this is important

Typing with an on-screen keyboard is never ideal, but a task-optimized layout helps entering specific kinds of characters a lot. International layouts are essential for any language that makes frequent use of non-ASCII characters.

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: ?
  • Effort Estimation: ?
  • Task dependencies: None.

On the fly switching from Desktop to touch screen UI

User Story

Hybrid devices that can act as a tablet or docked in as a lightweight desktop/laptop are going to be more and more common (see Asus transformer or Microsoft Surface). The attempts to provide a single user interface for the two modes are proven to be suboptimal in one of the two modes (or even both). Ideally the UI should seamlessy morph between a fully desktop and a fully mobile one. While this won't be achievable in the short term, at least a dinamyc morph of all the currently running apps, we can provide a roadmap to achieve this by grades.

Proposed implementation

  • At the beginning the switch will be manual: either an app to do that or an icon in the workspace
  • The mouse cursor theme should change dinamically from the completely hidden one to the default one
  • The splash screen should be launched again, since is going to be a long procedure
  • The plasma-device shell and the kwinactive windowmanager should be stopped
  • plasma-desktop and normal kwin(with different settings) should be started

At this point probably applications won't be able to adapt, so the currently open applications will stay there unchanged. Something that can be done is showing a different list of applications in the menus of plasma-desktop and plasma-device.

Ideally every application should be able to save their settings in a device specific way.

Centralized account management

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

  • Implement a QML UI for the Webaccounts Framework.
  • 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: ?
  • Effort Estimation: ?
  • Task dependencies: None internal, but depends on Webaccounts

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.

Malice, an evil psycho corporate spy can't access Alices data by stealing the device from Bob.

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: ?
  • Effort Estimation: ?
  • Task dependencies: None

Screen rotation

Marco implemented a screen rotation system (on X11) that basically worked, but still had some problems so it wasn't released with PA4. It should be finished

  • Owned by: Marco Martin ?
  • Effort Estimation: ?
  • Task dependencies: None, perhaps Wayland to work well

Yet to explore

  • 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?)
    • Accounts (when ready, depends from account management)
    • Password device (if wanted)
  • ownCloud integration would be interesting; tie in with private cloud
    • personal own devices and proprietary cloud bothers corporate IT
    • good use of Activities
  • KWallet configuation -> passwordless and no questions for access
  • Custom titles for widgets, and a way for applets to set custom titles
  • Ability to load initial widgets positions with a Javascript (ala Plasma Desktop Scripting)
  • Show most used / favorites as first line on first page in Launcher
  • Touch friendly login screen for eg touchscreen all-in-one PCs to use (low priority; we have auto-login)

Panel

  • Put application systray icons after status icons
  • hardcoded positions of containments (panel containment)
  • hardcoded positions of slc and clock (systray)

SLC

  • Bigger target invoking popup, and implement dragable

Window Strip

  • Window sorting
    • find solution to get at methods Martin added to kdelibs/*/kworkspace MRU
    • Put new windows after the current window
  • Sticky windows and moving windows across activities (SLC?)

Multimedia

  • Create multimedia activity
  • Good touch volume applet

Applications

eBook browser

User Story

Jimmi has a number of eBooks in PDF and ePub format on his Plasma Active device. He opens the Books application, which presents his ePub and PDF files to him in an easy to navigate and visually pleasing way, e.g. by grouping multiple issues of a periodical or multiple volumes of a book together.

Why this is important

Reading books already works well, Files is not optimized for browsing a collection of books or periodicals.

Proposed implementation

The Books application should offer an UI optimized for browsing books/periodicals/articles instead of just Files with a preselection on PDFs/ePubs.

Task Details

  • Owned by: ?
  • Effort Estimation: ?
  • Task dependencies: None.

Integrate SLC in Calligra Active

User Story

Sarah receives a text document via email. She opens it, reads it, then connects it to an Activity related to the topic and rates it to reflect its importance.

Why this is important

Share/Like/Connect is especially useful for office documents because it can significantly enhance productive use.

Proposed implementation

Calligra Active still lacks SLC support, so that should be implemented.

Track progress at Calligra/Active

Task Details

  • Owned by: Shantanu Tushar
  • Effort Estimation: ?
  • Task dependencies: None


Audio/Video chat and IM integration in PA

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

There is currently an SoK project for getting the KTp Active prototype into a usable state, mentored by David Edmundson.

Task details

  • Owned by: David Edmundson
  • Effort Estimation: ?
  • Task dependencies: Centralized account management

Web Reading: sync and share bookmarks

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"

Yet to explore

  • 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 (works already with Bodega?)

Social Networks

  • touch-friendly configuration for PIM (email, contacts, events.)
  • touch-friendly setup of Facebook via Akonadi
  • touch-friendly setup of Google via Akonadi
  • Akonadi model for QML plasmoids
  • Plasma QML widgets for
    • Contacts
    • Messages
    • Events

Active Browser

  • search in page
  • save-as menus (e.g. for images)
  • "back" repositions page to last viewed position
  • plugin support -> 100% depends from qtwebkit i.e. flash tries to work, but doesn't really ;)
  • display ssl status
  • accepting non-verifiable SSL certs
  • connect downloaded files to the activity (nepomuk bug)

Image viewer

  • possibility to browse sd cards/download/upload images
  • search ui
  • albums?

System Level

Support more (touch) devices

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.

Task Details

  • Owned by: Martin Brook (vgrade)
  • Effort Estimation: ?
  • Task dependencies: None, maybe some seed hardware

Developer Support

Application Human Interface Guidelines

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: ?
  • Task dependencies: None

Yet to explore

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

progress)

Phone functionality

  • Decide on hardware requirements and reference device
  • Ability to call contacts
  • SMS/MMS

Documentation

  • Improve installation docs
  • Create user docs


Goals and Larger Ideas for Future Releases

  • Geolocation
    • Document and complete API
    • Use geolocation in more widgets
    • Cache geolocation
  • libplasma2 & QSceneGraph port
  • test GLES backend for kwin
  • DBusmenu implementation in QML
  • KToolBar replacement in QML (using a KActionCollection)
  • KXmlGui actions access in QML
  • KConfig integration with ownCloud
  • Continue/finish porting KDE applications to the mobile build profile (mostly removing deprecated calls)

This page was last edited on 20 August 2013, at 17:54. Content is available under Creative Commons License SA 4.0 unless otherwise noted.