Add desktop app service and VM dev session tooling
Introduces a new `core/applications` QML/C++ module (`Nebula.Applications`) to discover `.desktop` entries, expose filterable application models, and launch installed apps safely from the shell. The desktop launcher now uses real installed apps with themed icon loading and fallback glyphs, adds output-aware surface sizing via `OutputTracker`, and wires in image/icon providers. It also adds VMware-focused Sway/shell wrapper scripts, updates Sway config/session env defaults, and refreshes README docs to document the new development flow and Desktop 0.1 behavior.
This commit is contained in:
@@ -6,12 +6,19 @@ import Nebula.UI
|
||||
Window {
|
||||
id: root
|
||||
|
||||
readonly property int outputWidth: OutputTracker.width > 0
|
||||
? OutputTracker.width
|
||||
: (screen && screen.width > 0 ? screen.width : Screen.width)
|
||||
readonly property int outputHeight: OutputTracker.height > 0
|
||||
? OutputTracker.height
|
||||
: (screen && screen.height > 0 ? screen.height : Screen.height)
|
||||
|
||||
title: qsTr("Nebula Desktop")
|
||||
color: "transparent"
|
||||
flags: Qt.FramelessWindowHint | Qt.WindowDoesNotAcceptFocus
|
||||
visible: true
|
||||
width: Screen.width
|
||||
height: Screen.height
|
||||
width: outputWidth
|
||||
height: outputHeight
|
||||
|
||||
LayerShell.Window.scope: "nebula-desktop"
|
||||
LayerShell.Window.layer: LayerShell.Window.LayerBackground
|
||||
|
||||
@@ -6,12 +6,19 @@ import Nebula.UI
|
||||
Window {
|
||||
id: root
|
||||
|
||||
readonly property int outputWidth: OutputTracker.width > 0
|
||||
? OutputTracker.width
|
||||
: (screen && screen.width > 0 ? screen.width : Screen.width)
|
||||
readonly property int outputHeight: OutputTracker.height > 0
|
||||
? OutputTracker.height
|
||||
: (screen && screen.height > 0 ? screen.height : Screen.height)
|
||||
|
||||
title: qsTr("Nebula Launcher")
|
||||
color: "transparent"
|
||||
flags: Qt.FramelessWindowHint
|
||||
visible: ShellState.launcherOpen || launcher.opacity > 0.01
|
||||
width: Screen.width
|
||||
height: Screen.height - Theme.topBarHeight
|
||||
width: outputWidth
|
||||
height: Math.max(1, outputHeight - Theme.topBarHeight)
|
||||
|
||||
LayerShell.Window.scope: "nebula-launcher"
|
||||
LayerShell.Window.layer: LayerShell.Window.LayerOverlay
|
||||
|
||||
@@ -6,11 +6,15 @@ import Nebula.UI
|
||||
Window {
|
||||
id: root
|
||||
|
||||
readonly property int outputWidth: OutputTracker.width > 0
|
||||
? OutputTracker.width
|
||||
: (screen && screen.width > 0 ? screen.width : Screen.width)
|
||||
|
||||
title: qsTr("Nebula Top Bar")
|
||||
color: "transparent"
|
||||
flags: Qt.FramelessWindowHint | Qt.WindowDoesNotAcceptFocus
|
||||
visible: true
|
||||
width: Screen.width
|
||||
width: outputWidth
|
||||
height: Theme.topBarHeight
|
||||
|
||||
LayerShell.Window.scope: "nebula-topbar"
|
||||
|
||||
Reference in New Issue
Block a user