Files
Nebula-OS/Bigscreen/README-Bigscreen.md
T
Andrew Zambazos f0d2926872 Add mode READMEs and move Bigscreen app
Add comprehensive READMEs for Bigscreen and Desktop modes, and relocate the Tauri frontend prototype into a new Bigscreen/ subdirectory. This moves package.json/package-lock, src, src-tauri, assets, views, styles and related files into Bigscreen/ to separate the controller-first shell from top-level docs. Update the root README.md to reframe the project as "NebulaOS", describe Bigscreen/Desktop modes, the vision, tech stack and development notes. This reorganizes the repo layout for clearer mode separation and documentation.
2026-05-21 20:11:18 +12:00

306 lines
5.0 KiB
Markdown

# 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 and lock screen flows
* Store and launcher integrations
* A fullscreen interface for TV and handheld use
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 prototype includes:
* Lock screen with PIN keypad
* 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
├── Lock Screen
├── Home
├── Library
├── Store
├── Apps
├── Settings
├── Downloads
├── Notifications
├── Power Menu
└── Profile Menu
```
---
## 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
* Accounts
* 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.
---
## Lock Screen
The lock screen currently supports a v0 PIN keypad.
Current v0 PIN:
```text
1234
```
Future improvements:
* User profiles
* Custom PINs
* Avatar selection
* Local account linking
* Parental controls
* Optional password fallback
* Automatic login into Bigscreen profile
---
## 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 built with:
* Tauri
* HTML
* CSS
* JavaScript
* Rust backend through Tauri
* Web Gamepad API
* Nebula Core adapters
---
## Run
From the root of the repository:
```bash
npm install
npm run dev
```
---
## Build
```bash
npm run build
```
---
## Development Notes
Bigscreen Mode is currently developed primarily on Windows for faster UI iteration.
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 can unlock the system
* 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