Luna Next
Overview
In short Luna Next is a approach to recreate the webOS user interface based on future ready technologies like Qt5 and Wayland. The Luna UI as part of the Open webOS project caused us a lot of problems in porting it to other devices without a lot of rework so we decided to recreate the UI completely. Recreation doesn't mean we're dropping all the code. We will reuse code as wherever possible to reduce the amount of work.
We're doing the work in a agile mine and have a board at https://trello.com/board/luna-next/51d856a66054b8c353008a10#
If you want to help us with the vision please contact us!
Features
Required:
- card-style window management
- notifications
- gesture area
- system menu
- launcher bar
- (new) device menu
Optional:
- card stacking
- (stacked/multi-layer) wave launcher video
- WidgetDeck
- Minimize
- Side-by-side card view Side-by-side card view sample
Components
The following components are part of the Luna Next stack:
- https://github.com/webOS-ports/luna-next
- https://github.com/webOS-ports/luna-webappmanager
- https://github.com/webOS-ports/luna-sysmgr-common
- based on https://github.com/openwebos/luna-sysmgr-common but ported to qt5 and extended with more things from luna-sysmgr
Supported web API's
Overal application framework is cordova (https://cordova.apache.org/).
webOS specific
- Luna Service 2 API
- PalmSystem DOM node
- properties:
- launchParams (string)
- locale (string)
- localeRegion (string)
- timeFormat (string)
- timeZone (string)
- identifier (string)
- version (string)
- methods:
- paste()
- copiedToClipboard()
- pastedFromClipboard()
- shutdown()
- activate()
- deactivate()
- stagePreparing()
- stageReady()
- show()
- hide()
- keyboardShow()
- keyboardHide()
- properties:
- db8
- Connection Manager
- System Properties
- System Services
- Activity Manager
Standard web API's
- Fullscreen (webkit)
- Gelocation (webkit)
- Video (webkit / html5)
- Audio (webkit / html5)
- WebSockets (webkit / html5)
- Offline Applications (webkit / html5)
- File API (webkit / html5)
- IndexedDB (webkit???)
- Web Notifications (webkit)
Development on a desktop machine
Requirements
A standard Qt 5.1 SDK installation is sufficient, as long as QtCreator and the QML toolchain is present.
Working with the QML description of Luna Next
First, get a copy of the luna-next repository: git clone https://github.com/webOS-ports/luna-next
Then, simply open the qmlproject file in the src/compositor/qml subdirectory. You should be able to run the QML description of luna-next out of the box.
Expect results
The QML description of luna-next does not include the C++ module which lets it communicate with other components of WebOS. Do not expect any realistic result for the answers provided by the "LunaNext" QML module, as this desktop environment actually uses a fake stub LunaNext module for testing purposes.