# 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