Hi,

You're right to some degree that lipstick does have too many responsibilities 
at present, and that some splitting would be a good idea.

<jolla hat on>
We have not been working on any of this at the present time as we are focusing 
on stabilization and performance in order to launch our first device (and 
initial software) this year.
<jolla hat off>

Main reason for these changes is to achieve better stability. I understand that time is now precious for Jolla and this kind of architectural change is adding lots of effort, but we try to improve the stability in longer timespan. Also, making this kind of changes takes always a bit time and I think it won't be ready before first Jolla device ships. Without knowing your future plans, I think it could also benefit you later.

After some thought and talking to some of the other guys on our side (Vesa 
Halttunen, Mikko Harju) I think your proposal for splitting is a little too 
vigorous, as speaking from experience, splitting the compositor and the home 
screen interaction leads to some very difficult design issues, even to the 
point of making some things impossible. If you were familiar with the N9 
architecture (mcompositor, meegotouch-home, and meegotouch-systemui), it had 
splitting done similarly to how you describe (compositor separate from home 
screen, dialogs/lockscreen/etc split away from those in systemui) and we wasted 
considerable development effort for minimal gain to satisfy what were some 
quite tame design requirements.
I am aware of design challenges with N9 architecture, but the split we are proposing has three main differences compared to that one. * Status bar (meegotouch-systemui) is not separate process as in N9 so there is need to do constantly composition from multiple sources * Wayland architecture as such also promotes independent rendering of applications. This will remove bunch of problems that were present with the X architecture * We are still able to modify both compositor and home screen because the architecture on both sides is clean and designed for modern devices with legacy in mind

I think the split we are proposing is a step back, but it covers the features that were lacking in X-based architecture.

This kind of change will limit the general purpose usability of the architecture, but we are targeting embedded devices. The embedded devices, as we know them now, are all following this same logic for the split. If we want to support some totally new approach to UI or prototype things, we can always take a step back and implement everything in one application. The lipstick split that we are proposing is usable for both approaches.

That having been said: it is our opinion that lipstick as-is does too much. My 
personal proposal would be to introduce a new component with similar design to 
lipstick, let's call it mascara. This would be responsible for parts of the 
system UI that do not comprise of anything directly home related, like most 
dialogs (SIM pin code entry, bluetooth pairing, mobile data connection, etc, 
etc, etc).

The architecture there would be fairly simple: it would offer up a library 
consisting of a dbus service with the capability to invoke all these different 
dialogs and functionality, an implementation would then take this library, 
write a simple C++ application surrounding it, and insert QML to offer up all 
the necessary functionality. Quite like the existing lipstick design.
I think this split would also add value. The compositor / home screen combination will become more clean and all these important, but small components would be put into one basket.
This then results in significantly less baggage being put into one basket, and 
should at least be a good initial step towards your desired result of 
stability, while retaining the ease of customisation/prototyping that we're 
very happy about with the current approach.
I agree that it would be a good step into same direction.

However, I think both home screen and 'mascara' are components that need to be customized. Our thinking is that compositor is something that does not need to be customized for every device, and hence platform should provide support for separating it and solid baseline version of it. If the compositor will be customized, then it will be some totally new device class or new UI concept, that would then need to a new version of compositor for that device class / UI concept. Also, current architecture would be possible with this change.

Regards,
 -- Mikko Hurskainen

On 24.10.2013 21:37, Robin Burchell wrote:
Hello,

You're right to some degree that lipstick does have too many responsibilities 
at present, and that some splitting would be a good idea.

<jolla hat on>
We have not been working on any of this at the present time as we are focusing 
on stabilization and performance in order to launch our first device (and 
initial software) this year.
<jolla hat off>

After some thought and talking to some of the other guys on our side (Vesa 
Halttunen, Mikko Harju) I think your proposal for splitting is a little too 
vigorous, as speaking from experience, splitting the compositor and the home 
screen interaction leads to some very difficult design issues, even to the 
point of making some things impossible. If you were familiar with the N9 
architecture (mcompositor, meegotouch-home, and meegotouch-systemui), it had 
splitting done similarly to how you describe (compositor separate from home 
screen, dialogs/lockscreen/etc split away from those in systemui) and we wasted 
considerable development effort for minimal gain to satisfy what were some 
quite tame design requirements.

That having been said: it is our opinion that lipstick as-is does too much. My 
personal proposal would be to introduce a new component with similar design to 
lipstick, let's call it mascara. This would be responsible for parts of the 
system UI that do not comprise of anything directly home related, like most 
dialogs (SIM pin code entry, bluetooth pairing, mobile data connection, etc, 
etc, etc).

The architecture there would be fairly simple: it would offer up a library 
consisting of a dbus service with the capability to invoke all these different 
dialogs and functionality, an implementation would then take this library, 
write a simple C++ application surrounding it, and insert QML to offer up all 
the necessary functionality. Quite like the existing lipstick design.

This then results in significantly less baggage being put into one basket, and 
should at least be a good initial step towards your desired result of 
stability, while retaining the ease of customisation/prototyping that we're 
very happy about with the current approach.

BR,
Robin (on behalf of the Jolla home screen/compositor guys)


On 24. okt. 2013, at 14:07, Mikko Hurskainen <mikko.hurskai...@nomovok.com> 
wrote:
Dear all,
We have been thinking to split up the lipstick based home screen into separate 
processes. Currently a crash in one of the components will bring the whole 
stack down. Also currently QPA Wayland plugin does not seem to be able to 
reconnect to compositor after a crash and thus applications and home 
application need to be restarted.

The components would be:
- Compositor process: Wayland compositor tasks and interacting with other 
system components
- Home process: Desktop and the applications menu
- Task switcher: separate application that can switch between tasks
- Lock screen: handles the lock screen

The home process, task switcher and lock screen are handled as special 
applications by the compositor. The special applications have a different rules 
what comes to window ordering etc compared to normal applications.

The lipstick library would be also be splitted into two parts. One that handles 
the home screen related functionality and one that handles compositor related 
functionality. The base lipstick would look same as it did before wayland 
transition. It can be then used to implement home screen related functionality 
in any application in the system.

We are currently evaluating this and hoping to get comments on design. It would 
be interesting to know whether this kind of design would be beneficial also for 
someone else and whether there are some cases it would fit or not fit.

With Best Regards,
-- Mikko Hurskainen








Reply via email to