Files
andrew befed8ff96 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.
2026-08-26 16:34:40 +12:00

101 lines
2.3 KiB
QML

pragma Singleton
import QtQuick
QtObject {
readonly property var apps: [
{
id: "files",
name: "Files",
comment: "Browse files and folders",
recent: true,
glyph: "folder",
tint: "#c4a574"
},
{
id: "firefox",
name: "Firefox",
comment: "Web browser",
recent: true,
glyph: "globe",
tint: "#d08a5a"
},
{
id: "terminal",
name: "Terminal",
comment: "Command line",
recent: true,
glyph: "terminal",
tint: "#7eaa8e"
},
{
id: "settings",
name: "Settings",
comment: "System preferences",
recent: false,
glyph: "settings",
tint: "#8e99ab"
},
{
id: "steam",
name: "Steam",
comment: "Games",
recent: true,
glyph: "game",
tint: "#6f8fb8"
},
{
id: "photos",
name: "Photos",
comment: "Pictures and albums",
recent: false,
glyph: "photo",
tint: "#8aa8c4"
},
{
id: "music",
name: "Music",
comment: "Listen and organise",
recent: false,
glyph: "music",
tint: "#b48a9a"
},
{
id: "text-editor",
name: "Text Editor",
comment: "Edit documents",
recent: false,
glyph: "document",
tint: "#9aa7bc"
}
]
readonly property var recents: apps.filter((app) => app.recent)
readonly property var projects: [
{
id: "nebulaos",
name: "NebulaOS",
subtitle: "Repository",
kind: "folder"
},
{
id: "website",
name: "Website",
subtitle: "Project",
kind: "folder"
},
{
id: "session-notes",
name: "Session notes",
subtitle: "Document",
kind: "document"
}
]
readonly property var user: ({
name: "User",
initials: "N"
})
}