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.
5.0 KiB
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:
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
D-pad / left stick: Navigate
A: Accept
B: Back
Start: Menu
Future mappings may include:
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:
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:
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:
npm install
npm run dev
Build
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