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:
+101
-31
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user