diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index dfe0770..0000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 14ed924..0000000 --- a/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -Bigscreen/build/ -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 24d7cc6..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] -} diff --git a/Bigscreen/.gitignore b/Bigscreen/.gitignore deleted file mode 100644 index 567609b..0000000 --- a/Bigscreen/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build/ diff --git a/Bigscreen/CMakeLists.txt b/Bigscreen/CMakeLists.txt deleted file mode 100644 index 24863f3..0000000 --- a/Bigscreen/CMakeLists.txt +++ /dev/null @@ -1,108 +0,0 @@ -cmake_minimum_required(VERSION 3.21) - -project(NebulaBigscreen VERSION 0.1.0 LANGUAGES CXX) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) - -find_package(Qt6 6.5 REQUIRED COMPONENTS Quick Gui) -find_package(SDL3 CONFIG QUIET) - -if(NOT SDL3_FOUND) - include(FetchContent) - set(SDL_SHARED ON CACHE BOOL "" FORCE) - set(SDL_STATIC OFF CACHE BOOL "" FORCE) - set(SDL_TEST_LIBRARY OFF CACHE BOOL "" FORCE) - set(SDL_TESTS OFF CACHE BOOL "" FORCE) - set(SDL_EXAMPLES OFF CACHE BOOL "" FORCE) - - FetchContent_Declare(SDL3 - URL https://github.com/libsdl-org/SDL/releases/download/release-3.2.30/SDL3-3.2.30.tar.gz - DOWNLOAD_EXTRACT_TIMESTAMP TRUE - ) - FetchContent_MakeAvailable(SDL3) -endif() - -if(TARGET SDL3::SDL3) - set(BIGSCREEN_SDL_TARGET SDL3::SDL3) -elseif(TARGET SDL3::SDL3-shared) - set(BIGSCREEN_SDL_TARGET SDL3::SDL3-shared) -else() - message(FATAL_ERROR "SDL3 target was not found after package lookup/fetch") -endif() - -qt_standard_project_setup(REQUIRES 6.5) -qt_policy(SET QTP0004 NEW) - -set(BIGSCREEN_QML_FILES - qml/Main.qml - qml/ShellWindow.qml - qml/Theme.qml - qml/components/NebulaBackground.qml - qml/components/TopBar.qml - qml/components/AppTile.qml - qml/components/TileRail.qml - qml/components/PowerOverlay.qml - qml/views/HomeView.qml - qml/views/LibraryView.qml - qml/views/SettingsView.qml -) - -set_source_files_properties(qml/Theme.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE) - -qt_add_executable(nebula-bigscreen - src/main.cpp - src/ControllerInputService.cpp - src/ControllerInputService.h - src/InputRouter.cpp - src/InputRouter.h -) - -qt_add_qml_module(nebula-bigscreen - URI Nebula.Bigscreen - VERSION 1.0 - QML_FILES ${BIGSCREEN_QML_FILES} -) - -target_link_libraries(nebula-bigscreen - PRIVATE - Qt6::Quick - Qt6::Gui - ${BIGSCREEN_SDL_TARGET} -) - -if(WIN32) - add_custom_command( - TARGET nebula-bigscreen - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ - $ - COMMAND_EXPAND_LISTS - COMMENT "Copying runtime DLLs next to nebula-bigscreen" - ) -endif() - -if(WIN32) - set_target_properties(nebula-bigscreen PROPERTIES WIN32_EXECUTABLE TRUE) - - get_target_property(_qmake_executable Qt6::qmake IMPORTED_LOCATION) - get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY) - find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}" REQUIRED) - - add_custom_command( - TARGET nebula-bigscreen - POST_BUILD - COMMAND "${WINDEPLOYQT_EXECUTABLE}" - $<$:--debug> - $<$>:--release> - --qmldir "${CMAKE_CURRENT_SOURCE_DIR}/qml" - "$" - COMMENT "Deploying Qt runtime DLLs next to nebula-bigscreen" - ) -endif() - -install(TARGETS nebula-bigscreen RUNTIME DESTINATION bin) diff --git a/Bigscreen/README-Bigscreen.md b/Bigscreen/README-Bigscreen.md deleted file mode 100644 index feddc27..0000000 --- a/Bigscreen/README-Bigscreen.md +++ /dev/null @@ -1,407 +0,0 @@ -# NebulaOS Bigscreen Mode - -Bigscreen Mode is the controller-first console interface for NebulaOS. - -It is designed for gaming PCs, handhelds, TVs, and couch-based setups where the primary input is a controller rather than a mouse and keyboard. - -Bigscreen Mode should feel like the main dashboard of a console, but with the freedom of a Linux PC underneath. - ---- - -## Purpose - -Bigscreen Mode exists to make NebulaOS feel native on gaming hardware. - -It provides: - -* A controller-first home screen -* A game and app library -* System settings -* Power controls -* Profile status and quick user actions (not OS login) -* Store and launcher integrations -* A fullscreen interface for TV and handheld use - -Account selection, sign-in, and first-time setup live on the **OS login screen** (see [Plan](#plan)), not inside Bigscreen. - -The goal is not to copy Steam Big Picture or Xbox exactly. - -The goal is to create an open, polished, flexible OS shell that feels good to use with a controller. - ---- - -## Current Features - -The current v0 **Tauri prototype** includes: - -* Lock screen with PIN keypad (prototype only; not part of the target Qt shell) -* Controller and keyboard input support -* Home dashboard -* Library stub -* Settings stub -* Power overlay -* Controller focus management -* Keyboard mirror controls for development -* Xbox-inspired horizontal tile layout -* Dynamic nebula background stack -* Smooth focus transitions -* Shared top bar with profile and time display - ---- - -## Input Model - -Bigscreen Mode uses unified input actions instead of raw button handling. - -Core actions: - -```text -up -down -left -right -accept -back -menu -``` - -These actions can come from: - -* Controller D-pad -* Controller left stick -* Controller face buttons -* Keyboard arrow keys -* Enter -* Escape -* Backspace - -This keeps the UI consistent across controllers, keyboards, and future input devices. - ---- - -## Controller Mapping - -```text -D-pad / left stick: Navigate -A: Accept -B: Back -Start: Menu -``` - -Future mappings may include: - -```text -LB / RB: Switch tabs or rails -LT / RT: Page navigation -Guide button: Nebula overlay -Y: Search -X: Context action -``` - ---- - -## Design Goals - -Bigscreen Mode should be: - -* Fast -* Clear -* Controller-first -* Readable from a distance -* Comfortable on TVs -* Comfortable on handheld screens -* Smooth and polished -* Visually distinct from desktop Linux -* Easy to navigate without a mouse - ---- - -## UI Structure - -Bigscreen Mode is planned around the following major areas: - -```text -Bigscreen Mode (after OS login) -├── Home -├── Library -├── Store -├── Apps -├── Settings -├── Downloads -├── Notifications -├── Power Menu -└── Profile Menu -``` - -OS-level (Desktop Mode / KDE work, not inside Bigscreen): - -```text -NebulaOS login (SDDM) -├── Controller-friendly account picker -├── Sign in -├── Session choice (Bigscreen vs Desktop) -└── First-run / account setup when needed -``` - ---- - -## Home - -The Home screen is the main landing area. - -It should include: - -* Recent games -* Installed games -* Featured apps -* Continue playing section -* Quick settings -* Profile status -* Time and network status -* Download status -* Power menu access - -The current prototype uses a horizontal app tile rail with Library, Settings, and Power tiles. - ---- - -## Library - -The Library is the game and app management area. - -Initial v0 scope: - -* Display mock entries -* Display locally added games -* Launch local executables -* Store metadata locally -* Support controller navigation -* Separate games from apps - -Future scope: - -* Steam integration -* GOG integration -* Epic Games integration -* Proton and Wine configuration -* Per-game settings -* Save sync support -* Mod manager integration -* Metadata and artwork scraping - ---- - -## Settings - -Settings should expose system controls in a controller-friendly way. - -Planned categories: - -* Network -* Bluetooth -* Audio -* Display -* Controller -* Storage -* Signed-in user (read-only; account changes via OS login / Desktop) -* Appearance -* Updates -* System -* Desktop Mode - -The settings UI should avoid feeling like a desktop control panel. -It should feel like a native console settings app. - ---- - -## Login and sessions - -Bigscreen Mode does **not** own account creation, authentication, or session selection. - -Those belong to a **controller-friendly NebulaOS login experience** built as part of [Desktop Mode](../Desktop/README-Desktop.md): KDE Plasma customization, SDDM theming, and session entries for Nebula Bigscreen and Nebula Desktop. Users pick an account and session at boot; Bigscreen starts already signed in. - -The Tauri v0 **lock screen with PIN keypad** (`1234` in the prototype) was only for early UI testing. It will not ship in the Qt shell. If the OS needs a lock or suspend screen later, that should stay at the session/login layer or use the desktop stack—not a second login flow inside Bigscreen. - -Bigscreen may still show **who is signed in** (avatar, name) and offer **Log out** / **Switch user** via the power menu, which returns to the OS login screen. - ---- - -## Plan - -NebulaOS is no longer “Bigscreen first, desktop later.” **Desktop Mode is being built in parallel** on KDE Plasma, and that work unlocks a proper OS login so Bigscreen can stay a game shell. - -### Phase 1 — Desktop Mode foundation (in progress) - -Handled in `Desktop/`, not in Bigscreen: - -* KDE Plasma theme and look-and-feel -* Nebula visual identity on panels, widgets, and dialogs -* Repo-based apply/reload workflow for Plasma assets - -### Phase 2 — OS login and sessions - -Also primarily Desktop / system integration: - -* Controller-friendly **SDDM** login theme -* Account picker and sign-in usable with a gamepad -* Session entries: **Nebula Bigscreen** and **Nebula Desktop** -* First-run or account setup on the login/desktop side when needed -* Log out / switch user returns here - -Bigscreen does not implement PIN keypads, local account linking, or onboarding wizards for new users. - -### Phase 3 — Bigscreen Qt shell - -* Native Qt/QML shell (see [Technology](#technology)) -* Home, Library, Settings, Power menu -* Controller-first navigation and focus model -* Launch games and apps into the signed-in user session -* Switch to Desktop Mode; restart shell; no embedded login - -### Phase 4 — Library and integrations - -* Local library database and scanners -* Store and launcher integrations -* Proton/Wine and per-game settings (later) - -### Prototype note - -The Tauri/HTML v0 under `Bigscreen/` remains useful for layout and input experiments until the Qt shell replaces it. Treat its lock screen and onboarding flows as **throwaway**, not roadmap deliverables. - ---- - -## Power Menu - -The power overlay should support: - -* Sleep -* Restart -* Shut down -* Log out -* Switch to Desktop Mode -* Return to login -* Restart Bigscreen shell - -Current v0 scope includes a power overlay that traps focus and closes with Back. - ---- - -## Technology - -Bigscreen Mode is a **native Qt application**, not a web shell. - -Target stack: - -* Qt 6 -* Qt Quick (QML) for the controller-first UI -* C++ for system integration, library scanning, and Nebula Core adapters -* Qt input APIs for keyboard and gamepad navigation -* CMake for builds - -The repo still contains an early **Tauri/HTML v0 prototype** under `Bigscreen/` (HTML, CSS, JavaScript, and a Rust backend). That prototype validated layout, focus flow, and input actions. New Bigscreen work targets the Qt shell; the Tauri stack is legacy and will be removed as the Qt app reaches parity. - ---- - -## Run - -### Qt shell - -From `Bigscreen/` (Qt 6.5+ with Quick modules installed): - -```bash -cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -cmake --build build --config Debug -``` - -On Windows, the build runs `windeployqt` automatically so Qt DLLs sit next to the executable. If you see missing `Qt6*.dll` errors, rebuild once from `Bigscreen/`: - -```powershell -cmake --build build --config Debug -``` - -From the repo root instead: - -```bash -cmake -S Bigscreen -B Bigscreen/build -DCMAKE_BUILD_TYPE=Debug -cmake --build Bigscreen/build --config Debug -``` - -Run the binary: - -```bash -# Linux (from Bigscreen/) -./build/nebula-bigscreen - -# Windows (from Bigscreen/) -build\Debug\nebula-bigscreen.exe -``` - -To run without redeploying, you can instead put Qt on `PATH` for that session (adjust the kit path if needed): - -```powershell -$env:PATH = "C:\Qt\6.10.2\msvc2022_64\bin;" + $env:PATH -.\build\Debug\nebula-bigscreen.exe -``` - -**Controls (v0):** arrow keys to navigate, Enter to accept, Escape/Backspace for back, Menu key (or Start when mapped later) for the power overlay. Gamepad mapping is planned next. - -### Legacy Tauri prototype - -To run the existing v0 web prototype while migration is in progress, from `Bigscreen/`: - -```bash -npm install -npm run dev -``` - ---- - -## Build - -### Qt shell - -Same CMake workflow as above with `-DCMAKE_BUILD_TYPE=Release`. - -### Legacy Tauri prototype - -```bash -npm run build -``` - -Run from `Bigscreen/`. - ---- - -## Development Notes - -Bigscreen Mode is moving to Qt for a native fullscreen shell, lower overhead, and tighter OS integration (sessions, launching, power controls). - -Login, SDDM, and Plasma session work happen under **Desktop Mode**; Bigscreen assumes the user already chose the Bigscreen session at the OS login screen. - -The Tauri prototype was developed primarily on Windows for fast UI iteration. Qt development should be validated on both Windows and Linux early. - -Linux testing is still required for: - -* Fullscreen behavior -* Session integration -* Controller detection -* System commands -* App launching -* Proton and Wine workflows -* Power controls - ---- - -## Success Criteria - -Bigscreen Mode is successful when: - -* The entire interface works with a controller -* Users arrive signed in via the OS login screen (Bigscreen does not gate access) -* Users can navigate Home -* Users can open Library -* Users can open Settings -* Users can launch games or apps -* Users can access power controls -* Users can switch to Desktop Mode -* The UI feels like a native OS shell, not a web app diff --git a/Bigscreen/qml/Main.qml b/Bigscreen/qml/Main.qml deleted file mode 100644 index 8659126..0000000 --- a/Bigscreen/qml/Main.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick - -ShellWindow { -} diff --git a/Bigscreen/qml/ShellWindow.qml b/Bigscreen/qml/ShellWindow.qml deleted file mode 100644 index 892d8c7..0000000 --- a/Bigscreen/qml/ShellWindow.qml +++ /dev/null @@ -1,140 +0,0 @@ -import QtQuick -import QtQuick.Controls -import Nebula.Bigscreen - -ApplicationWindow { - id: window - - width: 1280 - height: 720 - visible: true - title: "Nebula Bigscreen" - color: Theme.backgroundDeep - - property string currentView: "home" - property bool powerOverlayVisible: false - property string signedInUser: "Player" - - NebulaBackground { - anchors.fill: parent - } - - Column { - anchors.fill: parent - spacing: 0 - - TopBar { - id: topBar - width: parent.width - userName: window.signedInUser - accentFocus: contentLoader.item && contentLoader.item.accentFocus !== undefined - ? contentLoader.item.accentFocus() - : 0 - } - - Loader { - id: contentLoader - width: parent.width - height: parent.height - topBar.height - sourceComponent: viewComponentFor(window.currentView) - } - } - - Connections { - target: contentLoader.item - ignoreUnknownSignals: true - function onNavigate(route) { - window.onChildNavigate(route) - } - function onGoBack() { - window.onChildGoBack() - } - } - - PowerOverlay { - id: powerOverlay - visible: window.powerOverlayVisible - z: 10 - - onDismissed: window.powerOverlayVisible = false - onActionChosen: function(actionId) { - console.log("Power action:", actionId) - window.powerOverlayVisible = false - } - } - - Connections { - target: InputRouter - function onActionTriggered(action) { - if (window.powerOverlayVisible) { - window.handlePowerInput(action) - return - } - if (action === 7) { - window.powerOverlayVisible = true - return - } - if (contentLoader.item && contentLoader.item.handleInput) { - contentLoader.item.handleInput(action) - } - } - } - - Component { - id: homeComponent - HomeView {} - } - - Component { - id: libraryComponent - LibraryView {} - } - - Component { - id: settingsComponent - SettingsView {} - } - - function viewComponentFor(viewId) { - switch (viewId) { - case "library": - return libraryComponent - case "settings": - return settingsComponent - default: - return homeComponent - } - } - - function onChildNavigate(route) { - if (route === "power") { - window.powerOverlayVisible = true - return - } - window.currentView = route - } - - function onChildGoBack() { - window.currentView = "home" - } - - function handlePowerInput(action) { - switch (action) { - case 1: - powerOverlay.moveFocus(-1) - break - case 2: - powerOverlay.moveFocus(1) - break - case 5: - powerOverlay.activateFocused() - break - case 6: - window.powerOverlayVisible = false - break - default: - break - } - } - -} diff --git a/Bigscreen/qml/Theme.qml b/Bigscreen/qml/Theme.qml deleted file mode 100644 index ecf1265..0000000 --- a/Bigscreen/qml/Theme.qml +++ /dev/null @@ -1,45 +0,0 @@ -pragma Singleton -import QtQuick - -QtObject { - readonly property color backgroundDeep: "#050A17" - readonly property color backgroundMid: "#111321" - readonly property color backgroundPanel: "#181A2E" - - readonly property color accentCyan: "#4FD8FF" - readonly property color accentPurple: "#6F5CFF" - readonly property color accentLine: "#30325A" - - readonly property color textPrimary: "#F2F7FF" - readonly property color textMuted: "#A8BDD8" - - readonly property int tileWidth: 280 - readonly property int tileHeight: 160 - readonly property int tileGap: 20 - readonly property int topBarHeight: 72 - readonly property int focusScaleDuration: 180 - - readonly property real tileFocusScale: 1.06 - readonly property real tilePressScale: 0.96 - - readonly property font brandFont: Qt.font({ - family: "Segoe UI", - pixelSize: 28, - weight: Font.DemiBold - }) - readonly property font titleFont: Qt.font({ - family: "Segoe UI", - pixelSize: 22, - weight: Font.DemiBold - }) - readonly property font bodyFont: Qt.font({ - family: "Segoe UI", - pixelSize: 16, - weight: Font.Normal - }) - readonly property font metaFont: Qt.font({ - family: "Segoe UI", - pixelSize: 13, - weight: Font.Normal - }) -} diff --git a/Bigscreen/qml/components/AppTile.qml b/Bigscreen/qml/components/AppTile.qml deleted file mode 100644 index 658b1a4..0000000 --- a/Bigscreen/qml/components/AppTile.qml +++ /dev/null @@ -1,89 +0,0 @@ -import QtQuick -import Nebula.Bigscreen - -Item { - id: root - - property string label: "" - property string meta: "" - property string iconText: "" - property bool focused: false - property bool pressed: false - - signal activated() - - implicitWidth: Theme.tileWidth - implicitHeight: Theme.tileHeight - - scale: pressed ? Theme.tilePressScale : (focused ? Theme.tileFocusScale : 1.0) - - Behavior on scale { - NumberAnimation { duration: Theme.focusScaleDuration; easing.type: Easing.OutCubic } - } - - Rectangle { - id: card - anchors.fill: parent - radius: 14 - color: Theme.backgroundPanel - border.width: focused ? 2 : 1 - border.color: focused ? Theme.accentCyan : Theme.accentLine - - Rectangle { - anchors.fill: parent - radius: parent.radius - visible: focused - gradient: Gradient { - GradientStop { position: 0.0; color: "#224FD8FF" } - GradientStop { position: 1.0; color: "transparent" } - } - } - - Column { - anchors.fill: parent - anchors.margins: 20 - spacing: 10 - - Text { - text: root.iconText - font.pixelSize: 36 - } - - Text { - text: root.label - font: Theme.titleFont - color: Theme.textPrimary - } - - Text { - text: root.meta - font: Theme.metaFont - color: Theme.textMuted - } - } - - Rectangle { - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.margins: 12 - height: 3 - radius: 2 - color: Theme.accentCyan - opacity: focused ? 1.0 : 0.0 - - Behavior on opacity { - NumberAnimation { duration: Theme.focusScaleDuration } - } - } - } - - MouseArea { - anchors.fill: parent - hoverEnabled: true - onClicked: root.activated() - onPressed: root.pressed = true - onReleased: root.pressed = false - onCanceled: root.pressed = false - } -} diff --git a/Bigscreen/qml/components/NebulaBackground.qml b/Bigscreen/qml/components/NebulaBackground.qml deleted file mode 100644 index 82180e8..0000000 --- a/Bigscreen/qml/components/NebulaBackground.qml +++ /dev/null @@ -1,53 +0,0 @@ -import QtQuick - -Item { - id: root - anchors.fill: parent - - Rectangle { - anchors.fill: parent - gradient: Gradient { - GradientStop { position: 0.0; color: "#050A17" } - GradientStop { position: 0.55; color: "#0E1630" } - GradientStop { position: 1.0; color: "#1A1342" } - } - } - - Repeater { - model: 48 - Rectangle { - width: (index % 5) + 1 - height: width - radius: width / 2 - color: index % 3 === 0 ? "#88FFFFFF" : "#44B8D4FF" - x: (index * 137) % root.width - y: (index * 89) % root.height - opacity: 0.35 + (index % 7) * 0.05 - - SequentialAnimation on opacity { - loops: Animation.Infinite - running: true - NumberAnimation { - from: 0.2 - to: 0.7 - duration: 2000 + (index % 5) * 400 - } - NumberAnimation { - from: 0.7 - to: 0.2 - duration: 2000 + (index % 5) * 400 - } - } - } - } - - Rectangle { - anchors.fill: parent - opacity: 0.35 - gradient: Gradient { - orientation: Gradient.Vertical - GradientStop { position: 0.0; color: "transparent" } - GradientStop { position: 1.0; color: "#CC000000" } - } - } -} diff --git a/Bigscreen/qml/components/PowerOverlay.qml b/Bigscreen/qml/components/PowerOverlay.qml deleted file mode 100644 index c510269..0000000 --- a/Bigscreen/qml/components/PowerOverlay.qml +++ /dev/null @@ -1,92 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import Nebula.Bigscreen - -Rectangle { - id: root - - property int focusIndex: 0 - readonly property var actions: [ - { label: "Sleep", meta: "Suspend system" }, - { label: "Restart", meta: "Reboot NebulaOS" }, - { label: "Shut down", meta: "Power off" }, - { label: "Log out", meta: "Return to login" }, - { label: "Desktop Mode", meta: "Switch session" }, - { label: "Close", meta: "Back to Home" } - ] - - signal dismissed() - signal actionChosen(string actionId) - - anchors.fill: parent - color: "#CC050A17" - - Keys.onPressed: function(event) { event.accepted = true } - - ColumnLayout { - anchors.centerIn: parent - width: Math.min(parent.width - 80, 520) - spacing: 12 - - Text { - text: "Power" - font: Theme.brandFont - color: Theme.textPrimary - Layout.alignment: Qt.AlignHCenter - } - - Repeater { - model: root.actions - - Rectangle { - Layout.fillWidth: true - height: 56 - radius: 10 - color: index === root.focusIndex ? "#22304A66" : Theme.backgroundPanel - border.color: index === root.focusIndex ? Theme.accentCyan : Theme.accentLine - border.width: index === root.focusIndex ? 2 : 1 - - RowLayout { - anchors.fill: parent - anchors.margins: 16 - - Text { - text: modelData.label - font: Theme.titleFont - color: Theme.textPrimary - } - - Item { Layout.fillWidth: true } - - Text { - text: modelData.meta - font: Theme.metaFont - color: Theme.textMuted - } - } - - MouseArea { - anchors.fill: parent - onClicked: { - root.focusIndex = index - root.activateFocused() - } - } - } - } - } - - function moveFocus(delta) { - focusIndex = Math.max(0, Math.min(actions.length - 1, focusIndex + delta)) - } - - function activateFocused() { - const labels = ["sleep", "restart", "shutdown", "logout", "desktop", "close"] - const id = labels[focusIndex] - if (id === "close") { - dismissed() - } else { - actionChosen(id) - } - } -} diff --git a/Bigscreen/qml/components/TileRail.qml b/Bigscreen/qml/components/TileRail.qml deleted file mode 100644 index 3433b90..0000000 --- a/Bigscreen/qml/components/TileRail.qml +++ /dev/null @@ -1,52 +0,0 @@ -import QtQuick -import Nebula.Bigscreen - -Item { - id: root - - property var tiles: [] - property int focusIndex: 0 - property real accentFocus: 0 - - signal tileActivated(int index) - - implicitHeight: Theme.tileHeight + 24 - - onFocusIndexChanged: root.accentFocus = focusIndex / Math.max(1, tiles.length - 1) - - Row { - id: rail - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 40 - spacing: Theme.tileGap - - Repeater { - model: root.tiles - - AppTile { - label: modelData.label - meta: modelData.meta - iconText: modelData.icon - focused: index === root.focusIndex - - onActivated: root.tileActivated(index) - } - } - } - - function moveFocus(delta) { - if (tiles.length === 0) { - return - } - const next = Math.max(0, Math.min(tiles.length - 1, focusIndex + delta)) - focusIndex = next - } - - function activateFocused() { - if (tiles.length === 0) { - return - } - tileActivated(focusIndex) - } -} diff --git a/Bigscreen/qml/components/TopBar.qml b/Bigscreen/qml/components/TopBar.qml deleted file mode 100644 index c8abf84..0000000 --- a/Bigscreen/qml/components/TopBar.qml +++ /dev/null @@ -1,80 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import Nebula.Bigscreen - -Item { - id: root - - property string userName: "Player" - property real accentFocus: 0 - - implicitHeight: Theme.topBarHeight - - RowLayout { - anchors.fill: parent - anchors.leftMargin: 40 - anchors.rightMargin: 40 - spacing: 16 - - Text { - text: "Nebula OS" - font: Theme.brandFont - color: Theme.textPrimary - style: Text.Outline - styleColor: Theme.accentCyan - Layout.alignment: Qt.AlignVCenter - } - - Item { Layout.fillWidth: true } - - RowLayout { - spacing: 14 - Layout.alignment: Qt.AlignVCenter - - Rectangle { - width: 36 - height: 36 - radius: 18 - color: Theme.backgroundPanel - border.color: Theme.accentCyan - border.width: 2 - - Text { - anchors.centerIn: parent - text: root.userName.length > 0 ? root.userName.charAt(0).toUpperCase() : "?" - font: Theme.titleFont - color: Theme.textPrimary - } - } - - Text { - id: clockLabel - font: Theme.bodyFont - color: Theme.textMuted - } - } - } - - Rectangle { - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.leftMargin: 40 + root.accentFocus * 320 - width: 120 - height: 2 - radius: 1 - color: Theme.accentCyan - opacity: 0.85 - - Behavior on anchors.leftMargin { - NumberAnimation { duration: Theme.focusScaleDuration; easing.type: Easing.OutCubic } - } - } - - Timer { - interval: 1000 - running: true - repeat: true - triggeredOnStart: true - onTriggered: clockLabel.text = Qt.formatTime(new Date(), "hh:mm AP") - } -} diff --git a/Bigscreen/qml/views/HomeView.qml b/Bigscreen/qml/views/HomeView.qml deleted file mode 100644 index ecdd307..0000000 --- a/Bigscreen/qml/views/HomeView.qml +++ /dev/null @@ -1,62 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import Nebula.Bigscreen - -ColumnLayout { - id: root - - property var homeTiles: [ - { label: "Library", meta: "Games and apps", icon: "📚", route: "library" }, - { label: "Settings", meta: "System controls", icon: "⚙", route: "settings" }, - { label: "Power", meta: "Sleep and sessions", icon: "⏻", route: "power" } - ] - - signal navigate(string route) - - spacing: 28 - - Text { - text: "Home" - font: Theme.brandFont - color: Theme.textPrimary - Layout.leftMargin: 40 - } - - TileRail { - id: rail - Layout.fillWidth: true - tiles: root.homeTiles - - onTileActivated: function(index) { - const route = root.homeTiles[index].route - if (route === "power") { - root.navigate("power") - } else { - root.navigate(route) - } - } - } - - function handleInput(action) { - switch (action) { - case 3: - rail.moveFocus(-1) - break - case 4: - rail.moveFocus(1) - break - case 5: - rail.activateFocused() - break - case 6: - root.navigate("power") - break - default: - break - } - } - - function accentFocus() { - return rail.accentFocus - } -} diff --git a/Bigscreen/qml/views/LibraryView.qml b/Bigscreen/qml/views/LibraryView.qml deleted file mode 100644 index 8229ff3..0000000 --- a/Bigscreen/qml/views/LibraryView.qml +++ /dev/null @@ -1,101 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import Nebula.Bigscreen - -ColumnLayout { - id: root - - signal goBack() - - readonly property var entries: [ - { title: "Nebula Demo", meta: "Local • Ready", icon: "🎮" }, - { title: "Retro Runner", meta: "Wine • Installed", icon: "👾" }, - { title: "Media Hub", meta: "App • Installed", icon: "🎬" } - ] - - property int focusIndex: 0 - property string statusText: "Mock entries for v0 — scanners and launchers come later." - - spacing: 20 - - Text { - text: "Library" - font: Theme.brandFont - color: Theme.textPrimary - Layout.leftMargin: 40 - } - - Text { - text: root.statusText - font: Theme.metaFont - color: Theme.textMuted - Layout.leftMargin: 40 - Layout.bottomMargin: 8 - } - - ListView { - id: list - Layout.fillWidth: true - Layout.fillHeight: true - Layout.leftMargin: 40 - Layout.rightMargin: 40 - clip: true - spacing: 12 - model: root.entries - - delegate: Rectangle { - width: list.width - height: 72 - radius: 12 - color: index === root.focusIndex ? "#22304A66" : Theme.backgroundPanel - border.color: index === root.focusIndex ? Theme.accentCyan : Theme.accentLine - border.width: index === root.focusIndex ? 2 : 1 - - RowLayout { - anchors.fill: parent - anchors.margins: 16 - spacing: 16 - - Text { - text: modelData.icon - font.pixelSize: 28 - } - - ColumnLayout { - spacing: 2 - Text { - text: modelData.title - font: Theme.titleFont - color: Theme.textPrimary - } - Text { - text: modelData.meta - font: Theme.metaFont - color: Theme.textMuted - } - } - } - } - } - - function handleInput(action) { - switch (action) { - case 1: - focusIndex = Math.max(0, focusIndex - 1) - list.currentIndex = focusIndex - break - case 2: - focusIndex = Math.min(entries.length - 1, focusIndex + 1) - list.currentIndex = focusIndex - break - case 6: - root.goBack() - break - case 5: - statusText = entries[focusIndex].title + " selected — launcher integration comes later." - break - default: - break - } - } -} diff --git a/Bigscreen/qml/views/SettingsView.qml b/Bigscreen/qml/views/SettingsView.qml deleted file mode 100644 index 036cc71..0000000 --- a/Bigscreen/qml/views/SettingsView.qml +++ /dev/null @@ -1,133 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import Nebula.Bigscreen - -ColumnLayout { - id: root - - signal goBack() - - readonly property var categories: [ - "Network", - "Audio", - "Display", - "Controller", - "System" - ] - - property int categoryIndex: 0 - property int itemIndex: 0 - readonly property int settingCount: 3 - property string statusText: "Choose a setting with Accept. Detailed controls come later." - - spacing: 20 - - Text { - text: "Settings" - font: Theme.brandFont - color: Theme.textPrimary - Layout.leftMargin: 40 - } - - Row { - Layout.leftMargin: 40 - spacing: 16 - - Repeater { - model: root.categories - - Rectangle { - height: 40 - width: categoryLabel.implicitWidth + 24 - radius: 8 - color: index === root.categoryIndex ? "#22304A66" : "transparent" - border.color: index === root.categoryIndex ? Theme.accentCyan : "transparent" - border.width: index === root.categoryIndex ? 2 : 0 - - Text { - id: categoryLabel - anchors.centerIn: parent - text: modelData - font: Theme.bodyFont - color: index === root.categoryIndex ? Theme.accentCyan : Theme.textMuted - } - } - } - } - - Rectangle { - Layout.fillWidth: true - Layout.fillHeight: true - Layout.margins: 40 - radius: 16 - color: Theme.backgroundPanel - border.color: Theme.accentLine - - ColumnLayout { - anchors.fill: parent - anchors.margins: 24 - spacing: 12 - - Text { - text: root.categories[root.categoryIndex] - font: Theme.titleFont - color: Theme.textPrimary - } - - Repeater { - model: root.settingCount - - Rectangle { - Layout.fillWidth: true - height: 52 - radius: 10 - color: index === root.itemIndex ? "#22304A66" : Theme.backgroundMid - border.color: index === root.itemIndex ? Theme.accentCyan : Theme.accentLine - border.width: index === root.itemIndex ? 2 : 1 - - Text { - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 16 - text: "Placeholder setting " + (index + 1) - font: Theme.bodyFont - color: Theme.textPrimary - } - } - } - - Text { - text: root.statusText - font: Theme.metaFont - color: Theme.textMuted - } - } - } - - function handleInput(action) { - switch (action) { - case 3: - categoryIndex = Math.max(0, categoryIndex - 1) - itemIndex = 0 - break - case 4: - categoryIndex = Math.min(categories.length - 1, categoryIndex + 1) - itemIndex = 0 - break - case 1: - itemIndex = Math.max(0, itemIndex - 1) - break - case 2: - itemIndex = Math.min(settingCount - 1, itemIndex + 1) - break - case 6: - root.goBack() - break - case 5: - statusText = categories[categoryIndex] + " setting " + (itemIndex + 1) + " selected." - break - default: - break - } - } -} diff --git a/Bigscreen/src/ControllerInputService.cpp b/Bigscreen/src/ControllerInputService.cpp deleted file mode 100644 index de075fd..0000000 --- a/Bigscreen/src/ControllerInputService.cpp +++ /dev/null @@ -1,301 +0,0 @@ -#include "ControllerInputService.h" - -#include - -#include - -namespace { -constexpr int PollIntervalMs = 8; -constexpr int AxisDeadzone = 4000; -constexpr int AxisReleaseDeadzone = 2000; -constexpr qint64 InitialRepeatDelayMs = 260; -constexpr qint64 RepeatIntervalMs = 95; -constexpr qint64 DiscoveryIntervalMs = 1000; -constexpr int AxisControlOffset = 100; -} - -ControllerInputService::ControllerInputService(InputRouter *router, QObject *parent) - : QObject(parent) - , m_router(router) -{ - if (!m_router) { - qWarning() << "ControllerInputService disabled: missing InputRouter"; - return; - } - - SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1"); - - if (!SDL_InitSubSystem(SDL_INIT_GAMEPAD)) { - qWarning() << "ControllerInputService disabled:" << SDL_GetError(); - return; - } - - m_sdlReady = true; - m_clock.start(); - m_nextDiscoveryMs = DiscoveryIntervalMs; - - discoverControllers(); - - connect(&m_pollTimer, &QTimer::timeout, this, &ControllerInputService::pollEvents); - m_pollTimer.start(PollIntervalMs); -} - -ControllerInputService::~ControllerInputService() -{ - m_pollTimer.stop(); - - for (SDL_Gamepad *gamepad : std::as_const(m_gamepads)) { - SDL_CloseGamepad(gamepad); - } - m_gamepads.clear(); - - if (m_sdlReady) { - SDL_QuitSubSystem(SDL_INIT_GAMEPAD); - } -} - -void ControllerInputService::pollEvents() -{ - if (!m_sdlReady) { - return; - } - - SDL_Event event; - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_EVENT_GAMEPAD_ADDED: - openController(event.gdevice.which); - break; - case SDL_EVENT_GAMEPAD_REMOVED: - closeController(event.gdevice.which); - break; - case SDL_EVENT_GAMEPAD_BUTTON_DOWN: - handleButtonDown(event.gbutton); - break; - case SDL_EVENT_GAMEPAD_AXIS_MOTION: - handleAxisMotion(event.gaxis); - break; - default: - break; - } - } - - const qint64 now = m_clock.elapsed(); - if (now >= m_nextDiscoveryMs) { - discoverControllers(); - m_nextDiscoveryMs = now + DiscoveryIntervalMs; - } - - pollControllerState(); - updateAxisRepeats(); -} - -void ControllerInputService::discoverControllers() -{ - int gamepadCount = 0; - SDL_JoystickID *gamepads = SDL_GetGamepads(&gamepadCount); - if (!gamepads) { - return; - } - - for (int i = 0; i < gamepadCount; ++i) { - openController(gamepads[i]); - } - - SDL_free(gamepads); -} - -void ControllerInputService::pollControllerState() -{ - QHash::iterator it = m_gamepads.begin(); - while (it != m_gamepads.end()) { - const SDL_JoystickID instanceId = it.key(); - SDL_Gamepad *gamepad = it.value(); - - if (!gamepad) { - ++it; - continue; - } - - for (int button = 0; button < SDL_GAMEPAD_BUTTON_COUNT; ++button) { - const qint64 key = stateKey(instanceId, button); - const bool pressed = SDL_GetGamepadButton(gamepad, static_cast(button)); - const bool wasPressed = m_pressedButtons.contains(key); - - if (pressed && !wasPressed) { - m_pressedButtons.insert(key); - dispatchAction(actionForButton(static_cast(button))); - } else if (!pressed && wasPressed) { - m_pressedButtons.remove(key); - } - } - - for (int axis = 0; axis < SDL_GAMEPAD_AXIS_COUNT; ++axis) { - const Sint16 value = SDL_GetGamepadAxis(gamepad, static_cast(axis)); - updateAxisHold(stateKey(instanceId, AxisControlOffset + axis), - actionForAxis(static_cast(axis), value)); - } - - ++it; - } -} - -void ControllerInputService::updateAxisRepeats() -{ - const qint64 now = m_clock.elapsed(); - for (auto it = m_axisHolds.begin(); it != m_axisHolds.end(); ++it) { - AxisHold &hold = it.value(); - if (!hold.active || hold.action == InputRouter::Action::None || now < hold.nextRepeatMs) { - continue; - } - - dispatchAction(hold.action); - hold.nextRepeatMs = now + RepeatIntervalMs; - } -} - -void ControllerInputService::openController(SDL_JoystickID instanceId) -{ - if (m_gamepads.contains(instanceId) || !SDL_IsGamepad(instanceId)) { - return; - } - - SDL_Gamepad *gamepad = SDL_OpenGamepad(instanceId); - if (!gamepad) { - qWarning() << "Failed to open gamepad" << instanceId << SDL_GetError(); - return; - } - - m_gamepads.insert(instanceId, gamepad); - qInfo() << "Opened gamepad" << instanceId << SDL_GetGamepadName(gamepad); -} - -void ControllerInputService::closeController(SDL_JoystickID instanceId) -{ - SDL_Gamepad *gamepad = m_gamepads.take(instanceId); - if (!gamepad) { - return; - } - - SDL_CloseGamepad(gamepad); - m_axisHolds.clear(); - m_pressedButtons.clear(); - qInfo() << "Closed gamepad" << instanceId; -} - -void ControllerInputService::handleButtonDown(const SDL_GamepadButtonEvent &event) -{ - const qint64 key = stateKey(event.which, event.button); - if (m_pressedButtons.contains(key)) { - return; - } - - m_pressedButtons.insert(key); - dispatchAction(actionForButton(event.button)); -} - -void ControllerInputService::handleAxisMotion(const SDL_GamepadAxisEvent &event) -{ - updateAxisHold(stateKey(event.which, AxisControlOffset + event.axis), - actionForAxis(event.axis, event.value)); -} - -void ControllerInputService::updateAxisHold(qint64 axisKey, InputRouter::Action action) -{ - if (action == InputRouter::Action::None) { - releaseAxisHold(axisKey); - return; - } - - AxisHold &hold = m_axisHolds[axisKey]; - if (hold.active && hold.action == action) { - return; - } - - hold.active = true; - hold.action = action; - hold.nextRepeatMs = m_clock.elapsed() + InitialRepeatDelayMs; - dispatchAction(action); -} - -void ControllerInputService::releaseAxisHold(qint64 axisKey) -{ - AxisHold &hold = m_axisHolds[axisKey]; - hold.active = false; - hold.action = InputRouter::Action::None; - hold.nextRepeatMs = 0; -} - -void ControllerInputService::dispatchAction(InputRouter::Action action) -{ - if (m_router && action != InputRouter::Action::None) { - m_router->triggerAction(action); - } -} - -InputRouter::Action ControllerInputService::actionForButton(Uint8 button) -{ - const SDL_GamepadButton buttonEnum = static_cast(button); - - switch (buttonEnum) { - case SDL_GAMEPAD_BUTTON_SOUTH: - return InputRouter::Action::Back; - case SDL_GAMEPAD_BUTTON_EAST: - return InputRouter::Action::Accept; - case SDL_GAMEPAD_BUTTON_WEST: - return InputRouter::Action::None; - case SDL_GAMEPAD_BUTTON_NORTH: - return InputRouter::Action::None; - case SDL_GAMEPAD_BUTTON_DPAD_UP: - return InputRouter::Action::Up; - case SDL_GAMEPAD_BUTTON_DPAD_DOWN: - return InputRouter::Action::Down; - case SDL_GAMEPAD_BUTTON_DPAD_LEFT: - return InputRouter::Action::Left; - case SDL_GAMEPAD_BUTTON_DPAD_RIGHT: - return InputRouter::Action::Right; - case SDL_GAMEPAD_BUTTON_START: - case SDL_GAMEPAD_BUTTON_BACK: - case SDL_GAMEPAD_BUTTON_GUIDE: - return InputRouter::Action::Menu; - default: - return InputRouter::Action::None; - } -} - -InputRouter::Action ControllerInputService::actionForAxis(Uint8 axis, Sint16 value) -{ - if (value > -AxisReleaseDeadzone && value < AxisReleaseDeadzone) { - return InputRouter::Action::None; - } - - const SDL_GamepadAxis axisEnum = static_cast(axis); - - switch (axisEnum) { - case SDL_GAMEPAD_AXIS_LEFTX: - if (value <= -AxisDeadzone) { - return InputRouter::Action::Left; - } - if (value >= AxisDeadzone) { - return InputRouter::Action::Right; - } - break; - case SDL_GAMEPAD_AXIS_LEFTY: - if (value <= -AxisDeadzone) { - return InputRouter::Action::Up; - } - if (value >= AxisDeadzone) { - return InputRouter::Action::Down; - } - break; - default: - break; - } - - return InputRouter::Action::None; -} - -qint64 ControllerInputService::stateKey(SDL_JoystickID instanceId, int control) -{ - return (static_cast(instanceId) << 16) | control; -} diff --git a/Bigscreen/src/ControllerInputService.h b/Bigscreen/src/ControllerInputService.h deleted file mode 100644 index 2bf21ae..0000000 --- a/Bigscreen/src/ControllerInputService.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once - -#include "InputRouter.h" - -#include -#include -#include -#include -#include - -#include - -class ControllerInputService : public QObject -{ - Q_OBJECT - -public: - explicit ControllerInputService(InputRouter *router, QObject *parent = nullptr); - ~ControllerInputService() override; - -private: - struct AxisHold { - InputRouter::Action action = InputRouter::Action::None; - qint64 nextRepeatMs = 0; - bool active = false; - }; - - void pollEvents(); - void discoverControllers(); - void pollControllerState(); - void updateAxisRepeats(); - void openController(SDL_JoystickID instanceId); - void closeController(SDL_JoystickID instanceId); - void handleButtonDown(const SDL_GamepadButtonEvent &event); - void handleAxisMotion(const SDL_GamepadAxisEvent &event); - void updateAxisHold(qint64 axisKey, InputRouter::Action action); - void releaseAxisHold(qint64 axisKey); - void dispatchAction(InputRouter::Action action); - - static InputRouter::Action actionForButton(Uint8 button); - static InputRouter::Action actionForAxis(Uint8 axis, Sint16 value); - static qint64 stateKey(SDL_JoystickID instanceId, int control); - - InputRouter *m_router = nullptr; - QTimer m_pollTimer; - QElapsedTimer m_clock; - QHash m_gamepads; - QSet m_pressedButtons; - QHash m_axisHolds; - qint64 m_nextDiscoveryMs = 0; - bool m_sdlReady = false; -}; diff --git a/Bigscreen/src/InputRouter.cpp b/Bigscreen/src/InputRouter.cpp deleted file mode 100644 index 9282881..0000000 --- a/Bigscreen/src/InputRouter.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "InputRouter.h" - -#include - -InputRouter::InputRouter(QObject *parent) - : QObject(parent) -{ -} - -bool InputRouter::handleKeyPress(QKeyEvent *event) -{ - if (!event || event->isAutoRepeat()) { - return false; - } - - const Action action = mapKey(event->key()); - if (action == Action::None) { - return false; - } - - triggerAction(action); - event->accept(); - return true; -} - -void InputRouter::triggerAction(Action action) -{ - if (action == Action::None) { - return; - } - - emit actionTriggered(action); -} - -InputRouter::Action InputRouter::mapKey(int key) -{ - switch (key) { - case Qt::Key_Up: - return Action::Up; - case Qt::Key_Down: - return Action::Down; - case Qt::Key_Left: - return Action::Left; - case Qt::Key_Right: - return Action::Right; - case Qt::Key_Return: - case Qt::Key_Enter: - case Qt::Key_Space: - return Action::Accept; - case Qt::Key_Escape: - case Qt::Key_Backspace: - return Action::Back; - case Qt::Key_Menu: - return Action::Menu; - default: - return Action::None; - } -} diff --git a/Bigscreen/src/InputRouter.h b/Bigscreen/src/InputRouter.h deleted file mode 100644 index 45d6b37..0000000 --- a/Bigscreen/src/InputRouter.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -#include - -class QKeyEvent; - -class InputRouter : public QObject -{ - Q_OBJECT - -public: - enum class Action { - None = 0, - Up, - Down, - Left, - Right, - Accept, - Back, - Menu, - }; - Q_ENUM(Action) - - explicit InputRouter(QObject *parent = nullptr); - - bool handleKeyPress(QKeyEvent *event); - void triggerAction(Action action); - -signals: - void actionTriggered(InputRouter::Action action); - -private: - static Action mapKey(int key); -}; diff --git a/Bigscreen/src/main.cpp b/Bigscreen/src/main.cpp deleted file mode 100644 index 16ed699..0000000 --- a/Bigscreen/src/main.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "ControllerInputService.h" -#include "InputRouter.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace { -void logMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message) -{ - QFile logFile(QStringLiteral("nebula-bigscreen.log")); - if (!logFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) { - return; - } - - QTextStream stream(&logFile); - stream << QDateTime::currentDateTime().toString(Qt::ISODate) << " "; - switch (type) { - case QtDebugMsg: - stream << "DEBUG"; - break; - case QtInfoMsg: - stream << "INFO"; - break; - case QtWarningMsg: - stream << "WARN"; - break; - case QtCriticalMsg: - stream << "CRITICAL"; - break; - case QtFatalMsg: - stream << "FATAL"; - break; - } - - stream << ": " << message; - if (context.file) { - stream << " (" << context.file << ":" << context.line << ")"; - } - stream << "\n"; -} -} - -class InputFilter : public QObject -{ -public: - explicit InputFilter(InputRouter *router, QObject *parent = nullptr) - : QObject(parent) - , m_router(router) - { - } - -protected: - bool eventFilter(QObject *watched, QEvent *event) override - { - Q_UNUSED(watched); - if (event->type() == QEvent::KeyPress) { - return m_router->handleKeyPress(static_cast(event)); - } - return false; - } - -private: - InputRouter *m_router = nullptr; -}; - -int main(int argc, char *argv[]) -{ - qInstallMessageHandler(logMessageHandler); - - QGuiApplication app(argc, argv); - QGuiApplication::setApplicationName(QStringLiteral("Nebula Bigscreen")); - QGuiApplication::setOrganizationName(QStringLiteral("NebulaOS")); - QGuiApplication::setOrganizationDomain(QStringLiteral("nebulaos.local")); - - InputRouter inputRouter; - InputFilter inputFilter(&inputRouter); - ControllerInputService controllerInputService(&inputRouter); - Q_UNUSED(controllerInputService); - app.installEventFilter(&inputFilter); - - QQmlApplicationEngine engine; - engine.rootContext()->setContextProperty(QStringLiteral("InputRouter"), &inputRouter); - - QObject::connect( - &engine, - &QQmlApplicationEngine::objectCreationFailed, - &app, - []() { QCoreApplication::exit(-1); }, - Qt::QueuedConnection); - - engine.load(QUrl(QStringLiteral("qrc:/qt/qml/Nebula/Bigscreen/qml/Main.qml"))); - - return app.exec(); -} diff --git a/Desktop/README-Desktop.md b/Desktop/README-Desktop.md deleted file mode 100644 index 1a323af..0000000 --- a/Desktop/README-Desktop.md +++ /dev/null @@ -1,612 +0,0 @@ -# NebulaOS Desktop Mode - -NebulaOS Desktop Mode is the mouse-and-keyboard desktop layer for NebulaOS. It provides the full Linux desktop experience for users who need file management, development tools, modding workflows, browser access, productivity apps, system settings, and advanced troubleshooting. - -Desktop Mode is built on KDE Plasma as its starting foundation. KDE gives NebulaOS a mature, flexible, themeable, and gaming-friendly Linux desktop while the Nebula-specific shell identity, desktop apps, launcher ideas, and visual language continue to develop. - -This README only covers **Desktop Mode**. It does not cover the full NebulaOS project or Bigscreen Mode. Those have their own separate README files. - ---- - -## Purpose - -Desktop Mode exists because NebulaOS should not only be a controller-first or console-style interface. It should also be a capable desktop operating system when the user needs one. - -Desktop Mode is designed for: - -* File management -* Web browsing -* Productivity -* Development -* Modding -* Troubleshooting -* Advanced settings -* Desktop gaming -* App management -* System maintenance -* Mouse and keyboard workflows - -NebulaOS should feel simple in Bigscreen Mode, but never locked down. Desktop Mode is what keeps NebulaOS flexible, useful, and powerful. - ---- - -## Design Vision - -NebulaOS Desktop Mode should feel like a sleek modern OS UI that combines the strongest parts of Windows, macOS, and Linux while still becoming its own distinct interface. - -The goal is not to copy any one operating system. The goal is to borrow the best ideas and reinterpret them through the NebulaOS identity. - -### Windows Influence - -Desktop Mode should take inspiration from Windows for: - -* Familiar taskbar-style productivity -* Clear window management -* App launching habits users already understand -* System tray concepts -* Right-click and power-user workflows -* Desktop gaming familiarity - -### macOS Influence - -Desktop Mode should take inspiration from macOS for: - -* Visual polish -* Calm spacing -* Soft blur and translucency -* Clean typography -* Smooth animation -* Premium-feeling system surfaces -* Control Centre-style quick settings - -### Linux / KDE Influence - -Desktop Mode should take inspiration from Linux and KDE for: - -* Customization -* Openness -* User control -* Themeability -* Widgets -* Scripting -* Session flexibility -* Power-user tooling - -### NebulaOS Identity - -NebulaOS Desktop Mode should add its own identity through: - -* Deep blue and purple tones -* Glass-like dark surfaces -* Soft glow -* Rounded panels -* Space-inspired wallpapers -* Clean icon language -* Gaming-aware shortcuts -* Bigscreen access from the desktop -* Nebula Browser and Nebula Library integration - ---- - -## Current Development Status - -Desktop Mode is currently in the early KDE customization stage. - -### Working / Set Up - -* [x] KDE Plasma selected as the Desktop Mode foundation -* [x] Desktop Mode repo structure created -* [x] Starter KDE theme files copied into the repo -* [x] Theme files are being edited directly from the repo -* [x] Symlink-based development workflow started -* [x] Apply script created or started -* [x] Plasma reload workflow started -* [x] Desktop Mode separated from Bigscreen Mode conceptually -* [x] Current focus is KDE theme and shell identity - -### Being Worked On - -* [ ] NebulaOS Plasma theme -* [ ] NebulaOS color scheme -* [ ] NebulaOS look-and-feel package -* [ ] NebulaOS wallpaper set -* [ ] Floating/glass panel styling -* [ ] Launcher/menu styling -* [ ] Popup/dialog styling -* [ ] Notification styling -* [ ] Task manager active indicators -* [ ] System tray styling -* [ ] Bigscreen Mode desktop shortcut -* [ ] Nebula Browser desktop shortcut -* [ ] Cleaner apply and reload scripts - -### Parallel track: OS login (controller-friendly) - -Desktop Mode work now includes a **controller-friendly OS login** so Bigscreen Mode does not need its own account creation, PIN lock, or sign-in flows. - -Planned at the system layer (SDDM + sessions): - -* Nebula SDDM theme navigable with a gamepad -* Account picker and sign-in -* Session choice: Nebula Bigscreen vs Nebula Desktop -* First-run / account setup when needed (desktop or login side, not inside Bigscreen) - -This can proceed alongside Plasma theme work; it does not need to wait until every panel pixel is final. - -### Not the Focus Yet - -The following are planned, but should not block the base Desktop theme or login track: - -* Full Nebula Control Center -* Nebula Store -* Nebula Library desktop app -* Nebula Mod Manager -* Deep KDE source patches -* Full ISO packaging -* First-run setup / OOBE - ---- - -## Recommended Foundation - -The recommended Desktop Mode foundation is: - -* Linux -* KDE Plasma -* SDDM -* Wayland where possible -* X11 fallback where needed -* Custom Nebula Plasma theme -* Custom Nebula color scheme -* Custom Nebula look-and-feel package -* Custom Nebula wallpaper set -* Custom Nebula session entries later - -KDE Plasma is recommended because it is: - -* Highly customizable -* Friendly to Linux gaming workflows -* Themeable -* Mature -* Flexible -* Suitable for both desktop and handheld layouts -* Easier to prototype with than writing a whole desktop shell from scratch - ---- - -## Repository & Development - -This repository is the source of truth for Desktop Mode. - -Local KDE folders under `~/.local/share` are runtime and test targets only. During development, symlinks can point KDE at the files in this repo. For packaging and install testing, the apply script should copy the same repo files into KDE's local package locations. - -This means: - -* Edit files in the repo -* Test through symlinks where possible -* Use scripts to apply or reload changes -* Avoid manually editing copied files in KDE's local folders -* Keep all Desktop Mode work version-controlled - ---- - -## Desktop Mode Responsibilities - -Desktop Mode should provide: - -* File manager access -* Browser access -* Terminal access -* App launcher -* System settings -* Development tools -* Game modding tools -* Desktop game launching -* Access to Bigscreen Mode -* Advanced troubleshooting tools -* App management -* System maintenance - -Desktop Mode should feel like a proper computer desktop, not just a fallback mode. - ---- - -## KDE Customization Goals - -Desktop Mode customization may include: - -* Nebula global theme -* Nebula Plasma theme -* Nebula color scheme -* Nebula icon theme -* Nebula cursor theme -* Nebula wallpaper set -* Custom SDDM theme later -* Custom splash screen later -* Custom panel layout -* Custom application launcher direction -* Custom desktop widgets -* Preinstalled Nebula apps later -* Desktop shortcut for Bigscreen Mode -* Desktop shortcut for Nebula Browser -* Desktop shortcut for Nebula Library later - -Starter KDE Plasma customization currently happens through: - -* Plasma desktop themes for shell surfaces such as panels, widgets, popups, dialogs, and SVG assets -* Look-and-feel packages for grouping the desktop experience under a Nebula identity -* Color schemes for the Nebula Dark palette -* Wallpapers and branding assets -* Plasmoids for prototype Nebula desktop widgets such as the launcher -* Later, KWin scripts and deeper KDE source patches after the prototype layer works - -This layer should stay small and safe for now. Avoid deep KDE source changes until the Plasma theme, color scheme, look-and-feel package, and launcher prototype are easy to test and iterate. - ---- - -## Suggested Desktop Layout - -A possible default Desktop Mode layout: - -```text -Floating bottom panel -├── Nebula launcher -├── Search -├── Pinned apps -├── Open apps -├── Bigscreen shortcut -├── System tray -├── Network -├── Audio -├── Battery -├── Clock -└── Quick settings - -Desktop -├── Nebula wallpaper -├── Minimal icons -└── Optional widgets - -Launcher -├── Search -├── Pinned apps -├── Recent apps -├── Games -├── Files -├── Settings -├── Power -└── Switch to Bigscreen Mode -``` - -The default desktop should feel like a mix of a Windows taskbar, macOS Dock polish, and KDE flexibility. - -Suggested panel style: - -* Floating rounded panel -* Dark translucent glass surface -* Subtle border -* Soft shadow -* Centered app icons -* Small glow under active apps -* System tray grouped cleanly on the right -* Nebula launcher button on the left - ---- - -## Visual Identity - -Desktop Mode should share visual DNA with the wider NebulaOS project while remaining calmer and more practical than a controller-first interface. - -Shared elements may include: - -* Nebula gradients -* Deep blue and purple tones -* Soft glass panels -* Rounded corners -* Subtle glow -* Clean typography -* Space-inspired wallpapers -* Calm animation -* Consistent icon language - -### Visual Keywords - -```text -Glass -Depth -Glow -Blur -Soft shadows -Rounded panels -Dark translucent surfaces -Blue/purple nebula gradients -Clean typography -Minimal clutter -Gaming polish -Desktop productivity -``` - ---- - -## Plasma vs Native Desktop Apps - -Desktop Mode should not try to force everything into KDE theme files. Some parts should remain KDE/Plasma, while larger Nebula tools should become separate native apps. - -### KDE Plasma should handle: - -* Desktop shell -* Panels -* Widgets -* Notifications -* System tray -* Window management -* Theme integration -* Shortcuts -* Power menu -* Basic desktop settings - -### Native Nebula apps should handle later: - -* Nebula Welcome -* Nebula Control Center -* Nebula Settings -* Nebula Library -* Nebula Mod Manager -* Nebula Store -* Nebula Update Manager -* Nebula account/profile manager -* Nebula diagnostics - -These apps should likely be native Qt apps where deep desktop integration is useful. - ---- - -# Milestones - -## Milestone 0: KDE Prototype Setup - -Status: Mostly complete - -Goal: Get KDE ready for safe Desktop Mode theme development. - -Tasks: - -* [x] Choose KDE Plasma as the Desktop Mode foundation -* [x] Set up the repo structure -* [x] Copy starter KDE theme files into the repo -* [x] Set up symlinks for development -* [x] Begin editing the Plasma theme -* [x] Add or start apply script -* [x] Add or start reload workflow -* [ ] Confirm theme metadata is clean -* [ ] Confirm theme appears correctly in KDE settings -* [ ] Document the development workflow - -Definition of done: - -* KDE can load the NebulaOS theme from the repo or from copied local files -* The theme can be refreshed without reinstalling the OS -* The repo is the source of truth - ---- - -## Milestone 1: NebulaOS Desktop Theme v0.1 - -Status: Current priority - -Goal: Make the desktop visually stop looking like stock KDE. - -Tasks: - -* [ ] Create NebulaOS wallpaper -* [ ] Create NebulaOS color scheme -* [ ] Rename and clean theme metadata -* [ ] Style the main Plasma panel -* [ ] Style launcher/menu surfaces -* [ ] Style popups and dialogs -* [ ] Style tooltips -* [ ] Style notifications -* [ ] Style task manager active indicators -* [ ] Add Nebula launcher icon -* [ ] Add Bigscreen Mode shortcut -* [ ] Add Nebula Browser shortcut -* [ ] Improve apply script -* [ ] Improve reload script -* [ ] Add screenshots to this README later - -Definition of done: - -* Wallpaper applies correctly -* Color scheme applies correctly -* Panel looks like NebulaOS -* Menus and popups match the theme -* Notifications match the theme -* Bigscreen Mode can be launched from Desktop Mode -* The desktop has a clear NebulaOS identity - ---- - -## Milestone 2: NebulaOS Desktop Shell v0.2 - -Status: Planned - -Goal: Improve the default layout and desktop workflow. - -Tasks: - -* [ ] Create default panel layout -* [ ] Add pinned app defaults -* [ ] Add clean system tray layout -* [ ] Add search-focused workflow -* [ ] Add power/user shortcuts -* [ ] Add better desktop widgets if needed -* [ ] Add default shortcuts for browser, files, terminal, settings, and Bigscreen Mode -* [ ] Improve launcher direction - -Definition of done: - -* A fresh Desktop Mode session has a clear default layout -* Users can launch core apps easily -* Users can switch to Bigscreen Mode easily -* The desktop feels intentionally designed instead of manually assembled - ---- - -## Milestone 3: NebulaOS Desktop Apps v0.3 - -Status: Planned - -Goal: Add the first native Nebula desktop tools. - -Recommended first app: - -```text -Nebula Welcome -``` - -Nebula Welcome should allow users to: - -* Learn what Desktop Mode is -* Open KDE/System Settings -* Launch Bigscreen Mode -* Launch Nebula Browser -* Open project/about information -* Access basic setup links - -Future desktop apps may include: - -* Nebula Control Center -* Nebula Library -* Nebula Mod Manager -* Nebula Update Manager -* Nebula Store - -Definition of done: - -* At least one native Nebula desktop app exists -* It matches the Desktop Mode visual identity -* It helps connect the desktop experience to the wider NebulaOS ecosystem - ---- - -## Milestone 4: Login, Session, and System Polish v0.4 - -Status: Planned (parallel with theme milestones) - -Goal: Provide a **controller-friendly OS login** so users pick account and session before Bigscreen or Desktop starts. Bigscreen Mode should not implement account creation or login. - -Tasks: - -* [ ] Create controller-friendly SDDM theme -* [ ] Account picker and sign-in usable with gamepad and keyboard -* [ ] Session entries: Nebula Bigscreen and Nebula Desktop -* [ ] First-run / account setup flow (OS or desktop side, not in Bigscreen shell) -* [ ] Create splash screen -* [ ] Optional lock/suspend styling consistent with SDDM (session layer, not Bigscreen PIN) -* [ ] Add desktop-to-bigscreen switch flow -* [ ] Add bigscreen-to-desktop switch flow -* [ ] Log out / switch user returns to SDDM -* [ ] Improve power menu integration in Bigscreen (return to login only) - -Definition of done: - -* Users can sign in and choose Bigscreen or Desktop from the couch with a controller -* Bigscreen Qt shell starts already authenticated—no in-shell login or account wizard -* Desktop Mode feels connected from login to desktop -* NebulaOS feels less like a theme and more like an operating system experience - ---- - -## Milestone 5: Packaging and Distribution v0.5 - -Status: Future - -Goal: Make Desktop Mode installable and repeatable. - -Tasks: - -* [ ] Clean install script -* [ ] Clean uninstall/reset script -* [ ] Package theme files properly -* [ ] Package wallpapers properly -* [ ] Package desktop shortcuts properly -* [ ] Prepare Arch/EndeavourOS install steps -* [ ] Prepare ISO integration later -* [ ] Add screenshots and setup instructions - -Definition of done: - -* Desktop Mode can be applied consistently on a clean KDE install -* Installation does not rely on manual file copying -* The README clearly explains how to test and apply the desktop theme - ---- - -## Useful Test Commands - -```bash -kbuildsycoca6 -plasmoidviewer -a org.nebula.launcher -./Desktop/scripts/reload-plasma.sh -./Desktop/scripts/apply-nebula-desktop.sh -``` - -`reload-plasma.sh` refreshes Plasma after editing symlinked repo files. - -`apply-nebula-desktop.sh` copies the repo packages into local KDE folders for install and packaging tests. - ---- - -## What Desktop Mode Should Avoid - -Desktop Mode should avoid: - -* Removing normal Linux functionality -* Hiding important system tools -* Making KDE harder to use -* Becoming too console-like -* Depending on Bigscreen Mode to function -* Locking users into one workflow -* Deep KDE source changes too early -* Rebuilding things KDE already handles well - -Desktop Mode should be powerful, normal, and clean. - ---- - -## Success Criteria - -Desktop Mode is successful when: - -* Users can use NebulaOS like a normal Linux desktop -* KDE feels visually integrated with NebulaOS -* Desktop Mode feels polished instead of temporary -* Bigscreen Mode can be launched easily -* Advanced settings are accessible -* Development and troubleshooting are possible -* Gaming and modding workflows are supported -* The desktop has its own identity without breaking Linux flexibility - ---- - -## Current Priority - -The current priority is: - -```text -Milestone 1: NebulaOS Desktop Theme v0.1 -``` - -Focus on: - -* Wallpaper -* Color scheme -* Panel styling -* Menu and popup styling -* Notifications -* Task manager active indicators -* Bigscreen shortcut -* Nebula Browser shortcut -* Clean apply/reload scripts - -Do not focus on the full login system, custom store, mod manager, or ISO packaging yet. The base Desktop Mode identity should come first. diff --git a/Desktop/dialogs/background.svgz b/Desktop/dialogs/background.svgz deleted file mode 100644 index ab2a5a6..0000000 Binary files a/Desktop/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/icons/akonadi.svgz b/Desktop/icons/akonadi.svgz deleted file mode 100644 index 26e17e0..0000000 Binary files a/Desktop/icons/akonadi.svgz and /dev/null differ diff --git a/Desktop/icons/akregator.svgz b/Desktop/icons/akregator.svgz deleted file mode 100644 index 2cc37e0..0000000 Binary files a/Desktop/icons/akregator.svgz and /dev/null differ diff --git a/Desktop/icons/amarok.svgz b/Desktop/icons/amarok.svgz deleted file mode 100644 index 3ec39aa..0000000 Binary files a/Desktop/icons/amarok.svgz and /dev/null differ diff --git a/Desktop/icons/applications.svgz b/Desktop/icons/applications.svgz deleted file mode 100644 index 6fd0675..0000000 Binary files a/Desktop/icons/applications.svgz and /dev/null differ diff --git a/Desktop/icons/apport.svgz b/Desktop/icons/apport.svgz deleted file mode 100644 index 24753d6..0000000 Binary files a/Desktop/icons/apport.svgz and /dev/null differ diff --git a/Desktop/icons/audio.svgz b/Desktop/icons/audio.svgz deleted file mode 100644 index 71f258f..0000000 Binary files a/Desktop/icons/audio.svgz and /dev/null differ diff --git a/Desktop/icons/battery.svgz b/Desktop/icons/battery.svgz deleted file mode 100644 index d24ce03..0000000 Binary files a/Desktop/icons/battery.svgz and /dev/null differ diff --git a/Desktop/icons/bookmarks.svgz b/Desktop/icons/bookmarks.svgz deleted file mode 100644 index ad95bd2..0000000 Binary files a/Desktop/icons/bookmarks.svgz and /dev/null differ diff --git a/Desktop/icons/cantata.svgz b/Desktop/icons/cantata.svgz deleted file mode 100644 index 4a57f2a..0000000 Binary files a/Desktop/icons/cantata.svgz and /dev/null differ diff --git a/Desktop/icons/computer.svgz b/Desktop/icons/computer.svgz deleted file mode 100644 index 281b9b4..0000000 Binary files a/Desktop/icons/computer.svgz and /dev/null differ diff --git a/Desktop/icons/configure.svgz b/Desktop/icons/configure.svgz deleted file mode 100644 index c74f3e0..0000000 Binary files a/Desktop/icons/configure.svgz and /dev/null differ diff --git a/Desktop/icons/device.svgz b/Desktop/icons/device.svgz deleted file mode 100644 index 1993d02..0000000 Binary files a/Desktop/icons/device.svgz and /dev/null differ diff --git a/Desktop/icons/disk.svgz b/Desktop/icons/disk.svgz deleted file mode 100644 index 2f018fa..0000000 Binary files a/Desktop/icons/disk.svgz and /dev/null differ diff --git a/Desktop/icons/distribute.svgz b/Desktop/icons/distribute.svgz deleted file mode 100644 index 689eb8b..0000000 Binary files a/Desktop/icons/distribute.svgz and /dev/null differ diff --git a/Desktop/icons/document.svgz b/Desktop/icons/document.svgz deleted file mode 100644 index da3ef9f..0000000 Binary files a/Desktop/icons/document.svgz and /dev/null differ diff --git a/Desktop/icons/drive.svgz b/Desktop/icons/drive.svgz deleted file mode 100644 index 448391e..0000000 Binary files a/Desktop/icons/drive.svgz and /dev/null differ diff --git a/Desktop/icons/edit.svgz b/Desktop/icons/edit.svgz deleted file mode 100644 index 361e13f..0000000 Binary files a/Desktop/icons/edit.svgz and /dev/null differ diff --git a/Desktop/icons/fcitx.svgz b/Desktop/icons/fcitx.svgz deleted file mode 100644 index 8e2f07a..0000000 Binary files a/Desktop/icons/fcitx.svgz and /dev/null differ diff --git a/Desktop/icons/go.svgz b/Desktop/icons/go.svgz deleted file mode 100644 index f473fc4..0000000 Binary files a/Desktop/icons/go.svgz and /dev/null differ diff --git a/Desktop/icons/ime.svgz b/Desktop/icons/ime.svgz deleted file mode 100644 index 578c35c..0000000 Binary files a/Desktop/icons/ime.svgz and /dev/null differ diff --git a/Desktop/icons/input.svgz b/Desktop/icons/input.svgz deleted file mode 100644 index 34931c5..0000000 Binary files a/Desktop/icons/input.svgz and /dev/null differ diff --git a/Desktop/icons/kalarm.svgz b/Desktop/icons/kalarm.svgz deleted file mode 100644 index bc1d5a0..0000000 Binary files a/Desktop/icons/kalarm.svgz and /dev/null differ diff --git a/Desktop/icons/kdeconnect.svgz b/Desktop/icons/kdeconnect.svgz deleted file mode 100644 index ddfa196..0000000 Binary files a/Desktop/icons/kdeconnect.svgz and /dev/null differ diff --git a/Desktop/icons/keyboard.svgz b/Desktop/icons/keyboard.svgz deleted file mode 100644 index c3ed2ff..0000000 Binary files a/Desktop/icons/keyboard.svgz and /dev/null differ diff --git a/Desktop/icons/kget.svgz b/Desktop/icons/kget.svgz deleted file mode 100644 index c737183..0000000 Binary files a/Desktop/icons/kget.svgz and /dev/null differ diff --git a/Desktop/icons/kgpg.svgz b/Desktop/icons/kgpg.svgz deleted file mode 100644 index fd0588c..0000000 Binary files a/Desktop/icons/kgpg.svgz and /dev/null differ diff --git a/Desktop/icons/kleopatra.svgz b/Desktop/icons/kleopatra.svgz deleted file mode 100644 index 39835a3..0000000 Binary files a/Desktop/icons/kleopatra.svgz and /dev/null differ diff --git a/Desktop/icons/klipper.svgz b/Desktop/icons/klipper.svgz deleted file mode 100644 index c331ae5..0000000 Binary files a/Desktop/icons/klipper.svgz and /dev/null differ diff --git a/Desktop/icons/kmail.svgz b/Desktop/icons/kmail.svgz deleted file mode 100644 index 1ed8492..0000000 Binary files a/Desktop/icons/kmail.svgz and /dev/null differ diff --git a/Desktop/icons/konv_message.svgz b/Desktop/icons/konv_message.svgz deleted file mode 100644 index 47dd526..0000000 Binary files a/Desktop/icons/konv_message.svgz and /dev/null differ diff --git a/Desktop/icons/konversation.svgz b/Desktop/icons/konversation.svgz deleted file mode 100644 index 70406c5..0000000 Binary files a/Desktop/icons/konversation.svgz and /dev/null differ diff --git a/Desktop/icons/kopete.svgz b/Desktop/icons/kopete.svgz deleted file mode 100644 index 6d17fa8..0000000 Binary files a/Desktop/icons/kopete.svgz and /dev/null differ diff --git a/Desktop/icons/korgac.svgz b/Desktop/icons/korgac.svgz deleted file mode 100644 index ca61a31..0000000 Binary files a/Desktop/icons/korgac.svgz and /dev/null differ diff --git a/Desktop/icons/kpackagekit.svgz b/Desktop/icons/kpackagekit.svgz deleted file mode 100644 index 22e894f..0000000 Binary files a/Desktop/icons/kpackagekit.svgz and /dev/null differ diff --git a/Desktop/icons/kruler.svgz b/Desktop/icons/kruler.svgz deleted file mode 100644 index d5d69d9..0000000 Binary files a/Desktop/icons/kruler.svgz and /dev/null differ diff --git a/Desktop/icons/kteatime.svgz b/Desktop/icons/kteatime.svgz deleted file mode 100644 index b515c8b..0000000 Binary files a/Desktop/icons/kteatime.svgz and /dev/null differ diff --git a/Desktop/icons/ktorrent.svgz b/Desktop/icons/ktorrent.svgz deleted file mode 100644 index 0cef8ef..0000000 Binary files a/Desktop/icons/ktorrent.svgz and /dev/null differ diff --git a/Desktop/icons/kup.svgz b/Desktop/icons/kup.svgz deleted file mode 100644 index 81a9efe..0000000 Binary files a/Desktop/icons/kup.svgz and /dev/null differ diff --git a/Desktop/icons/list.svgz b/Desktop/icons/list.svgz deleted file mode 100644 index 182df73..0000000 Binary files a/Desktop/icons/list.svgz and /dev/null differ diff --git a/Desktop/icons/mail.svgz b/Desktop/icons/mail.svgz deleted file mode 100644 index 0d88643..0000000 Binary files a/Desktop/icons/mail.svgz and /dev/null differ diff --git a/Desktop/icons/media.svgz b/Desktop/icons/media.svgz deleted file mode 100644 index d250075..0000000 Binary files a/Desktop/icons/media.svgz and /dev/null differ diff --git a/Desktop/icons/mobile.svgz b/Desktop/icons/mobile.svgz deleted file mode 100644 index e44ad0f..0000000 Binary files a/Desktop/icons/mobile.svgz and /dev/null differ diff --git a/Desktop/icons/network.svgz b/Desktop/icons/network.svgz deleted file mode 100644 index de5f314..0000000 Binary files a/Desktop/icons/network.svgz and /dev/null differ diff --git a/Desktop/icons/notification.svgz b/Desktop/icons/notification.svgz deleted file mode 100644 index 85575de..0000000 Binary files a/Desktop/icons/notification.svgz and /dev/null differ diff --git a/Desktop/icons/osd.svgz b/Desktop/icons/osd.svgz deleted file mode 100644 index cd9e569..0000000 Binary files a/Desktop/icons/osd.svgz and /dev/null differ diff --git a/Desktop/icons/phone.svgz b/Desktop/icons/phone.svgz deleted file mode 100644 index 4d1e65b..0000000 Binary files a/Desktop/icons/phone.svgz and /dev/null differ diff --git a/Desktop/icons/plasmavault.svgz b/Desktop/icons/plasmavault.svgz deleted file mode 100644 index 61f5a32..0000000 Binary files a/Desktop/icons/plasmavault.svgz and /dev/null differ diff --git a/Desktop/icons/plasmavault_error.svgz b/Desktop/icons/plasmavault_error.svgz deleted file mode 100644 index 43b9d7a..0000000 Binary files a/Desktop/icons/plasmavault_error.svgz and /dev/null differ diff --git a/Desktop/icons/preferences.svgz b/Desktop/icons/preferences.svgz deleted file mode 100644 index 2ee1f7d..0000000 Binary files a/Desktop/icons/preferences.svgz and /dev/null differ diff --git a/Desktop/icons/printer.svgz b/Desktop/icons/printer.svgz deleted file mode 100644 index c3aebba..0000000 Binary files a/Desktop/icons/printer.svgz and /dev/null differ diff --git a/Desktop/icons/quassel.svgz b/Desktop/icons/quassel.svgz deleted file mode 100644 index 3d3b678..0000000 Binary files a/Desktop/icons/quassel.svgz and /dev/null differ diff --git a/Desktop/icons/search.svgz b/Desktop/icons/search.svgz deleted file mode 100644 index 76a2444..0000000 Binary files a/Desktop/icons/search.svgz and /dev/null differ diff --git a/Desktop/icons/slc.svgz b/Desktop/icons/slc.svgz deleted file mode 100644 index 0a8cb18..0000000 Binary files a/Desktop/icons/slc.svgz and /dev/null differ diff --git a/Desktop/icons/software.svgz b/Desktop/icons/software.svgz deleted file mode 100644 index 3af4b67..0000000 Binary files a/Desktop/icons/software.svgz and /dev/null differ diff --git a/Desktop/icons/start.svgz b/Desktop/icons/start.svgz deleted file mode 100644 index c2865ac..0000000 Binary files a/Desktop/icons/start.svgz and /dev/null differ diff --git a/Desktop/icons/system.svgz b/Desktop/icons/system.svgz deleted file mode 100644 index 847fadf..0000000 Binary files a/Desktop/icons/system.svgz and /dev/null differ diff --git a/Desktop/icons/touchpad.svgz b/Desktop/icons/touchpad.svgz deleted file mode 100644 index 2116b82..0000000 Binary files a/Desktop/icons/touchpad.svgz and /dev/null differ diff --git a/Desktop/icons/user.svgz b/Desktop/icons/user.svgz deleted file mode 100644 index 01dc29e..0000000 Binary files a/Desktop/icons/user.svgz and /dev/null differ diff --git a/Desktop/icons/video-card.svgz b/Desktop/icons/video-card.svgz deleted file mode 100644 index 1931b38..0000000 Binary files a/Desktop/icons/video-card.svgz and /dev/null differ diff --git a/Desktop/icons/video.svgz b/Desktop/icons/video.svgz deleted file mode 100644 index 941e55e..0000000 Binary files a/Desktop/icons/video.svgz and /dev/null differ diff --git a/Desktop/icons/view.svgz b/Desktop/icons/view.svgz deleted file mode 100644 index c9f1147..0000000 Binary files a/Desktop/icons/view.svgz and /dev/null differ diff --git a/Desktop/icons/vlc.svgz b/Desktop/icons/vlc.svgz deleted file mode 100644 index a2f6a6c..0000000 Binary files a/Desktop/icons/vlc.svgz and /dev/null differ diff --git a/Desktop/icons/wallet.svgz b/Desktop/icons/wallet.svgz deleted file mode 100644 index 9fdf01c..0000000 Binary files a/Desktop/icons/wallet.svgz and /dev/null differ diff --git a/Desktop/icons/window.svgz b/Desktop/icons/window.svgz deleted file mode 100644 index 2a183ca..0000000 Binary files a/Desktop/icons/window.svgz and /dev/null differ diff --git a/Desktop/icons/yakuake.svgz b/Desktop/icons/yakuake.svgz deleted file mode 100644 index d432446..0000000 Binary files a/Desktop/icons/yakuake.svgz and /dev/null differ diff --git a/Desktop/icons/zoom.svgz b/Desktop/icons/zoom.svgz deleted file mode 100644 index 824b80c..0000000 Binary files a/Desktop/icons/zoom.svgz and /dev/null differ diff --git a/Desktop/metadata.json b/Desktop/metadata.json deleted file mode 100644 index a7edd27..0000000 --- a/Desktop/metadata.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "", - "Name": "Nebula", - "Name[ar]": "Nebula", - "Name[az]": "Nebula", - "Name[be]": "Nebula", - "Name[bg]": "Nebula", - "Name[ca@valencia]": "Nebula", - "Name[ca]": "Nebula", - "Name[cs]": "Nebula", - "Name[da]": "Nebula", - "Name[de]": "Nebula", - "Name[el]": "Nebula", - "Name[en_GB]": "Nebula", - "Name[eo]": "Nebula", - "Name[es]": "Nebula", - "Name[eu]": "Nebula", - "Name[fi]": "Nebula", - "Name[fr]": "Nebula", - "Name[gl]": "Nebula", - "Name[he]": "Nebula", - "Name[hi]": "Nebula", - "Name[hu]": "Nebula", - "Name[ia]": "Nebula", - "Name[id]": "Nebula", - "Name[is]": "Nebula", - "Name[it]": "Nebula", - "Name[ka]": "Nebula", - "Name[ko]": "Nebula", - "Name[lt]": "Nebula", - "Name[lv]": "Nebula", - "Name[nb]": "Nebula", - "Name[nl]": "Nebula", - "Name[nn]": "Nebula", - "Name[pl]": "Nebula", - "Name[pt]": "Nebula", - "Name[pt_BR]": "Nebula", - "Name[ro]": "Nebula", - "Name[ru]": "Nebula", - "Name[sa]": "Nebula", - "Name[sk]": "Nebula", - "Name[sl]": "Nebula", - "Name[sv]": "Nebula", - "Name[ta]": "Nebula", - "Name[tr]": "Nebula", - "Name[uk]": "Nebula", - "Name[vi]": "Nebula", - "Name[zh_CN]": "Nebula", - "Name[zh_TW]": "Nebula" - } - ], - "Category": "", - "Description": "Nebula Plasma desktop theme for NebulaOS", - "Description[ar]": "سمة سطح مكتب Nebula Plasma لـ NebulaOS", - "Description[az]": "Nebula Plasma desktop theme for NebulaOS", - "Description[be]": "Nebula Plasma desktop theme for NebulaOS", - "Description[bg]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ca@valencia]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ca]": "Nebula Plasma desktop theme for NebulaOS", - "Description[cs]": "Nebula Plasma desktop theme for NebulaOS", - "Description[da]": "Nebula Plasma desktop theme for NebulaOS", - "Description[de]": "Nebula Plasma-Desktopthema für NebulaOS", - "Description[el]": "Nebula Plasma desktop theme for NebulaOS", - "Description[en_GB]": "Nebula Plasma desktop theme for NebulaOS", - "Description[eo]": "Nebula Plasma desktop theme for NebulaOS", - "Description[es]": "Tema de escritorio Nebula Plasma para NebulaOS", - "Description[eu]": "Nebula Plasma desktop theme for NebulaOS", - "Description[fi]": "Nebula Plasma desktop theme for NebulaOS", - "Description[fr]": "Thème de bureau Nebula Plasma pour NebulaOS", - "Description[gl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[he]": "Nebula Plasma desktop theme for NebulaOS", - "Description[hi]": "Nebula Plasma desktop theme for NebulaOS", - "Description[hu]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ia]": "Nebula Plasma desktop theme for NebulaOS", - "Description[id]": "Nebula Plasma desktop theme for NebulaOS", - "Description[is]": "Nebula Plasma desktop theme for NebulaOS", - "Description[it]": "Tema desktop Nebula Plasma per NebulaOS", - "Description[ka]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ko]": "NebulaOS용 Nebula Plasma 데스크톱 테마", - "Description[lt]": "Nebula Plasma desktop theme for NebulaOS", - "Description[lv]": "Nebula Plasma desktop theme for NebulaOS", - "Description[nb]": "Nebula Plasma desktop theme for NebulaOS", - "Description[nl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[nn]": "Nebula Plasma desktop theme for NebulaOS", - "Description[pl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[pt]": "Tema de ambiente de trabalho Nebula Plasma para NebulaOS", - "Description[pt_BR]": "Tema de área de trabalho Nebula Plasma para o NebulaOS", - "Description[ro]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ru]": "Тема рабочего стола Nebula Plasma для NebulaOS", - "Description[sa]": "Nebula Plasma desktop theme for NebulaOS", - "Description[sk]": "Nebula Plasma desktop theme for NebulaOS", - "Description[sl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[sv]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ta]": "Nebula Plasma desktop theme for NebulaOS", - "Description[tr]": "Nebula Plasma desktop theme for NebulaOS", - "Description[uk]": "Nebula Plasma desktop theme for NebulaOS", - "Description[vi]": "Nebula Plasma desktop theme for NebulaOS", - "Description[zh_CN]": "NebulaOS 的 Nebula Plasma 桌面主题", - "Description[zh_TW]": "NebulaOS 的 Nebula Plasma 桌面主題", - "EnabledByDefault": true, - "Id": "Nebula", - "License": "LGPL", - "Name": "Nebula Plasma", - "Name[ar]": "Nebula Plasma", - "Name[az]": "Nebula Plasma", - "Name[be]": "Nebula Plasma", - "Name[bg]": "Nebula Plasma", - "Name[ca@valencia]": "Nebula Plasma", - "Name[ca]": "Nebula Plasma", - "Name[cs]": "Nebula Plasma", - "Name[da]": "Nebula Plasma", - "Name[de]": "Nebula Plasma", - "Name[el]": "Nebula Plasma", - "Name[en_GB]": "Nebula Plasma", - "Name[eo]": "Nebula Plasma", - "Name[es]": "Nebula Plasma", - "Name[eu]": "Nebula Plasma", - "Name[fi]": "Nebula Plasma", - "Name[fr]": "Nebula Plasma", - "Name[gl]": "Nebula Plasma", - "Name[he]": "Nebula Plasma", - "Name[hi]": "Nebula Plasma", - "Name[hu]": "Nebula Plasma", - "Name[ia]": "Nebula Plasma", - "Name[id]": "Nebula Plasma", - "Name[is]": "Nebula Plasma", - "Name[it]": "Nebula Plasma", - "Name[ka]": "Nebula Plasma", - "Name[ko]": "Nebula Plasma", - "Name[lt]": "Nebula Plasma", - "Name[lv]": "Nebula Plasma", - "Name[nb]": "Nebula Plasma", - "Name[nl]": "Nebula Plasma", - "Name[nn]": "Nebula Plasma", - "Name[pl]": "Nebula Plasma", - "Name[pt]": "Nebula Plasma", - "Name[pt_BR]": "Nebula Plasma", - "Name[ro]": "Nebula Plasma", - "Name[ru]": "Nebula Plasma", - "Name[sa]": "Nebula Plasma", - "Name[sk]": "Nebula Plasma", - "Name[sl]": "Nebula Plasma", - "Name[sv]": "Nebula Plasma", - "Name[ta]": "Nebula Plasma", - "Name[tr]": "Nebula Plasma", - "Name[uk]": "Nebula Plasma", - "Name[vi]": "Nebula Plasma", - "Name[zh_CN]": "Nebula Plasma", - "Name[zh_TW]": "Nebula Plasma", - "Version": "6.22.0", - "Website": "https://git.zambazosmedia.group/nebula-project/Nebula-OS" - }, - "X-Plasma-API": "5.0" -} diff --git a/Desktop/opaque/dialogs/background.svgz b/Desktop/opaque/dialogs/background.svgz deleted file mode 100644 index 95371eb..0000000 Binary files a/Desktop/opaque/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/opaque/widgets/panel-background.svgz b/Desktop/opaque/widgets/panel-background.svgz deleted file mode 100644 index bafa330..0000000 Binary files a/Desktop/opaque/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/opaque/widgets/tooltip.svgz b/Desktop/opaque/widgets/tooltip.svgz deleted file mode 100644 index 088e11f..0000000 Binary files a/Desktop/opaque/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/plasma/color-schemes/NebulaDark.colors b/Desktop/plasma/color-schemes/NebulaDark.colors deleted file mode 100644 index 3b300ee..0000000 --- a/Desktop/plasma/color-schemes/NebulaDark.colors +++ /dev/null @@ -1,119 +0,0 @@ -[ColorEffects:Disabled] -Color=56,56,56 -ColorAmount=0 -ColorEffect=0 -ContrastAmount=0.65 -ContrastEffect=1 -IntensityAmount=0.1 -IntensityEffect=2 - -[ColorEffects:Inactive] -ChangeSelectionColor=true -Color=112,111,110 -ColorAmount=0.025 -ColorEffect=2 -ContrastAmount=0.1 -ContrastEffect=2 -Enable=false -IntensityAmount=0 -IntensityEffect=0 - -[Colors:Button] -BackgroundAlternate=25,28,42 -BackgroundNormal=18,21,33 -DecorationFocus=111,92,255 -DecorationHover=104,92,255 -ForegroundActive=143,132,255 -ForegroundInactive=140,145,165 -ForegroundLink=136,170,255 -ForegroundNegative=255,98,118 -ForegroundNeutral=255,194,102 -ForegroundNormal=236,240,255 -ForegroundPositive=92,230,170 -ForegroundVisited=180,142,255 - -[Colors:Complementary] -BackgroundAlternate=20,24,38 -BackgroundNormal=10,13,24 -DecorationFocus=111,92,255 -DecorationHover=104,92,255 -ForegroundActive=143,132,255 -ForegroundInactive=138,144,166 -ForegroundLink=136,170,255 -ForegroundNegative=255,98,118 -ForegroundNeutral=255,194,102 -ForegroundNormal=238,242,255 -ForegroundPositive=92,230,170 -ForegroundVisited=180,142,255 - -[Colors:Selection] -BackgroundAlternate=111,92,255 -BackgroundNormal=104,92,255 -DecorationFocus=143,132,255 -DecorationHover=143,132,255 -ForegroundActive=255,255,255 -ForegroundInactive=228,230,245 -ForegroundLink=255,255,255 -ForegroundNegative=255,220,225 -ForegroundNeutral=255,245,214 -ForegroundNormal=255,255,255 -ForegroundPositive=220,255,242 -ForegroundVisited=245,238,255 - -[Colors:Tooltip] -BackgroundAlternate=22,25,40 -BackgroundNormal=13,16,28 -DecorationFocus=111,92,255 -DecorationHover=104,92,255 -ForegroundActive=143,132,255 -ForegroundInactive=150,156,178 -ForegroundLink=136,170,255 -ForegroundNegative=255,98,118 -ForegroundNeutral=255,194,102 -ForegroundNormal=238,242,255 -ForegroundPositive=92,230,170 -ForegroundVisited=180,142,255 - -[Colors:View] -BackgroundAlternate=13,17,31 -BackgroundNormal=8,11,22 -DecorationFocus=111,92,255 -DecorationHover=104,92,255 -ForegroundActive=143,132,255 -ForegroundInactive=137,143,165 -ForegroundLink=136,170,255 -ForegroundNegative=255,98,118 -ForegroundNeutral=255,194,102 -ForegroundNormal=232,237,252 -ForegroundPositive=92,230,170 -ForegroundVisited=180,142,255 - -[Colors:Window] -BackgroundAlternate=16,20,34 -BackgroundNormal=10,13,24 -DecorationFocus=111,92,255 -DecorationHover=104,92,255 -ForegroundActive=143,132,255 -ForegroundInactive=144,150,172 -ForegroundLink=136,170,255 -ForegroundNegative=255,98,118 -ForegroundNeutral=255,194,102 -ForegroundNormal=235,240,255 -ForegroundPositive=92,230,170 -ForegroundVisited=180,142,255 - -[General] -ColorScheme=Nebula Dark -Name=Nebula Dark -shadeSortColumn=true - -[KDE] -contrast=4 - -[WM] -activeBackground=10,13,24 -activeBlend=10,13,24 -activeForeground=235,240,255 -inactiveBackground=13,17,31 -inactiveBlend=13,17,31 -inactiveForeground=145,151,173 diff --git a/Desktop/plasma/desktoptheme/Nebula/README-Desktop.md b/Desktop/plasma/desktoptheme/Nebula/README-Desktop.md deleted file mode 100644 index aa6492e..0000000 --- a/Desktop/plasma/desktoptheme/Nebula/README-Desktop.md +++ /dev/null @@ -1,271 +0,0 @@ -# NebulaOS Desktop Mode - -Desktop Mode is the full Linux desktop experience for NebulaOS. - -It exists because NebulaOS should not only be a console-style interface. -It should also be a capable desktop operating system when the user needs one. - -Bigscreen Mode is for controller-first gaming and media. -Desktop Mode is for everything else. - ---- - -## Purpose - -Desktop Mode gives users access to a normal computer environment. - -It is designed for: - -* File management -* Web browsing -* Productivity -* Development -* Modding -* Troubleshooting -* Advanced settings -* Desktop gaming -* App management -* System maintenance - -NebulaOS should feel simple in Bigscreen Mode, but never locked down. - -Desktop Mode is what keeps NebulaOS flexible. - ---- - -## Recommended Foundation - -The recommended Desktop Mode foundation is: - -* Linux -* KDE Plasma -* SDDM -* Wayland where possible -* X11 fallback where needed -* Custom Nebula theme -* Custom Nebula session entries - -KDE Plasma is recommended because it is: - -* Highly customizable -* Friendly to Linux gaming workflows -* Themeable -* Mature -* Flexible -* Suitable for both desktop and handheld layouts - ---- - -## Design Direction - -Desktop Mode should feel: - -* Clean -* Smooth -* Modern -* Minimal -* Polished -* Fast -* Familiar -* Slightly futuristic - -The design should take inspiration from the clarity and polish of macOS while keeping the flexibility and openness of Linux. - -NebulaOS Desktop Mode should not look like a generic KDE install forever. -The long-term goal is to make it feel like a distinct Nebula desktop experience. - ---- - -## Desktop Mode Responsibilities - -Desktop Mode should provide: - -* File manager access -* Browser access -* Terminal access -* App launcher -* System settings -* Development tools -* Game modding tools -* Desktop game launching -* Access to Bigscreen Mode -* Advanced troubleshooting tools - ---- - -## Relationship to Bigscreen Mode - -NebulaOS has two main sessions: - -```text -Nebula Bigscreen -Nebula Desktop -``` - -### Bigscreen Mode - -Used for: - -* Controller navigation -* Game launching -* TV use -* Handheld use -* Couch workflows -* Simple settings -* Console-like experience - -### Desktop Mode - -Used for: - -* Mouse and keyboard use -* Advanced configuration -* Development -* File browsing -* Modding -* Productivity -* Troubleshooting - -Both modes should feel connected, but they should not try to do the same job. - ---- - -## Session Switching - -Long-term, NebulaOS should allow users to switch between modes easily. - -Possible flows: - -```text -Bigscreen Mode → Power Menu → Switch to Desktop Mode -Desktop Mode → App Launcher → Return to Bigscreen Mode -Login Screen → Choose Nebula Bigscreen or Nebula Desktop -``` - -The user should never feel trapped in either mode. - ---- - -## KDE Customization Goals - -Desktop Mode customization may include: - -* Nebula global theme -* Nebula icon theme -* Nebula cursor theme -* Nebula wallpaper set -* Custom SDDM theme -* Custom splash screen -* Custom panel layout -* Custom application launcher -* Custom desktop widgets -* Preinstalled Nebula apps -* Desktop shortcut for Bigscreen Mode - ---- - -## Suggested Desktop Layout - -A possible default layout: - -```text -Top panel -├── App launcher -├── Active window title -├── System tray -├── Network -├── Audio -├── Battery -└── Clock - -Desktop -├── Nebula wallpaper -├── Minimal icons -└── Optional widgets - -Dock or bottom panel -├── Browser -├── Files -├── Terminal -├── Settings -├── Nebula Bigscreen -└── Nebula Library -``` - ---- - -## Visual Identity - -Desktop Mode should share visual DNA with Bigscreen Mode. - -Shared elements may include: - -* Nebula gradients -* Deep blue and purple tones -* Soft glass panels -* Rounded corners -* Subtle glow -* Clean typography -* Space-inspired wallpapers -* Calm animation -* Consistent icon language - -Desktop Mode should be calmer and more practical than Bigscreen Mode, but still recognizably Nebula. - ---- - -## System Tools - -Desktop Mode may eventually include Nebula-specific tools such as: - -* Nebula Control Center -* Nebula Update Manager -* Nebula Library desktop app -* Nebula Browser -* Nebula Store -* Nebula Settings bridge -* Nebula account/profile manager -* Nebula system diagnostics - ---- - -## Development Goals - -Initial Desktop Mode goals: - -* Pick KDE Plasma as the base -* Create a Nebula desktop theme -* Create a Nebula SDDM login theme -* Add Bigscreen and Desktop sessions -* Add a launcher shortcut back into Bigscreen Mode -* Keep normal Linux tools available -* Avoid breaking standard KDE functionality - ---- - -## What Desktop Mode Should Avoid - -Desktop Mode should avoid: - -* Removing normal Linux functionality -* Hiding important system tools -* Making KDE harder to use -* Becoming too console-like -* Depending on Bigscreen Mode to function -* Locking users into one workflow - -Desktop Mode should be powerful, normal, and clean. - ---- - -## Success Criteria - -Desktop Mode is successful when: - -* Users can use NebulaOS like a normal Linux desktop -* KDE feels visually integrated with NebulaOS -* Bigscreen Mode can be launched easily -* Advanced settings are accessible -* Development and troubleshooting are possible -* The desktop feels polished instead of temporary -* The system still feels like one unified OS diff --git a/Desktop/plasma/desktoptheme/Nebula/dialogs/background.svgz b/Desktop/plasma/desktoptheme/Nebula/dialogs/background.svgz deleted file mode 100644 index ab2a5a6..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/akonadi.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/akonadi.svgz deleted file mode 100644 index 26e17e0..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/akonadi.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/akregator.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/akregator.svgz deleted file mode 100644 index 2cc37e0..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/akregator.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/amarok.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/amarok.svgz deleted file mode 100644 index 3ec39aa..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/amarok.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/applications.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/applications.svgz deleted file mode 100644 index 6fd0675..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/applications.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/apport.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/apport.svgz deleted file mode 100644 index 24753d6..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/apport.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/audio.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/audio.svgz deleted file mode 100644 index 71f258f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/audio.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/battery.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/battery.svgz deleted file mode 100644 index d24ce03..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/battery.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/bookmarks.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/bookmarks.svgz deleted file mode 100644 index ad95bd2..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/bookmarks.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/cantata.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/cantata.svgz deleted file mode 100644 index 4a57f2a..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/cantata.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/computer.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/computer.svgz deleted file mode 100644 index 281b9b4..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/computer.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/configure.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/configure.svgz deleted file mode 100644 index c74f3e0..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/configure.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/device.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/device.svgz deleted file mode 100644 index 1993d02..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/device.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/disk.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/disk.svgz deleted file mode 100644 index 2f018fa..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/disk.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/distribute.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/distribute.svgz deleted file mode 100644 index 689eb8b..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/distribute.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/document.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/document.svgz deleted file mode 100644 index da3ef9f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/document.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/drive.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/drive.svgz deleted file mode 100644 index 448391e..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/drive.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/edit.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/edit.svgz deleted file mode 100644 index 361e13f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/edit.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/fcitx.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/fcitx.svgz deleted file mode 100644 index 8e2f07a..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/fcitx.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/go.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/go.svgz deleted file mode 100644 index f473fc4..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/go.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/ime.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/ime.svgz deleted file mode 100644 index 578c35c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/ime.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/input.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/input.svgz deleted file mode 100644 index 34931c5..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/input.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kalarm.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kalarm.svgz deleted file mode 100644 index bc1d5a0..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kalarm.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kdeconnect.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kdeconnect.svgz deleted file mode 100644 index ddfa196..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kdeconnect.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/keyboard.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/keyboard.svgz deleted file mode 100644 index c3ed2ff..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/keyboard.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kget.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kget.svgz deleted file mode 100644 index c737183..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kget.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kgpg.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kgpg.svgz deleted file mode 100644 index fd0588c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kgpg.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kleopatra.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kleopatra.svgz deleted file mode 100644 index 39835a3..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kleopatra.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/klipper.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/klipper.svgz deleted file mode 100644 index c331ae5..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/klipper.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kmail.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kmail.svgz deleted file mode 100644 index 1ed8492..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kmail.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/konv_message.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/konv_message.svgz deleted file mode 100644 index 47dd526..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/konv_message.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/konversation.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/konversation.svgz deleted file mode 100644 index 70406c5..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/konversation.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kopete.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kopete.svgz deleted file mode 100644 index 6d17fa8..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kopete.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/korgac.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/korgac.svgz deleted file mode 100644 index ca61a31..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/korgac.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kpackagekit.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kpackagekit.svgz deleted file mode 100644 index 22e894f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kpackagekit.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kruler.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kruler.svgz deleted file mode 100644 index d5d69d9..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kruler.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kteatime.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kteatime.svgz deleted file mode 100644 index b515c8b..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kteatime.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/ktorrent.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/ktorrent.svgz deleted file mode 100644 index 0cef8ef..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/ktorrent.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/kup.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/kup.svgz deleted file mode 100644 index 81a9efe..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/kup.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/list.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/list.svgz deleted file mode 100644 index 182df73..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/list.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/mail.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/mail.svgz deleted file mode 100644 index 0d88643..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/mail.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/media.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/media.svgz deleted file mode 100644 index d250075..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/media.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/mobile.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/mobile.svgz deleted file mode 100644 index e44ad0f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/mobile.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/network.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/network.svgz deleted file mode 100644 index de5f314..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/network.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/notification.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/notification.svgz deleted file mode 100644 index 85575de..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/notification.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/osd.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/osd.svgz deleted file mode 100644 index cd9e569..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/osd.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/phone.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/phone.svgz deleted file mode 100644 index 4d1e65b..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/phone.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/plasmavault.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/plasmavault.svgz deleted file mode 100644 index 61f5a32..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/plasmavault.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/plasmavault_error.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/plasmavault_error.svgz deleted file mode 100644 index 43b9d7a..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/plasmavault_error.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/preferences.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/preferences.svgz deleted file mode 100644 index 2ee1f7d..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/preferences.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/printer.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/printer.svgz deleted file mode 100644 index c3aebba..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/printer.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/quassel.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/quassel.svgz deleted file mode 100644 index 3d3b678..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/quassel.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/search.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/search.svgz deleted file mode 100644 index 76a2444..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/search.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/slc.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/slc.svgz deleted file mode 100644 index 0a8cb18..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/slc.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/software.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/software.svgz deleted file mode 100644 index 3af4b67..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/software.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/start.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/start.svgz deleted file mode 100644 index c2865ac..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/start.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/system.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/system.svgz deleted file mode 100644 index 847fadf..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/system.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/touchpad.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/touchpad.svgz deleted file mode 100644 index 2116b82..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/touchpad.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/user.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/user.svgz deleted file mode 100644 index 01dc29e..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/user.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/video-card.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/video-card.svgz deleted file mode 100644 index 1931b38..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/video-card.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/video.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/video.svgz deleted file mode 100644 index 941e55e..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/video.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/view.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/view.svgz deleted file mode 100644 index c9f1147..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/view.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/vlc.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/vlc.svgz deleted file mode 100644 index a2f6a6c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/vlc.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/wallet.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/wallet.svgz deleted file mode 100644 index 9fdf01c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/wallet.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/window.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/window.svgz deleted file mode 100644 index 2a183ca..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/window.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/yakuake.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/yakuake.svgz deleted file mode 100644 index d432446..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/yakuake.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/icons/zoom.svgz b/Desktop/plasma/desktoptheme/Nebula/icons/zoom.svgz deleted file mode 100644 index 824b80c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/icons/zoom.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/metadata.json b/Desktop/plasma/desktoptheme/Nebula/metadata.json deleted file mode 100644 index e4922a0..0000000 --- a/Desktop/plasma/desktoptheme/Nebula/metadata.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "", - "Name": "Andrew Zambazos" - } - ], - "Category": "", - "Description": "NebulaOS Desktop Mode Plasma theme", - "Description[ar]": "سمة سطح مكتب Nebula Plasma لـ NebulaOS", - "Description[az]": "Nebula Plasma desktop theme for NebulaOS", - "Description[be]": "Nebula Plasma desktop theme for NebulaOS", - "Description[bg]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ca@valencia]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ca]": "Nebula Plasma desktop theme for NebulaOS", - "Description[cs]": "Nebula Plasma desktop theme for NebulaOS", - "Description[da]": "Nebula Plasma desktop theme for NebulaOS", - "Description[de]": "Nebula Plasma-Desktopthema für NebulaOS", - "Description[el]": "Nebula Plasma desktop theme for NebulaOS", - "Description[en_GB]": "Nebula Plasma desktop theme for NebulaOS", - "Description[eo]": "Nebula Plasma desktop theme for NebulaOS", - "Description[es]": "Tema de escritorio Nebula Plasma para NebulaOS", - "Description[eu]": "Nebula Plasma desktop theme for NebulaOS", - "Description[fi]": "Nebula Plasma desktop theme for NebulaOS", - "Description[fr]": "Thème de bureau Nebula Plasma pour NebulaOS", - "Description[gl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[he]": "Nebula Plasma desktop theme for NebulaOS", - "Description[hi]": "Nebula Plasma desktop theme for NebulaOS", - "Description[hu]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ia]": "Nebula Plasma desktop theme for NebulaOS", - "Description[id]": "Nebula Plasma desktop theme for NebulaOS", - "Description[is]": "Nebula Plasma desktop theme for NebulaOS", - "Description[it]": "Tema desktop Nebula Plasma per NebulaOS", - "Description[ka]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ko]": "NebulaOS용 Nebula Plasma 데스크톱 테마", - "Description[lt]": "Nebula Plasma desktop theme for NebulaOS", - "Description[lv]": "Nebula Plasma desktop theme for NebulaOS", - "Description[nb]": "Nebula Plasma desktop theme for NebulaOS", - "Description[nl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[nn]": "Nebula Plasma desktop theme for NebulaOS", - "Description[pl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[pt]": "Tema de ambiente de trabalho Nebula Plasma para NebulaOS", - "Description[pt_BR]": "Tema de área de trabalho Nebula Plasma para o NebulaOS", - "Description[ro]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ru]": "Тема рабочего стола Nebula Plasma для NebulaOS", - "Description[sa]": "Nebula Plasma desktop theme for NebulaOS", - "Description[sk]": "Nebula Plasma desktop theme for NebulaOS", - "Description[sl]": "Nebula Plasma desktop theme for NebulaOS", - "Description[sv]": "Nebula Plasma desktop theme for NebulaOS", - "Description[ta]": "Nebula Plasma desktop theme for NebulaOS", - "Description[tr]": "Nebula Plasma desktop theme for NebulaOS", - "Description[uk]": "Nebula Plasma desktop theme for NebulaOS", - "Description[vi]": "Nebula Plasma desktop theme for NebulaOS", - "Description[zh_CN]": "NebulaOS 的 Nebula Plasma 桌面主题", - "Description[zh_TW]": "NebulaOS 的 Nebula Plasma 桌面主題", - "EnabledByDefault": true, - "Id": "Nebula", - "License": "LGPL", - "Name": "Nebula Plasma", - "Name[ar]": "Nebula Plasma", - "Name[az]": "Nebula Plasma", - "Name[be]": "Nebula Plasma", - "Name[bg]": "Nebula Plasma", - "Name[ca@valencia]": "Nebula Plasma", - "Name[ca]": "Nebula Plasma", - "Name[cs]": "Nebula Plasma", - "Name[da]": "Nebula Plasma", - "Name[de]": "Nebula Plasma", - "Name[el]": "Nebula Plasma", - "Name[en_GB]": "Nebula Plasma", - "Name[eo]": "Nebula Plasma", - "Name[es]": "Nebula Plasma", - "Name[eu]": "Nebula Plasma", - "Name[fi]": "Nebula Plasma", - "Name[fr]": "Nebula Plasma", - "Name[gl]": "Nebula Plasma", - "Name[he]": "Nebula Plasma", - "Name[hi]": "Nebula Plasma", - "Name[hu]": "Nebula Plasma", - "Name[ia]": "Nebula Plasma", - "Name[id]": "Nebula Plasma", - "Name[is]": "Nebula Plasma", - "Name[it]": "Nebula Plasma", - "Name[ka]": "Nebula Plasma", - "Name[ko]": "Nebula Plasma", - "Name[lt]": "Nebula Plasma", - "Name[lv]": "Nebula Plasma", - "Name[nb]": "Nebula Plasma", - "Name[nl]": "Nebula Plasma", - "Name[nn]": "Nebula Plasma", - "Name[pl]": "Nebula Plasma", - "Name[pt]": "Nebula Plasma", - "Name[pt_BR]": "Nebula Plasma", - "Name[ro]": "Nebula Plasma", - "Name[ru]": "Nebula Plasma", - "Name[sa]": "Nebula Plasma", - "Name[sk]": "Nebula Plasma", - "Name[sl]": "Nebula Plasma", - "Name[sv]": "Nebula Plasma", - "Name[ta]": "Nebula Plasma", - "Name[tr]": "Nebula Plasma", - "Name[uk]": "Nebula Plasma", - "Name[vi]": "Nebula Plasma", - "Name[zh_CN]": "Nebula Plasma", - "Name[zh_TW]": "Nebula Plasma", - "Version": "0.1.0", - "Website": "https://git.zambazosmedia.group/nebula-project/Nebula-OS" - }, - "X-Plasma-API": "5.0" -} diff --git a/Desktop/plasma/desktoptheme/Nebula/opaque/dialogs/background.svgz b/Desktop/plasma/desktoptheme/Nebula/opaque/dialogs/background.svgz deleted file mode 100644 index 95371eb..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/opaque/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/opaque/widgets/panel-background.svgz b/Desktop/plasma/desktoptheme/Nebula/opaque/widgets/panel-background.svgz deleted file mode 100644 index bafa330..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/opaque/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/opaque/widgets/tooltip.svgz b/Desktop/plasma/desktoptheme/Nebula/opaque/widgets/tooltip.svgz deleted file mode 100644 index 088e11f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/opaque/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/plasmarc b/Desktop/plasma/desktoptheme/Nebula/plasmarc deleted file mode 100644 index 4b91569..0000000 --- a/Desktop/plasma/desktoptheme/Nebula/plasmarc +++ /dev/null @@ -1,17 +0,0 @@ -[Wallpaper] -defaultWallpaperTheme=Next -defaultFileSuffix=.png -defaultWidth=1920 -defaultHeight=1080 - -[ContrastEffect] -enabled=true -contrast=1.0 -saturation=1.5 - -[AdaptiveTransparency] -enabled=true - -[Theme] -name=Nebula Plasma - diff --git a/Desktop/plasma/desktoptheme/Nebula/solid/dialogs/background.svgz b/Desktop/plasma/desktoptheme/Nebula/solid/dialogs/background.svgz deleted file mode 100644 index b787c2c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/solid/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/solid/widgets/background.svgz b/Desktop/plasma/desktoptheme/Nebula/solid/widgets/background.svgz deleted file mode 100644 index 2b6b4f8..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/solid/widgets/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/solid/widgets/panel-background.svgz b/Desktop/plasma/desktoptheme/Nebula/solid/widgets/panel-background.svgz deleted file mode 100644 index 0f66937..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/solid/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/solid/widgets/tooltip.svgz b/Desktop/plasma/desktoptheme/Nebula/solid/widgets/tooltip.svgz deleted file mode 100644 index 4713a1c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/solid/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/translucent/dialogs/background.svgz b/Desktop/plasma/desktoptheme/Nebula/translucent/dialogs/background.svgz deleted file mode 100644 index cd725f1..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/translucent/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/background.svgz b/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/background.svgz deleted file mode 100644 index 635ede7..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/panel-background.svgz b/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/panel-background.svgz deleted file mode 100644 index 035b914..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/tooltip.svgz b/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/tooltip.svgz deleted file mode 100644 index 4ec55be..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/translucent/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/weather/wind-arrows.svgz b/Desktop/plasma/desktoptheme/Nebula/weather/wind-arrows.svgz deleted file mode 100644 index 666ec85..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/weather/wind-arrows.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/action-overlays.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/action-overlays.svgz deleted file mode 100644 index bc22be5..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/action-overlays.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/actionbutton.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/actionbutton.svgz deleted file mode 100644 index 017d891..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/actionbutton.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/analog_meter.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/analog_meter.svgz deleted file mode 100644 index 1576ca3..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/analog_meter.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/arrows.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/arrows.svgz deleted file mode 100644 index b1b2870..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/arrows.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/background.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/background.svgz deleted file mode 100644 index 070096a..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/bar_meter_horizontal.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/bar_meter_horizontal.svgz deleted file mode 100644 index 45b6185..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/bar_meter_horizontal.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/bar_meter_vertical.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/bar_meter_vertical.svgz deleted file mode 100644 index f77c80e..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/bar_meter_vertical.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/branding.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/branding.svgz deleted file mode 100644 index c06df31..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/branding.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/busywidget.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/busywidget.svgz deleted file mode 100644 index f603483..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/busywidget.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/button.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/button.svgz deleted file mode 100644 index eeef942..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/button.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/calendar.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/calendar.svgz deleted file mode 100644 index 288d790..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/calendar.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/checkmarks.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/checkmarks.svgz deleted file mode 100644 index 2b9a521..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/checkmarks.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/clock.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/clock.svgz deleted file mode 100644 index 77425a8..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/clock.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/configuration-icons.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/configuration-icons.svgz deleted file mode 100644 index 284dfff..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/configuration-icons.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/containment-controls.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/containment-controls.svgz deleted file mode 100644 index 4981130..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/containment-controls.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/dragger.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/dragger.svgz deleted file mode 100644 index 19d0ed6..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/dragger.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/frame.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/frame.svgz deleted file mode 100644 index 304ffb6..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/frame.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/glowbar.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/glowbar.svgz deleted file mode 100644 index 8a96d79..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/glowbar.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/line.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/line.svgz deleted file mode 100644 index dd6c8c6..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/line.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/lineedit.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/lineedit.svgz deleted file mode 100644 index 8203370..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/lineedit.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/listitem.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/listitem.svgz deleted file mode 100644 index 25eca3f..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/listitem.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/margins-highlight.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/margins-highlight.svgz deleted file mode 100644 index 34503d0..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/margins-highlight.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/media-delegate.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/media-delegate.svgz deleted file mode 100644 index 616f897..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/media-delegate.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/menubaritem.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/menubaritem.svgz deleted file mode 100644 index dd2aeaa..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/menubaritem.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/monitor.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/monitor.svgz deleted file mode 100644 index 21498e4..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/monitor.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/notes.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/notes.svgz deleted file mode 100644 index 854f817..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/notes.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/pager.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/pager.svgz deleted file mode 100644 index b616c4d..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/pager.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/panel-background.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/panel-background.svgz deleted file mode 100644 index 1deec09..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/picker.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/picker.svgz deleted file mode 100644 index 871e012..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/picker.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/plasmoidheading.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/plasmoidheading.svgz deleted file mode 100644 index 0569a42..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/plasmoidheading.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/plot-background.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/plot-background.svgz deleted file mode 100644 index 5195628..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/plot-background.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/radiobutton.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/radiobutton.svgz deleted file mode 100644 index c0477af..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/radiobutton.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/scrollbar.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/scrollbar.svgz deleted file mode 100644 index a55666d..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/scrollbar.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/scrollwidget.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/scrollwidget.svgz deleted file mode 100644 index ffc4f39..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/scrollwidget.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/slider.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/slider.svgz deleted file mode 100644 index 08f2319..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/slider.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/switch.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/switch.svgz deleted file mode 100644 index 98bdfb9..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/switch.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/tabbar.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/tabbar.svgz deleted file mode 100644 index 7dbdd2b..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/tabbar.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/tasks.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/tasks.svgz deleted file mode 100644 index 26d44ec..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/tasks.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/timer.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/timer.svgz deleted file mode 100644 index 68c81c5..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/timer.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/toolbar.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/toolbar.svgz deleted file mode 100644 index eb8471c..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/toolbar.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/tooltip.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/tooltip.svgz deleted file mode 100644 index 0a4ac7e..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/translucentbackground.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/translucentbackground.svgz deleted file mode 100644 index 001e1a1..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/translucentbackground.svgz and /dev/null differ diff --git a/Desktop/plasma/desktoptheme/Nebula/widgets/viewitem.svgz b/Desktop/plasma/desktoptheme/Nebula/widgets/viewitem.svgz deleted file mode 100644 index c2e8d63..0000000 Binary files a/Desktop/plasma/desktoptheme/Nebula/widgets/viewitem.svgz and /dev/null differ diff --git a/Desktop/plasma/look-and-feel/org.nebula.desktop/metadata.json b/Desktop/plasma/look-and-feel/org.nebula.desktop/metadata.json deleted file mode 100644 index da3499f..0000000 --- a/Desktop/plasma/look-and-feel/org.nebula.desktop/metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "KPlugin": { - "Id": "org.nebula.desktop", - "Name": "Nebula Desktop", - "Description": "NebulaOS Desktop Mode look and feel package", - "Version": "0.1.0", - "Category": "Plasma Look And Feel", - "License": "LGPL", - "Authors": [ - { - "Name": "Andrew Zambazos", - "Email": "" - } - ] - }, - "X-KPackage-Structure": "Plasma/LookAndFeel" -} diff --git a/Desktop/plasma/plasmoids/org.nebula.launcher/contents/ui/main.qml b/Desktop/plasma/plasmoids/org.nebula.launcher/contents/ui/main.qml deleted file mode 100644 index 76b9677..0000000 --- a/Desktop/plasma/plasmoids/org.nebula.launcher/contents/ui/main.qml +++ /dev/null @@ -1,139 +0,0 @@ -import QtQuick -import QtQuick.Layouts -import org.kde.plasma.components as PlasmaComponents3 -import org.kde.plasma.plasmoid - -PlasmoidItem { - id: root - - readonly property int compactSize: 48 - readonly property int cardWidth: 420 - readonly property int cardHeight: 360 - - implicitWidth: cardWidth - implicitHeight: cardHeight - preferredRepresentation: fullRepresentation - switchWidth: cardWidth - switchHeight: cardHeight - - compactRepresentation: Rectangle { - id: compactButton - - width: root.compactSize - height: root.compactSize - implicitWidth: root.compactSize - implicitHeight: root.compactSize - radius: 14 - color: "#090A14" - border.color: "#6F5CFF" - border.width: 1 - - PlasmaComponents3.Label { - anchors.centerIn: parent - text: "N" - color: "#FFFFFF" - font.pixelSize: 24 - font.bold: true - } - - MouseArea { - anchors.fill: parent - hoverEnabled: true - cursorShape: Qt.PointingHandCursor - onClicked: root.expanded = !root.expanded - } - } - - fullRepresentation: Item { - id: fullRoot - - width: root.cardWidth - height: root.cardHeight - implicitWidth: root.cardWidth - implicitHeight: root.cardHeight - - Rectangle { - id: card - - width: root.cardWidth - height: root.cardHeight - anchors.centerIn: parent - clip: true - radius: 24 - color: "#111321" - border.color: "#6F5CFF" - border.width: 1 - - Rectangle { - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - anchors.margins: 18 - height: 1 - color: "#30325A" - } - - ColumnLayout { - anchors.fill: parent - anchors.margins: 24 - spacing: 16 - - ColumnLayout { - Layout.fillWidth: true - spacing: 6 - - PlasmaComponents3.Label { - text: "NebulaOS" - color: "#FFFFFF" - font.pixelSize: 28 - font.bold: true - } - - PlasmaComponents3.Label { - text: "Desktop Mode prototype" - color: "#A7A8C8" - font.pixelSize: 14 - } - } - - Rectangle { - Layout.fillWidth: true - Layout.preferredHeight: 1 - color: "#30325A" - } - - GridLayout { - Layout.fillWidth: true - columns: 2 - rowSpacing: 12 - columnSpacing: 12 - - Repeater { - model: ["Library", "Settings", "Bigscreen", "Power"] - - delegate: PlasmaComponents3.Button { - Layout.fillWidth: true - Layout.preferredHeight: 52 - text: modelData - icon.name: modelData === "Library" ? "applications-games" - : modelData === "Settings" ? "settings-configure" - : modelData === "Bigscreen" ? "video-display" - : "system-shutdown" - onClicked: console.log("Nebula Launcher:", modelData) - } - } - } - - Item { Layout.fillHeight: true } - - PlasmaComponents3.Label { - Layout.fillWidth: true - text: "Starter launcher UI for NebulaOS Desktop Mode." - color: "#7F81A8" - font.pixelSize: 12 - wrapMode: Text.WordWrap - } - } - } - } -} diff --git a/Desktop/plasma/plasmoids/org.nebula.launcher/metadata.json b/Desktop/plasma/plasmoids/org.nebula.launcher/metadata.json deleted file mode 100644 index d636563..0000000 --- a/Desktop/plasma/plasmoids/org.nebula.launcher/metadata.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "", - "Name": "Andrew Zambazos" - } - ], - "Category": "Application Launchers", - "Description": "NebulaOS Desktop Mode launcher prototype", - "EnabledByDefault": true, - "Icon": "applications-games", - "Id": "org.nebula.launcher", - "License": "LGPL", - "Name": "Nebula Launcher", - "Version": "0.1.0" - }, - "KPackageStructure": "Plasma/Applet", - "X-KDE-PluginInfo-Name": "org.nebula.launcher", - "X-Plasma-API-Minimum-Version": "6.0" -} diff --git a/Desktop/plasmarc b/Desktop/plasmarc deleted file mode 100644 index d375649..0000000 --- a/Desktop/plasmarc +++ /dev/null @@ -1,13 +0,0 @@ -[Wallpaper] -defaultWallpaperTheme=Next -defaultFileSuffix=.png -defaultWidth=1920 -defaultHeight=1080 - -[ContrastEffect] -enabled=true -contrast=1.0 -saturation=1.5 - -[AdaptiveTransparency] -enabled=true diff --git a/Desktop/scripts/apply-nebula-desktop.sh b/Desktop/scripts/apply-nebula-desktop.sh deleted file mode 100755 index 2026f8a..0000000 --- a/Desktop/scripts/apply-nebula-desktop.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash -set -e - -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" - -echo "Applying NebulaOS Desktop files from:" -echo "$ROOT_DIR" - -echo "Installing Plasma desktop theme..." -mkdir -p "$HOME/.local/share/plasma/desktoptheme" -rm -rf "$HOME/.local/share/plasma/desktoptheme/Nebula" -cp -r "$ROOT_DIR/plasma/desktoptheme/Nebula" "$HOME/.local/share/plasma/desktoptheme/" - -echo "Installing Look and Feel package..." -mkdir -p "$HOME/.local/share/plasma/look-and-feel" -rm -rf "$HOME/.local/share/plasma/look-and-feel/org.nebula.desktop" -cp -r "$ROOT_DIR/plasma/look-and-feel/org.nebula.desktop" "$HOME/.local/share/plasma/look-and-feel/" - -echo "Installing Nebula Launcher plasmoid..." -mkdir -p "$HOME/.local/share/plasma/plasmoids" -rm -rf "$HOME/.local/share/plasma/plasmoids/org.nebula.launcher" -cp -r "$ROOT_DIR/plasma/plasmoids/org.nebula.launcher" "$HOME/.local/share/plasma/plasmoids/" - -echo "Installing Nebula Dark color scheme..." -mkdir -p "$HOME/.local/share/color-schemes" -cp "$ROOT_DIR/plasma/color-schemes/NebulaDark.colors" "$HOME/.local/share/color-schemes/NebulaDark.colors" - -echo "Refreshing KDE package cache..." -if command -v kbuildsycoca6 >/dev/null 2>&1; then - kbuildsycoca6 -else - echo "kbuildsycoca6 not found; skipping cache refresh." -fi - -echo "Restarting Plasma Shell..." -systemctl --user restart plasma-plasmashell.service || { - echo "systemd restart failed; falling back to kquitapp6/plasmashell." - kquitapp6 plasmashell || true - nohup plasmashell >/tmp/nebula-plasmashell.log 2>&1 & -} - -echo "NebulaOS Desktop applied." diff --git a/Desktop/scripts/reload-plasma.sh b/Desktop/scripts/reload-plasma.sh deleted file mode 100755 index d43a7a9..0000000 --- a/Desktop/scripts/reload-plasma.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -set -e - -echo "Refreshing KDE package cache..." -if command -v kbuildsycoca6 >/dev/null 2>&1; then - kbuildsycoca6 -else - echo "kbuildsycoca6 not found; skipping cache refresh." -fi - -echo "Restarting Plasma Shell..." -systemctl --user restart plasma-plasmashell.service || { - echo "systemd restart failed; falling back to kquitapp6/plasmashell." - kquitapp6 plasmashell || true - nohup plasmashell >/tmp/nebula-plasmashell.log 2>&1 & -} - -echo "Plasma Shell reload requested." diff --git a/Desktop/solid/dialogs/background.svgz b/Desktop/solid/dialogs/background.svgz deleted file mode 100644 index b787c2c..0000000 Binary files a/Desktop/solid/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/solid/widgets/background.svgz b/Desktop/solid/widgets/background.svgz deleted file mode 100644 index 2b6b4f8..0000000 Binary files a/Desktop/solid/widgets/background.svgz and /dev/null differ diff --git a/Desktop/solid/widgets/panel-background.svgz b/Desktop/solid/widgets/panel-background.svgz deleted file mode 100644 index 0f66937..0000000 Binary files a/Desktop/solid/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/solid/widgets/tooltip.svgz b/Desktop/solid/widgets/tooltip.svgz deleted file mode 100644 index 4713a1c..0000000 Binary files a/Desktop/solid/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/translucent/dialogs/background.svgz b/Desktop/translucent/dialogs/background.svgz deleted file mode 100644 index cd725f1..0000000 Binary files a/Desktop/translucent/dialogs/background.svgz and /dev/null differ diff --git a/Desktop/translucent/widgets/background.svgz b/Desktop/translucent/widgets/background.svgz deleted file mode 100644 index 635ede7..0000000 Binary files a/Desktop/translucent/widgets/background.svgz and /dev/null differ diff --git a/Desktop/translucent/widgets/panel-background.svgz b/Desktop/translucent/widgets/panel-background.svgz deleted file mode 100644 index 035b914..0000000 Binary files a/Desktop/translucent/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/translucent/widgets/tooltip.svgz b/Desktop/translucent/widgets/tooltip.svgz deleted file mode 100644 index 4ec55be..0000000 Binary files a/Desktop/translucent/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/weather/wind-arrows.svgz b/Desktop/weather/wind-arrows.svgz deleted file mode 100644 index 666ec85..0000000 Binary files a/Desktop/weather/wind-arrows.svgz and /dev/null differ diff --git a/Desktop/widgets/action-overlays.svgz b/Desktop/widgets/action-overlays.svgz deleted file mode 100644 index bc22be5..0000000 Binary files a/Desktop/widgets/action-overlays.svgz and /dev/null differ diff --git a/Desktop/widgets/actionbutton.svgz b/Desktop/widgets/actionbutton.svgz deleted file mode 100644 index 017d891..0000000 Binary files a/Desktop/widgets/actionbutton.svgz and /dev/null differ diff --git a/Desktop/widgets/analog_meter.svgz b/Desktop/widgets/analog_meter.svgz deleted file mode 100644 index 1576ca3..0000000 Binary files a/Desktop/widgets/analog_meter.svgz and /dev/null differ diff --git a/Desktop/widgets/arrows.svgz b/Desktop/widgets/arrows.svgz deleted file mode 100644 index b1b2870..0000000 Binary files a/Desktop/widgets/arrows.svgz and /dev/null differ diff --git a/Desktop/widgets/background.svgz b/Desktop/widgets/background.svgz deleted file mode 100644 index 070096a..0000000 Binary files a/Desktop/widgets/background.svgz and /dev/null differ diff --git a/Desktop/widgets/bar_meter_horizontal.svgz b/Desktop/widgets/bar_meter_horizontal.svgz deleted file mode 100644 index 45b6185..0000000 Binary files a/Desktop/widgets/bar_meter_horizontal.svgz and /dev/null differ diff --git a/Desktop/widgets/bar_meter_vertical.svgz b/Desktop/widgets/bar_meter_vertical.svgz deleted file mode 100644 index f77c80e..0000000 Binary files a/Desktop/widgets/bar_meter_vertical.svgz and /dev/null differ diff --git a/Desktop/widgets/branding.svgz b/Desktop/widgets/branding.svgz deleted file mode 100644 index c06df31..0000000 Binary files a/Desktop/widgets/branding.svgz and /dev/null differ diff --git a/Desktop/widgets/busywidget.svgz b/Desktop/widgets/busywidget.svgz deleted file mode 100644 index f603483..0000000 Binary files a/Desktop/widgets/busywidget.svgz and /dev/null differ diff --git a/Desktop/widgets/button.svgz b/Desktop/widgets/button.svgz deleted file mode 100644 index eeef942..0000000 Binary files a/Desktop/widgets/button.svgz and /dev/null differ diff --git a/Desktop/widgets/calendar.svgz b/Desktop/widgets/calendar.svgz deleted file mode 100644 index 288d790..0000000 Binary files a/Desktop/widgets/calendar.svgz and /dev/null differ diff --git a/Desktop/widgets/checkmarks.svgz b/Desktop/widgets/checkmarks.svgz deleted file mode 100644 index 2b9a521..0000000 Binary files a/Desktop/widgets/checkmarks.svgz and /dev/null differ diff --git a/Desktop/widgets/clock.svgz b/Desktop/widgets/clock.svgz deleted file mode 100644 index 77425a8..0000000 Binary files a/Desktop/widgets/clock.svgz and /dev/null differ diff --git a/Desktop/widgets/configuration-icons.svgz b/Desktop/widgets/configuration-icons.svgz deleted file mode 100644 index 284dfff..0000000 Binary files a/Desktop/widgets/configuration-icons.svgz and /dev/null differ diff --git a/Desktop/widgets/containment-controls.svgz b/Desktop/widgets/containment-controls.svgz deleted file mode 100644 index 4981130..0000000 Binary files a/Desktop/widgets/containment-controls.svgz and /dev/null differ diff --git a/Desktop/widgets/dragger.svgz b/Desktop/widgets/dragger.svgz deleted file mode 100644 index 19d0ed6..0000000 Binary files a/Desktop/widgets/dragger.svgz and /dev/null differ diff --git a/Desktop/widgets/frame.svgz b/Desktop/widgets/frame.svgz deleted file mode 100644 index 304ffb6..0000000 Binary files a/Desktop/widgets/frame.svgz and /dev/null differ diff --git a/Desktop/widgets/glowbar.svgz b/Desktop/widgets/glowbar.svgz deleted file mode 100644 index 8a96d79..0000000 Binary files a/Desktop/widgets/glowbar.svgz and /dev/null differ diff --git a/Desktop/widgets/line.svgz b/Desktop/widgets/line.svgz deleted file mode 100644 index dd6c8c6..0000000 Binary files a/Desktop/widgets/line.svgz and /dev/null differ diff --git a/Desktop/widgets/lineedit.svgz b/Desktop/widgets/lineedit.svgz deleted file mode 100644 index 8203370..0000000 Binary files a/Desktop/widgets/lineedit.svgz and /dev/null differ diff --git a/Desktop/widgets/listitem.svgz b/Desktop/widgets/listitem.svgz deleted file mode 100644 index 25eca3f..0000000 Binary files a/Desktop/widgets/listitem.svgz and /dev/null differ diff --git a/Desktop/widgets/margins-highlight.svgz b/Desktop/widgets/margins-highlight.svgz deleted file mode 100644 index 34503d0..0000000 Binary files a/Desktop/widgets/margins-highlight.svgz and /dev/null differ diff --git a/Desktop/widgets/media-delegate.svgz b/Desktop/widgets/media-delegate.svgz deleted file mode 100644 index 616f897..0000000 Binary files a/Desktop/widgets/media-delegate.svgz and /dev/null differ diff --git a/Desktop/widgets/menubaritem.svgz b/Desktop/widgets/menubaritem.svgz deleted file mode 100644 index dd2aeaa..0000000 Binary files a/Desktop/widgets/menubaritem.svgz and /dev/null differ diff --git a/Desktop/widgets/monitor.svgz b/Desktop/widgets/monitor.svgz deleted file mode 100644 index 21498e4..0000000 Binary files a/Desktop/widgets/monitor.svgz and /dev/null differ diff --git a/Desktop/widgets/notes.svgz b/Desktop/widgets/notes.svgz deleted file mode 100644 index 854f817..0000000 Binary files a/Desktop/widgets/notes.svgz and /dev/null differ diff --git a/Desktop/widgets/pager.svgz b/Desktop/widgets/pager.svgz deleted file mode 100644 index b616c4d..0000000 Binary files a/Desktop/widgets/pager.svgz and /dev/null differ diff --git a/Desktop/widgets/panel-background.svgz b/Desktop/widgets/panel-background.svgz deleted file mode 100644 index dd3268b..0000000 Binary files a/Desktop/widgets/panel-background.svgz and /dev/null differ diff --git a/Desktop/widgets/picker.svgz b/Desktop/widgets/picker.svgz deleted file mode 100644 index 871e012..0000000 Binary files a/Desktop/widgets/picker.svgz and /dev/null differ diff --git a/Desktop/widgets/plasmoidheading.svgz b/Desktop/widgets/plasmoidheading.svgz deleted file mode 100644 index 0569a42..0000000 Binary files a/Desktop/widgets/plasmoidheading.svgz and /dev/null differ diff --git a/Desktop/widgets/plot-background.svgz b/Desktop/widgets/plot-background.svgz deleted file mode 100644 index 5195628..0000000 Binary files a/Desktop/widgets/plot-background.svgz and /dev/null differ diff --git a/Desktop/widgets/radiobutton.svgz b/Desktop/widgets/radiobutton.svgz deleted file mode 100644 index c0477af..0000000 Binary files a/Desktop/widgets/radiobutton.svgz and /dev/null differ diff --git a/Desktop/widgets/scrollbar.svgz b/Desktop/widgets/scrollbar.svgz deleted file mode 100644 index a55666d..0000000 Binary files a/Desktop/widgets/scrollbar.svgz and /dev/null differ diff --git a/Desktop/widgets/scrollwidget.svgz b/Desktop/widgets/scrollwidget.svgz deleted file mode 100644 index ffc4f39..0000000 Binary files a/Desktop/widgets/scrollwidget.svgz and /dev/null differ diff --git a/Desktop/widgets/slider.svgz b/Desktop/widgets/slider.svgz deleted file mode 100644 index 08f2319..0000000 Binary files a/Desktop/widgets/slider.svgz and /dev/null differ diff --git a/Desktop/widgets/switch.svgz b/Desktop/widgets/switch.svgz deleted file mode 100644 index 98bdfb9..0000000 Binary files a/Desktop/widgets/switch.svgz and /dev/null differ diff --git a/Desktop/widgets/tabbar.svgz b/Desktop/widgets/tabbar.svgz deleted file mode 100644 index 7dbdd2b..0000000 Binary files a/Desktop/widgets/tabbar.svgz and /dev/null differ diff --git a/Desktop/widgets/tasks.svgz b/Desktop/widgets/tasks.svgz deleted file mode 100644 index 26d44ec..0000000 Binary files a/Desktop/widgets/tasks.svgz and /dev/null differ diff --git a/Desktop/widgets/timer.svgz b/Desktop/widgets/timer.svgz deleted file mode 100644 index 68c81c5..0000000 Binary files a/Desktop/widgets/timer.svgz and /dev/null differ diff --git a/Desktop/widgets/toolbar.svgz b/Desktop/widgets/toolbar.svgz deleted file mode 100644 index eb8471c..0000000 Binary files a/Desktop/widgets/toolbar.svgz and /dev/null differ diff --git a/Desktop/widgets/tooltip.svgz b/Desktop/widgets/tooltip.svgz deleted file mode 100644 index 0a4ac7e..0000000 Binary files a/Desktop/widgets/tooltip.svgz and /dev/null differ diff --git a/Desktop/widgets/translucentbackground.svgz b/Desktop/widgets/translucentbackground.svgz deleted file mode 100644 index 001e1a1..0000000 Binary files a/Desktop/widgets/translucentbackground.svgz and /dev/null differ diff --git a/Desktop/widgets/viewitem.svgz b/Desktop/widgets/viewitem.svgz deleted file mode 100644 index c2e8d63..0000000 Binary files a/Desktop/widgets/viewitem.svgz and /dev/null differ diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 9e06897..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 Andrew Zambazos - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index f70eafb..0000000 --- a/README.md +++ /dev/null @@ -1,538 +0,0 @@ -# NebulaOS - -NebulaOS is an open source Linux-based operating system experience built around two modes: - -1. **Bigscreen Mode**: a controller-first console-style interface for games, apps, media, settings, and system navigation. -2. **Desktop Mode**: a clean KDE-based desktop experience for productivity, development, file management, and advanced system control. - -NebulaOS is not just a launcher, Steam skin, or Big Picture replacement. -It is a full OS experience designed to make Linux feel native on gaming PCs, handhelds, TV setups, and eventually dedicated console-like hardware. - -The goal is to combine the best parts of console UX, desktop Linux, and modern operating system design into one flexible system. - ---- - -## Vision - -NebulaOS is designed around a simple idea: - -> A gaming OS should feel like a console when you are gaming, and like a real desktop when you need one. - -Most gaming-focused Linux setups are either: - -* Too desktop-oriented for controller use -* Too launcher-dependent -* Too tied to Steam -* Too limited when the user needs full desktop control - -NebulaOS aims to solve that by providing both: - -* A polished controller-first Bigscreen interface -* A proper Linux desktop mode - -The long-term goal is to create an OS that can work as: - -* A Steam Deck-style handheld interface -* A living room gaming console UI -* A gaming PC frontend -* A full Linux desktop -* A foundation for future Nebula hardware - ---- - -## Modes - -### Bigscreen Mode - -Bigscreen Mode is the main console-style experience. - -It is designed for: - -* Controllers -* TVs -* Handhelds -* Game launching -* App launching -* System settings -* Power controls -* Profiles -* Media-focused workflows - -Bigscreen Mode is becoming a native Qt shell; the repo still contains a Tauri/HTML v0 prototype for early UI work. Sign-in and session choice happen at the OS login screen, not inside Bigscreen. - -Current v0 features include: - -* Lock screen with PIN keypad in the Tauri prototype only (OS login replaces this in the target design) -* Home dashboard tile grid -* Library screen -* Settings screen -* Power overlay -* Unified input actions from keyboard and gamepad -* Xbox-inspired horizontal dashboard layout -* Dynamic nebula background visuals -* Controller focus states and smooth transitions - -Read more in: - -```text -bigscreen/README.md -``` - ---- - -### Desktop Mode - -Desktop Mode is the full Linux desktop experience. - -It is intended for: - -* File browsing -* Productivity -* Web browsing -* Development -* System configuration -* Troubleshooting -* Advanced settings -* Desktop gaming workflows - -The recommended Desktop Mode foundation is KDE Plasma because it is flexible, themeable, controller-adaptable, and already well-suited to Linux gaming environments. - -Desktop Mode should feel clean, modern, and polished, with a design direction inspired by the clarity and smoothness of macOS while keeping the flexibility of Linux. - -Read more in: - -```text -Desktop/README-Desktop.md -``` - ---- - -## What NebulaOS Is - -NebulaOS is: - -* A Linux-based gaming operating system experience -* A controller-first shell for Bigscreen use -* A KDE-based desktop experience for normal computer use -* A unified game and app launcher -* A modular platform for Nebula apps -* An open alternative to proprietary gaming frontends -* A foundation for future console-like hardware - ---- - -## What NebulaOS Is Not - -NebulaOS is not: - -* A Steam skin -* A Steam Big Picture clone -* A launcher-only project -* A proprietary console OS -* A replacement for Linux itself -* A locked-down gaming environment - -NebulaOS should work with Steam, GOG, Epic Games, local apps, native Linux games, Proton, Wine, and other tools without depending on one company’s frontend. - ---- - -## Core Principles - -1. **Controller-first, not controller-compatible** - Bigscreen Mode should be designed from the ground up for controller navigation. - -2. **Desktop when needed** - Users should always be able to access a proper desktop environment. - -3. **Open and modular** - NebulaOS should be built from replaceable, understandable components. - -4. **Independent from proprietary launchers** - Store integrations should exist, but NebulaOS should have its own interface. - -5. **Console feel, PC freedom** - NebulaOS should feel simple and polished without removing user control. - -6. **Built for iteration** - v0 should be simple, but the architecture should leave room for long-term growth. - ---- - -## High-Level Architecture - -NebulaOS is split into several layers: - -```text -NebulaOS -├── Bigscreen Mode -│ ├── Nebula Home -│ ├── Nebula Library -│ ├── Controller Settings -│ ├── Power Menu -│ └── Profile status (signed-in user; no OS login) -│ -├── Desktop Mode -│ ├── KDE Plasma -│ ├── Nebula desktop theme -│ ├── Controller-friendly SDDM login -│ ├── Session entries (Bigscreen / Desktop) -│ ├── Desktop apps -│ └── Advanced system tools -│ -├── Nebula Core -│ ├── Input -│ ├── Navigation -│ ├── Theme -│ ├── Glyphs -│ └── Shared UI logic -│ -└── System Integration Layer - ├── Game discovery - ├── App launching - ├── Store integrations - ├── Proton / Wine handling - ├── Network settings - ├── Audio settings - ├── Display settings - └── Power controls -``` - ---- - -## Technology Stack - -### Bigscreen Mode - -* Tauri -* HTML -* CSS -* JavaScript -* Rust backend through Tauri -* Web Gamepad API -* Nebula Core - -### Desktop Mode - -* Linux -* KDE Plasma -* SDDM -* Custom Nebula theme -* Custom session configuration -* Optional Nebula desktop tools - -### Game and App Layer - -Planned integrations include: - -* Native Linux apps -* Local executables -* Steam -* SteamCMD -* Proton -* Wine -* GOG -* Epic Games -* Legendary -* Heroic backend concepts -* Local metadata databases - ---- - -## Current Repository Status - -This repository currently contains the early NebulaOS v0 prototype. - -Current features include: - -* Tauri frontend shell -* Controller and keyboard input mapping -* Tauri prototype lock screen (superseded by planned OS login) -* Home dashboard -* Library stub -* Settings stub -* Power overlay -* Nebula Core adapter structure -* Xbox-inspired dashboard refresh -* Windows-first development setup -* Linux build pathway - -The project is building **Bigscreen Mode** (Qt shell) and **Desktop Mode** (KDE Plasma customization) in parallel. A controller-friendly **OS login** (SDDM + sessions) is part of Desktop/system work so Bigscreen does not handle account creation or sign-in. - ---- - -## Install - -```bash -npm install -``` - ---- - -## Run in Development - -```bash -npm run dev -``` - ---- - -## Build - -```bash -npm run build -``` - ---- - -## Linux Prerequisites - -For Ubuntu, Debian, and related distributions, install the system dependencies required by Tauri and WebKit: - -```bash -sudo apt update -sudo apt install -y \ - libwebkit2gtk-4.1-dev \ - libappindicator3-dev \ - librsvg2-dev \ - patchelf \ - build-essential \ - curl \ - wget \ - file \ - libssl-dev \ - libgtk-3-dev -``` - -You will also need: - -* Node.js LTS -* Rust -* npm - -Then run: - -```bash -npm install -npm run dev -``` - ---- - -## Controller Testing - -For development, connect an Xbox-compatible controller before launching the app. - -### Controller Mapping - -```text -D-pad / left stick: Navigate -A: Accept -B: Back -Start: Menu -``` - -### Keyboard Mirror - -```text -Arrow keys: Navigate -Enter: Accept -Escape / Backspace: Back -``` - ---- - -## Nebula Core Integration - -NebulaOS uses `@nebulaproject/core` through runtime adapters. - -Current adapter files: - -```text -src/core/input.js -src/core/nav.js -src/core/state.js -``` - -If Nebula Core exports are available, NebulaOS uses them for input, navigation, glyphs, and theme handling. - -If they are unavailable, local fallback adapters keep the shell functional during development. - ---- - -## Local Nebula Core Development - -For active local development, clone Nebula Core next to this repository. - -```bash -# In Nebula-Core repo -npm link - -# In NebulaOS repo -npm link @nebulaproject/core -``` - -Alternative deterministic setup using `file:` dependency: - -```json -{ - "dependencies": { - "@nebulaproject/core": "file:../Nebula-Core/packages/core" - } -} -``` - -Then run: - -```bash -npm install -``` - ---- - -## Development Strategy - -NebulaOS is currently developed across two environments. - -### Windows - -Used for: - -* UI development -* Controller navigation -* Bigscreen UI prototyping (legacy Tauri lock screen is not target architecture) -* Library UI -* Settings UI -* Frontend architecture - -### Linux VM - -Used for: - -* Linux builds -* Session testing -* KDE integration -* Fullscreen shell testing -* Proton and Wine experiments -* System service experiments - -The current workflow is: - -```text -Design and build the UI on Windows. -Test OS-level behavior in Linux. -``` - ---- - -## Roadmap - -### Phase 1: Desktop Mode and OS login (in progress) - -Goal: Build the KDE-based desktop layer and a controller-friendly login experience. - -Deliverables: - -* KDE Plasma Nebula theme and look-and-feel -* Controller-friendly SDDM login (account picker, sign-in) -* Nebula Bigscreen and Nebula Desktop session entries -* First-run / account setup at the OS layer (not inside Bigscreen) -* Desktop-to-Bigscreen and Bigscreen-to-Desktop switching -* Basic Nebula desktop tools - ---- - -### Phase 2: Bigscreen Qt shell - -Goal: Build a polished controller-first game shell that starts after OS login. - -Deliverables: - -* Native Qt/QML Bigscreen app -* Home dashboard -* Library screen -* Settings screen -* Power menu (including log out to OS login) -* Controller navigation -* Fullscreen mode -* Basic app launching - -Bigscreen does **not** deliver in-shell login, PIN lock, or account creation. - ---- - -### Phase 3: Session polish - -Goal: Make NebulaOS feel like a real OS from boot to shell. - -Deliverables: - -* Reliable gamepad support on SDDM and in Bigscreen -* Bigscreen launches fullscreen into the signed-in session -* Exit to desktop or return to login -* Consistent Nebula visual identity across login, Bigscreen, and Desktop - ---- - -### Phase 4: Nebula Library Foundation - -Goal: Begin true game and app management. - -Deliverables: - -* Local app database -* Installed games database -* Manual game adding -* Local executable launching -* Metadata structure -* Cover art and banner support -* Store backend abstraction - ---- - -### Phase 5: Store and Compatibility Integrations - -Goal: Turn Nebula Library into a real open game manager. - -Potential integrations: - -* SteamCMD -* Proton -* Wine -* Legendary for Epic Games -* GOG tooling -* Heroic backend concepts -* Per-game compatibility settings - ---- - -## Success Criteria for v0 - -NebulaOS v0 is successful when: - -* Bigscreen Mode can be launched fullscreen -* The entire shell is controller navigable -* OS login works with controller and keyboard (SDDM; not an in-Bigscreen lock screen) -* The Home dashboard works -* The Library can display and launch local entries -* Settings has a usable controller-first structure -* Power controls exist -* Desktop Mode remains accessible -* Bigscreen and Desktop feel like two parts of the same OS - ---- - -## Long-Term Goal - -NebulaOS should become a gaming OS that feels native, polished, and open. - -A user should be able to: - -* Turn on a machine -* Pick up a controller -* Navigate the whole system -* Launch a game -* Switch to Desktop Mode when needed -* Manage apps, games, settings, and profiles -* Use the system without needing Steam Big Picture or a traditional desktop launcher - -NebulaOS is the bridge between a console experience and a real computer. diff --git a/REDESIGN_DOCUMENTATION.md b/REDESIGN_DOCUMENTATION.md deleted file mode 100644 index ab3e6e8..0000000 --- a/REDESIGN_DOCUMENTATION.md +++ /dev/null @@ -1,382 +0,0 @@ -# Nebula OS - Xbox Series X Inspired Redesign Documentation - -## Overview -Nebula OS has been redesigned with inspiration from the Xbox Series X dashboard while maintaining its unique space-themed identity. The result is a horizontal, content-first dashboard with large tiles, smooth motion, layered depth, and a premium, console-native feel. - ---- - -## Core Layout Changes - -### 1. Home Dashboard Structure -- **Layout**: Left-aligned horizontal tile grid with smooth scrolling -- **Tiles**: 4 primary apps (Library, Browser, Settings, Power) -- **Navigation**: Horizontal controller input (left/right) with smooth transitions -- **Focus Effects**: - - Tiles scale to 1.06x on focus - - Cyan glow and accent bar appears on focused tile - - Smooth parallax depth between layers - -### 2. Dynamic Background System -The background now features multiple animated layers for depth and immersion: - -#### Gradient Layer -- Deep navy → midnight blue → subtle purple gradient -- Animated drift with rotation for dynamic feel -- Duration: 28s -- Multiple radial gradients for light sources - -#### Starfield Layer -- Three layers of stars with varying sizes and colors -- Creates sense of depth and space -- Slow parallax movement -- Duration: 45s linear - -#### Fog Layer -- Soft drifting nebula clouds -- Heavy blur (52px) for ethereal effect -- Multiple elliptical gradients -- Duration: 34s - -#### Vignette Layer -- Subtle darkening at edges -- Focuses attention on center content -- Static overlay - -### 3. Top Bar (Nebula Style) -- **Left**: "Nebula OS" brand with cyan glow effect -- **Right**: User avatar (with glow) + system time -- **Accent Line**: Animated line that moves with focus -- **Structure**: Flexbox with `.shell-topbar-content` wrapper - -### 4. Tile Design -Tiles now feature Xbox-inspired rectangular design with depth: - -#### Visual Layers -1. **Background**: Layered gradient with soft radial accent -2. **Content**: Icon, title, and subtitle flexbox layout -3. **Accent Bar**: Bottom highlight that animates on focus -4. **Hover Glow**: Radial gradient overlay on focus - -#### On Focus Effects -- Scale: 1.06x transform -- Border: Cyan outline with glow -- Shadow: Enhanced depth shadow -- Text: Subtle translateX(3px) animation -- Icon: Scale 1.08 + translateY(-2px) - -### 5. Controller Navigation Feedback -- **Focus Transitions**: 180ms smooth animations -- **Movement**: Animated position changes, not instant jumps -- **Press Animation**: Scale down to 0.96 then back -- **Easing**: Custom console-style cubic-bezier curves -- **Sound Hooks**: Structure in place for UI audio (not implemented) - -### 6. Lock Screen Redesign -A more immersive authentication experience: - -#### Time Display -- Large gradient-filled text (96-160px) -- Cyan glow shadow -- Modern weight (760) -- Gradient from white to light blue - -#### PIN Keypad -- **Design**: Circular buttons (50% border-radius) -- **Size**: Aspect ratio 1:1, min 92px -- **Material**: Radial gradient with inner/outer shadows -- **Focus**: Scale 1.08 with cyan border and glow -- **Press**: Scale 0.95 feedback - -#### PIN Dots -- Larger design (18px) -- Cyan border that fills on input -- Glowing effect when filled - -### 7. Settings Page Redesign -Horizontal category navigation with card-based content: - -#### Category Bar -- Horizontal list at top -- Active category gets: - - Color change to cyan - - Bottom accent bar with glow - - Scale animation -- Smooth underline animation - -#### Content Panel -- Large panel with layered background -- Card-based settings layout -- Responsive grid (auto-fit) -- Cards scale 1.04x on focus - -### 8. Animation Style -All animations follow these principles: - -#### Easing Functions -```css ---nebula-ease-standard: cubic-bezier(0.25, 0.1, 0.25, 1) ---nebula-ease-console: cubic-bezier(0.19, 0.82, 0.18, 1) ---nebula-ease-snap: cubic-bezier(0.32, 0.94, 0.18, 1) -``` - -#### Timing -- Fast: 120ms (micro-interactions) -- Nav: 180ms (focus transitions) -- Slow: 340ms (page transitions) - -#### Performance -- Use `transform` instead of position changes -- Avoid heavy shadow stacking -- GPU-accelerated with `translateZ(0)` -- `will-change` on focusable elements - ---- - -## Component Breakdown - -### TopBar Component -**Location**: `.shell-topbar` - -**Structure**: -```html -
-
-

Nebula OS

-
- -

-
-
-
-
-``` - -**Features**: -- Brand glow effect -- Avatar with cyan border glow -- Animated accent line that follows focus -- Responsive layout - ---- - -### TileRow Component -**Location**: `.tile-rail` - -**Structure**: -```html -
- -
-``` - -**Features**: -- Horizontal scroll with hidden scrollbar -- Smooth scroll behavior -- Parallax transform on navigation -- Flexible gap spacing - ---- - -### Tile Component -**Location**: `.tile.dashboard-tile` - -**Variants**: -- `.tile-large` - Larger featured tile -- Standard - Default size - -**Structure**: -```html - -``` - -**States**: -- Default -- `.is-focused` - Scale, glow, accent bar -- `.is-pressed` - Press animation - ---- - -### BackgroundLayer Component -**Location**: `#nebula-background` - -**Layers**: -1. `.nebula-layer.gradient` - Base gradient -2. `.nebula-layer.starfield` - Animated stars -3. `.nebula-layer.fog` - Blurred nebula clouds -4. `.nebula-layer.vignette` - Edge darkening - -**Features**: -- Independent animations per layer -- Parallax on navigation -- Smooth transitions - ---- - -### FocusManager -**Location**: `.focusable` class - -**Features**: -- Automatic border/shadow on focus -- Radial gradient ripple effect -- Press pulse animation -- Smooth transitions between states - -**States**: -- `.is-focused` - Cyan border, glow, scaled -- `.is-pressed` - Animation pulse - ---- - -## Design Language - -### Colors -- **Accent**: Nebula cyan (#4fd8ff) -- **Background**: Deep space blue (#050a17 → #1a1342) -- **Text**: Off-white (#f2f7ff) -- **Muted**: Light blue-gray (#a8bdd8) - -### Typography -- **Modern, clean sans-serif** (Segoe UI) -- **Weights**: 600-760 range for premium feel -- **Sizes**: Responsive with clamp() -- **Spacing**: Slightly bold for console readability - -### Depth & Layers -- **Multiple shadow layers** on focus -- **Inset shadows** for inner depth -- **Gradient overlays** for material feel -- **Backdrop blur** for depth separation - -### Premium Feel -- **No flat design** - everything has depth -- **Smooth animations** throughout -- **Glow effects** on accents -- **Inner/outer shadows** for dimensions - ---- - -## Files Modified - -### View Files -- `src/views/home/home.html` -- `src/views/home/home.js` -- `src/views/home/home.css` -- `src/views/lock/lock.html` -- `src/views/lock/lock.js` -- `src/views/lock/lock.css` -- `src/views/settings/settings.html` -- `src/views/settings/settings.js` -- `src/views/settings/settings.css` -- `src/views/library/library.html` -- `src/views/library/library.js` - -### Core Style Files -- `src/styles/theme.css` - Design tokens -- `src/styles/base.css` - Background, topbar, animations -- `src/styles/components.css` - Tiles, focus system - ---- - -## Navigation Grid Changes - -### Home View -- Changed from 3 columns to 4 columns -- Added Browser tile -- Updated tile sizing for better proportions - -### Settings View -- 5 horizontal categories (Network, Audio, Display, Storage, System) -- Card grid with auto-fit responsive layout -- 2-row navigation (categories + cards) - -### Lock Screen -- 4x3 keypad grid -- Circular button design -- Center-focused layout - ---- - -## Performance Optimizations - -1. **Transform-based animations** - No layout recalculation -2. **will-change hints** - GPU acceleration where needed -3. **Selective backdrop-filter** - Only on depth blur layer -4. **CSS containment** - Component isolation -5. **Efficient selectors** - Class-based, minimal nesting - ---- - -## Future Enhancements - -### Audio System -Structure is in place for UI sound hooks: -- Focus change sounds -- Press/click sounds -- Navigation swoosh -- Error/success tones - -### Additional Animations -- Page slide transitions between views -- Content fade-in on load -- Tile stagger animations on home view entry - -### Advanced Features -- Dynamic tile backgrounds (game art) -- Video backgrounds for featured content -- Achievement/notification popups -- Quick resume tiles with screenshots - ---- - -## Console-First Design Principles - -1. **Large hit targets** - Easy to navigate with controller -2. **Clear focus states** - Always visible what's selected -3. **Smooth motion** - No jarring transitions -4. **Depth perception** - Layered UI for spatial understanding -5. **Content first** - Minimal chrome, maximum content -6. **Premium materials** - Glows, shadows, gradients for quality feel - ---- - -## Developer Notes - -### Adding New Tiles -1. Add button to `.tile-rail` in home.js -2. Update `data-row` and `data-col` attributes -3. Update navigation contract cols count -4. Ensure proper `data-target` attribute - -### Adding New Settings Categories -1. Add button to `.settings-category-bar` -2. Add to CATEGORIES object in settings.js -3. Update navigation contract -4. Create category content panel - -### Customizing Animations -All animation timings are in CSS variables in `theme.css`: -- `--nebula-duration-fast` -- `--nebula-duration-nav` -- `--nebula-duration-slow` - -Easing curves are also variables: -- `--nebula-ease-standard` -- `--nebula-ease-console` -- `--nebula-ease-snap` - ---- - -## Conclusion - -The redesign transforms Nebula OS into a premium, console-first experience that feels fast, immersive, and modern. The Xbox Series X dashboard inspiration is clear in the horizontal layout, large tiles, and smooth animations, while the space-themed "Nebula" identity is maintained through the cyan accent colors, starfield backgrounds, and cosmic naming. - -**Result**: "Xbox Series X dashboard reimagined for a space-themed, controller-first OS." ✨