Make Bigscreen a Qt shell; move login to OS

Update documentation to treat the Tauri/HTML prototype as legacy and define Bigscreen as a native Qt/QML/C++ shell. Remove in-shell PIN/login as a target feature and clarify that account selection, sign-in, and session choice are handled by a controller-friendly OS login (SDDM) implemented under Desktop Mode. Add phased plan, build/run notes for Qt vs legacy Tauri prototype, and clarify session/login workflow and responsibilities across Bigscreen/, Desktop/, and the top-level README.
This commit is contained in:
2026-05-23 17:33:12 +12:00
parent 8bea372b98
commit 627c52a5b7
3 changed files with 167 additions and 80 deletions
+101 -31
View File
@@ -18,10 +18,12 @@ It provides:
* A game and app library
* System settings
* Power controls
* Profile and lock screen flows
* 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.
@@ -30,9 +32,9 @@ The goal is to create an open, polished, flexible OS shell that feels good to us
## Current Features
The current v0 prototype includes:
The current v0 **Tauri prototype** includes:
* Lock screen with PIN keypad
* Lock screen with PIN keypad (prototype only; not part of the target Qt shell)
* Controller and keyboard input support
* Home dashboard
* Library stub
@@ -119,8 +121,7 @@ Bigscreen Mode should be:
Bigscreen Mode is planned around the following major areas:
```text
Bigscreen Mode
├── Lock Screen
Bigscreen Mode (after OS login)
├── Home
├── Library
├── Store
@@ -132,6 +133,16 @@ Bigscreen Mode
└── 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
@@ -192,7 +203,7 @@ Planned categories:
* Display
* Controller
* Storage
* Accounts
* Signed-in user (read-only; account changes via OS login / Desktop)
* Appearance
* Updates
* System
@@ -203,25 +214,59 @@ It should feel like a native console settings app.
---
## Lock Screen
## Login and sessions
The lock screen currently supports a v0 PIN keypad.
Bigscreen Mode does **not** own account creation, authentication, or session selection.
Current v0 PIN:
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.
```text
1234
```
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.
Future improvements:
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.
* User profiles
* Custom PINs
* Avatar selection
* Local account linking
* Parental controls
* Optional password fallback
* Automatic login into Bigscreen profile
---
## 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.
---
@@ -243,21 +288,34 @@ Current v0 scope includes a power overlay that traps focus and closes with Back.
## Technology
Bigscreen Mode is built with:
Bigscreen Mode is a **native Qt application**, not a web shell.
* Tauri
* HTML
* CSS
* JavaScript
* Rust backend through Tauri
* Web Gamepad API
* Nebula Core adapters
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
From the root of the repository:
### Qt shell (target)
Build and run instructions will be added when the Qt project lands in `Bigscreen/`. Expect a standard CMake workflow, for example:
```bash
cmake -S Bigscreen -B build/bigscreen -DCMAKE_BUILD_TYPE=Debug
cmake --build build/bigscreen
```
### Legacy Tauri prototype
To run the existing v0 web prototype while migration is in progress, from `Bigscreen/`:
```bash
npm install
@@ -268,15 +326,27 @@ npm run dev
## Build
### Qt shell (target)
Release builds will use the Qt/CMake project once it is in the tree.
### Legacy Tauri prototype
```bash
npm run build
```
Run from `Bigscreen/`.
---
## Development Notes
Bigscreen Mode is currently developed primarily on Windows for faster UI iteration.
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:
@@ -295,7 +365,7 @@ Linux testing is still required for:
Bigscreen Mode is successful when:
* The entire interface works with a controller
* Users can unlock the system
* 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