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:
2026-08-26 17:19:30 +12:00
parent a7d204f241
commit b0c95b9e78
31 changed files with 1673 additions and 72 deletions
+44
View File
@@ -0,0 +1,44 @@
cmake_minimum_required(VERSION 3.20)
if(NOT TARGET Qt6::Qml)
project(NebulaApplications LANGUAGES CXX)
find_package(Qt6 6.4 REQUIRED COMPONENTS Core Gui Qml)
qt_standard_project_setup(REQUIRES 6.4)
endif()
qt_add_library(NebulaApplications STATIC)
qt_add_qml_module(NebulaApplications
URI Nebula.Applications
VERSION 1.0
RESOURCE_PREFIX /qt/qml
SOURCES
DesktopEntry.hpp
DesktopEntry.cpp
ApplicationModel.hpp
ApplicationModel.cpp
ApplicationFilterModel.hpp
ApplicationFilterModel.cpp
ApplicationService.hpp
ApplicationService.cpp
)
target_include_directories(NebulaApplications
PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}"
)
target_link_libraries(NebulaApplications
PUBLIC
Qt6::Core
Qt6::Gui
Qt6::Qml
)
set_target_properties(NebulaApplications PROPERTIES
AUTOMOC ON
)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(NebulaApplications PRIVATE -Wall -Wextra)
endif()