You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Shell Options: replace the compact Home menu with a large universal activity surface #168
Context distinction — 9 October 2026: Game experience packages (#174–#178) may dynamically change Companions/Trainer primary tab labels and their Select/actions in the underlying shell, but shell Home/Guide → Options remains the same universal activity/notifications/communication panel regardless of selected game or page. Do not introduce adapter-specific Options menu items as a shortcut around contextual Select. When a game is actually running, Game Options (#170) may host package-specific additions tied to that live process.
Parent: #167. Revises the shell presentation portion of #112; does not move device/system settings out of Start.
Owner-approved behavior
Inside TrainerOS, pressing the physical Home/Guide opens a large overlay called Options (working name), covering roughly 85–95% of the safe viewport. Dim, retain and restore the underlying screen. This is a universal OS surface, not a different set of page actions depending on whether the user is in Home, Worlds, Companions, Trainer or Social.
What belongs here
Use compact, expressive sections/panels for actual system-wide functionality:
notifications/unread requests and their destinations;
people/messages quick access; current call and its real mute/leave state;
active Game Party / incoming invitations and shared activity;
Return to game and real live-session status only when a minimized game exists;
other verified global utilities only if distinct from Start.
Items are capability/presence-driven, not a long list of disabled placeholders. Do not implement another Social conversation backend or duplicate GameParty. Keep the original Social conversation and history, call state and notification identity.
Do not add: per-game Properties, focused-card operations, local filters/companion actions (these belong to Select); device radios, system mode, Settings, brightness, volume, power or Switch Trainer (these belong to Start).
UI and input contract
Design a coherent large surface, not the current 430 px vertical HomeMenuCard enlarged to fill 90%. Real content and focusable areas use the available space; do not turn this into an unnecessary second Home dashboard.
Reuse TrainerOS's warm chassis/material palette, legible gold focus and restrained visual hierarchy; game/profile artwork may appear only when it adds real information.
Same content/meaning from any shell primary/face. The currently opened page is retained as a backdrop and is not navigated away just to open Options.
Home again or B closes and restores exact page, face, route, selected item and focus. B inside a nested activity panel first backs out.
A/Confirm activates the focused action; controller and touch remain parallel. Opening/closing must respect neutral/release gates and protected writes/modals.
Notifications update live but do not steal or reassign focus to an unrelated/destructive action. Persist identity-based selection as the underlying list changes.
src/qml/Main.qml currently mounts a compact HomeMenuCard, while ShellController::homeMenuActions() builds the shell Home/Friends/Chats/Notifications list. Replace/reuse these surfaces within one shared Options model; preserve working service hooks and modal order. See current Home menu docs and #112.
Acceptance
Same universal Options contents on Home, Worlds, Companions, Trainer and Social, modulo global live state (call/party/notification/minimized game).
Large 85–95% safe-area overlay with useful panel layout, not a new primary page or extra tab.
No page-specific actions hidden in Options; Start remains solely responsible for system controls.
Home/B from each shell section returns to the exact preserved focus/route; nested Back behaves correctly.
Incoming notifications/calls/party changes update without accidental activation or losing focus.
Empty/offline/muted/DND/blocked/busy states are informative and privacy-respecting.
Controller + touch, Flip/Odin, handheld + reflowed TV tests/screenshots exercise overlay, nested actions and accessibility.
Parent: #167. Revises the shell presentation portion of #112; does not move device/system settings out of Start.
Owner-approved behavior
Inside TrainerOS, pressing the physical Home/Guide opens a large overlay called Options (working name), covering roughly 85–95% of the safe viewport. Dim, retain and restore the underlying screen. This is a universal OS surface, not a different set of page actions depending on whether the user is in Home, Worlds, Companions, Trainer or Social.
What belongs here
Use compact, expressive sections/panels for actual system-wide functionality:
Items are capability/presence-driven, not a long list of disabled placeholders. Do not implement another Social conversation backend or duplicate GameParty. Keep the original Social conversation and history, call state and notification identity.
Do not add: per-game Properties, focused-card operations, local filters/companion actions (these belong to Select); device radios, system mode, Settings, brightness, volume, power or Switch Trainer (these belong to Start).
UI and input contract
HomeMenuCardenlarged to fill 90%. Real content and focusable areas use the available space; do not turn this into an unnecessary second Home dashboard.Existing code to reconcile
src/qml/Main.qmlcurrently mounts a compactHomeMenuCard, whileShellController::homeMenuActions()builds the shell Home/Friends/Chats/Notifications list. Replace/reuse these surfaces within one shared Options model; preserve working service hooks and modal order. See current Home menu docs and #112.Acceptance
Related: #111, #112, #127–#135, #156–#160 and #167.