The App Registry inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/shadownrx/windows/llms.txt
Use this file to discover all available pages before exploring further.
src/constants/apps.tsx is the single source of truth for every application in NEX OS. The Start Menu, Taskbar pinned apps area, Search pane, and Run dialog (Win+R) all read directly from this array — if an app isn’t registered here, it doesn’t exist to the operating system. Adding a new app is as simple as creating a component and appending one object to the APPS array.
The AppItem Interface
Every entry in APPS conforms to the AppItem interface exported from src/constants/apps.tsx:
The
id and appId fields are intentionally separate. id is the window identifier used by WindowManager at runtime. appId is the registry key used by AppRegistry to resolve the lazy-loaded component. For most apps they are the same string, but they can differ when one logical window wraps multiple registry entries.Registration Pattern
Import your component, import an icon from@fluentui/react-icons (or lucide-react), then push an entry into the APPS array. The system picks up the change immediately on the next hot-reload — no additional wiring is required.
How id and appId Are Used Across the System
The two identifier fields each serve a distinct role in different parts of NEX OS:
Window lifecycle (id)
id is passed directly to openWindow, closeWindow, minimizeWindow, restoreWindow, and focusWindow in WindowManager. It is also the key stored in AppWindow.id and used by the Taskbar to track which windows are open.Component resolution (appId)
appId is the key read by AppRegistry to dynamically import the component module. This separation allows future lazy-loading and code-splitting without touching the window management layer..nex file resolution
.nex executables (virtual binaries analogous to .exe) embed an appId in their metadata payload. When a .nex file is double-clicked in File Explorer, resolveNex() in NexRuntimeContext looks up the matching appId in APPS and calls openWindow.Run dialog (Win+R)
Typing
notepad in the Run dialog calls resolveNex('notepad'), which finds the entry where id === 'notepad' and launches it. Typing notepad.nex also resolves correctly — the .nex extension is stripped before the lookup.Taskbar Pinning
SettingisPinned: true on an AppItem entry places a permanent shortcut in the Taskbar’s pinned apps row, visible at all times regardless of whether a window is open:
Currently Registered Apps
The following 17 apps are registered inAPPS as of the latest build. Each id is the canonical identifier to use when calling openWindow or writing a .nex file.
| ID | Label | Pinned |
|---|---|---|
search | Buscar | — |
files | Explorador de archivos | ✓ |
chrome | Google Chrome | ✓ |
vscode | NEX Code | ✓ |
paint | Paint | — |
control-panel | Configuración | ✓ |
wordpad | WordPad | — |
task-manager | Administrador de tareas | — |
calendar | Calendario | — |
defender | Seguridad de Windows | — |
calculator | Calculadora | — |
notepad | Bloc de notas | — |
terminal | Terminal | ✓ |
clock | Reloj | — |
photos | Fotos | — |
nexreproductor | NexReproductor | ✓ |
spotify | Spotify | — |
The
search app (id: 'search') is registered in APPS but is typically surfaced via the Search pane (SearchPane.tsx) rather than as a standalone window. It resolves correctly through the Run dialog and resolveNex just like any other app.