f0d2926872
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.
306 lines
5.0 KiB
Markdown
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
|