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.
This commit is contained in:
@@ -0,0 +1,305 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user