Add Qt/QML desktop shell and Nebula.UI
Introduce a new production desktop shell at `shells/desktop/shell` built with C++20, Qt Quick/QML, and LayerShellQt, including top bar, launcher, desktop surfaces, shell state, and mock app data. Add the shared `packages/nebula-ui` QML module (theme, controls, focus, icons) and wire it into the shell build. Retire the old GTK/WebKit native host by removing `shells/desktop/native`, move the React shell UI to `shells/desktop/prototype-react` as an archived design reference, and update root/compositor/session documentation to reflect the new Linux-only production architecture and temporary Sway role.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import QtQuick
|
||||
import Nebula.UI
|
||||
|
||||
Row {
|
||||
id: root
|
||||
|
||||
spacing: 2
|
||||
|
||||
// Placeholder system status until native services exist.
|
||||
readonly property int wifiStrength: 3
|
||||
readonly property int volumePercent: 72
|
||||
readonly property int batteryPercent: 84
|
||||
|
||||
NebulaIconButton {
|
||||
id: networkButton
|
||||
label: qsTr("Network connected, Nebula-Net")
|
||||
NebulaIcon {
|
||||
name: "wifi"
|
||||
size: 16
|
||||
color: networkButton.iconColor
|
||||
value: root.wifiStrength
|
||||
}
|
||||
}
|
||||
|
||||
NebulaIconButton {
|
||||
id: volumeButton
|
||||
label: qsTr("Volume %1%").arg(root.volumePercent)
|
||||
NebulaIcon {
|
||||
name: "speaker"
|
||||
size: 16
|
||||
color: volumeButton.iconColor
|
||||
}
|
||||
}
|
||||
|
||||
NebulaIconButton {
|
||||
id: powerButton
|
||||
label: qsTr("Battery %1%").arg(root.batteryPercent)
|
||||
NebulaIcon {
|
||||
name: "battery"
|
||||
size: 16
|
||||
color: powerButton.iconColor
|
||||
value: root.batteryPercent
|
||||
}
|
||||
}
|
||||
|
||||
Clock {}
|
||||
}
|
||||
Reference in New Issue
Block a user