nyan Real / Spatial Wall User Manual

Put on the glasses and multiple displays appear in the space in front of you. As you turn your head, your viewpoint moves while the displays stay in place. This manual covers connection, basic setup, everyday use, and troubleshooting.

Individual settings explain themselves — hover any control in the app for its tooltip. This manual covers what comes before that: what each part is for, and in what order to use it.

About this app

Connect a supported pair of glasses over USB and your PC's displays are arranged in space as a wall, redrawn as you move your head. Physical and virtual displays can both join, and sound can come from where each window sits.

There are two halves.

It contacts no server on the internet. It makes no automatic update check and sends no usage or crash data. Network communication is limited to these local paths:

Support is not automated either. To report a problem you copy the details from "About" and paste them into a GitHub Issue by hand.

Supported glasses: XREAL (One Pro / One / 1S / Air 2 Pro / Air 2 / Air), ROG XREAL R1, xbx a01 / a01+, RayNeo Air, Rokid (Max / Air), VITURE (Pro / One / One Lite), EPSON MOVERIO (BT-40 / BT-30C), Nreal Light and MAD Gaze Glow. What each model can do differs — see supported-glasses page for the details.

Where it runs: the same app runs on Windows, Linux and macOS.

OS Requirement
Windows 64-bit Windows 10 version 2004 (build 19041) or later
Linux (GNOME) GNOME 46 or later, Wayland session
Linux (Raspberry Pi) Raspberry Pi OS trixie or later with labwc
macOS macOS 14.4 or later (experimental; some features are missing)

On any of them you also need a USB-C port that carries video (or an HDMI adapter) and the glasses themselves. No internet connection is required. The phone remote and Android glasses bridge require the phone and PC to be on the same LAN. The appendix has a table of what differs per OS.

Installing and first run

Windows

Both the installer (nyan-real-spatial-wall-*-installer.exe) and the portable ZIP work. The portable build just needs extracting; run spatial-wall.exe and nothing is installed.

About code signing: the current builds are unsigned, so Windows SmartScreen may warn on first run. Choose "More info" then "Run anyway".

Linux (GNOME)

Install the .deb with apt install. Virtual displays go through GNOME's own screen-sharing support (Mutter ScreenCast), so there is no driver to add.

Linux (Raspberry Pi / labwc)

Install the Pi-specific .deb. Virtual displays use labwc's own support, and the package adds the udev rules that let the app reach the glasses over USB.

macOS

Experimental. Use the current package supplied through your purchase or distribution channel, and check its README for supported architectures and signing status.

From here on, using the app is the same everywhere.

The app shows a resident icon: in the notification area on Windows and Linux, and in the menu bar on macOS. Closing its window does not quit it. Use the icon to reopen the window or choose "Quit" from its menu.

What you see first is the operation panel across the top and the category list down the left.

The Spatial Wall operation panel and Glasses settings

You can go through the settings before connecting anything. Once the connected glasses are detected and head tracking starts, the status changes to "3DoF running".

Connecting the glasses

Plug in over USB and detection is automatic. The Glasses category shows the detected model, the IMU path, and the glasses display.

In the normal display path, the glasses need to be a separate extended display. A clone, or "second screen only", would hide the very monitors the wall is supposed to capture. By default the app makes them an extended display and tucks them into a corner of the desktop — a corner that touches the rest at a single point, so neither the cursor nor a dragged window can bleed onto the glasses. While cloned, the glasses and the mirrored monitor share one desktop source, so wall output stays off until Windows finishes giving the glasses their own extended source. On Windows, Spatial Wall can also reactivate a disabled supported-glasses target.

As a conditional feature, when a display mode's hardware EDID contains the Microsoft HMD VSDB, Windows classifies the glasses as HeadMounted and removes them from the desktop. Spatial Wall detects this state automatically, acquires the display exclusively, and drives it directly. It cannot turn ordinary glasses into an HMD through a setting. Extended-display layout, corner tucking, the glasses cursor fence, and Fullscreen Exclusive do not apply while this HMD path is active. See "Tested configurations and known limitations" in the appendix for eligibility and tested hardware.

Once connected, check these three.

  1. Display mode — 2D or 3D SBS, and the refresh rate. The 72 Hz and 90 Hz modes also lower the OLED duty cycle, which cuts motion blur when you look around. "Restore saved display mode on connection" is off by default. Manual choices are remembered even while it is off, and the setting also restores normal modes. If the last remembered mode is HMD-capable, enable it only on a PC that enters that mode reliably.
  2. SBS output — "Auto" gets most modes right. Only half-SBS modes cannot be told apart by resolution, so switch those on by hand.
  3. Brightness and volume — available on models that expose the controls. The amplifier inside the glasses and the PC's volume multiply, so if the PC is already at 100% and it is still quiet, raise the glasses' own volume.

Tap controls (supported models)

Tap the temple twice or three times for play/pause, volume, centering and so on. If the response is unreliable, calibrate from the "Tap controls" category — the prompts appear inside the glasses.

Idle sleep

After a period without motion the app sleeps and blanks the screen; move to wake it. The timeout and sensitivity live under "Power saving".

Building the wall

The Display Wall category decides which displays join the wall and how they are arranged.

Choosing displays

The diagram shows the OS's current display arrangement. Click a tile to toggle whether that display belongs to the wall. Excluded tiles are dimmed, and the last remaining display cannot be removed. The main display works like any other tile. The glasses' own display never joins the wall.

Arranging them

Spatial Wall has no layout-mode selector: the OS display arrangement is the wall. Drag a tile in the diagram to edit that arrangement. Apply writes the new positions to the OS; Cancel discards the edit. Changes made in the OS's display settings are reflected in the wall as well.

Turn on "Show display borders" to add a thin black separator between adjacent displays. There are no numeric controls for display gaps or outer padding.

Setting your viewpoint

Widgets

Use "Add widget" to pin a small panel such as a clock to an edge of the wall. Click its tile to show or hide it, drag to move it, drag its lower-right corner to resize it, and right-click to open its settings.

Virtual displays

Short on physical monitors? Add virtual displays and the wall grows. "Advanced" > "Virtual displays".

On Windows this needs a driver — nyan Real / Virtual Display Driver (recommended) or ParsecVDisplay. Drivers are not bundled, so install one separately. Linux and macOS use the OS's own support and need nothing installed.

Virtual displays you add exist only while this app runs. Their previous configuration is restored the next time you start it.

Going idle and resuming

Virtual displays are only visible through the glasses, so any window left on one goes missing when you take the glasses off. Go idle disconnects the virtual displays temporarily, and the OS moves their visible windows to the remaining displays. Resume restores the previous virtual-display configuration. Turning the master on with the glasses present resumes automatically.

On macOS, managed virtual displays also go idle when the Mac sleeps and resume shortly after wake, once the physical display layout has settled.

Nothing goes idle automatically when you turn the master switch off or disconnect the glasses. On every OS the invisible screens remain reachable through the wall map.

The wall map

A small window showing the whole wall as a flat map. The virtual displays remain mouse-operable there, so you can keep working with the glasses off. Wheel to zoom, drag to pan, double-click to fit.

Closing the wall map closes only that window; it does not disconnect any virtual display. Use Go idle / Resume to disconnect and restore them.

Keeping the cursor out of trouble

On Windows and macOS, the glasses display and the virtual displays each have a "keep the cursor off" option. With it on, the cursor tunnels through to the display on the far side instead of getting stranded. The glasses option is hidden while the glasses are an HMD outside the desktop, where no cursor can enter them. macOS asks for Input Monitoring permission the first time. GNOME and Raspberry Pi use different input controls, so this option is not shown there.

Tip: if the cursor occasionally jumps to the far edge of the adjacent display, turn off Windows Settings > System > Display > Multiple displays > "Make it easier to move the cursor between displays". It interferes with the fence.

Sound

Output

The "Audio output" selector at the top decides where the audio you hear comes out. "Auto: glasses" switches to the glasses' USB audio once per connection. Pick a specific device and the choice is remembered while that device is away, then re-applied when it returns.

Audio Wall

Turn on spatial audio in the "Audio Wall" category and the app finds whatever is playing, then mixes each app so it is heard from the direction of its window. There is no per-app setup. To keep something out of the mix, add its executable name to the exclusion list (for example discord.exe).

Direction is per app. An app spread across several screens collapses to a single direction.

Browser tabs

On Chrome or Edge 116 or later, install the "nyan Real Audio Wall connector" extension to place each tab's audio individually. It works on Windows and Linux. Chrome tab capture is not yet supported on macOS. DRM media and cross-origin media without CORS permission keep playing normally in the browser and are not spatialized. Audio generated directly with Web Audio may not be captured either.

Controlling it

Shortcut keys ("Remote" > "Shortcut keys")

Centering, focus (next / previous / off), toggling 3DoF and the master switch can be bound to global hotkeys on Windows, Raspberry Pi (labwc) and macOS. They keep working while another app has the foreground. On macOS, the default master shortcut is Control+Shift+Esc. The GNOME build does not yet register global shortcuts, so these rows are not shown there.

Phone remote ("Remote")

Turns a phone on the same network into a touchpad remote — a PC on wired Ethernet and a phone on Wi-Fi still reach each other, as long as it is the same network. Scan the QR code with the phone's camera — no app to install. From the page you get mouse control, centering, gyro bias recalibration and the screen distance.

When the QR cannot be scanned (say the glasses are your only display), use Pair with code: open the URL in the phone's browser and type the 6-digit code shown in the app.

If Windows Firewall asks on first enable, choose "Allow access". Only devices on your own network can reach it, and any device that does not know the token in the URL is rejected.

The phone remote, Android app download, and glasses bridge use unencrypted HTTP/WebSocket on the LAN. Use them only on a trusted private network, not shared or public Wi-Fi.

Android glasses bridge ("Remote")

A way to connect the glasses to an Android phone instead of the PC. The app on the phone handles the USB connection and relays video and head orientation to the wall on your PC. This is useful when you would rather not tie up a PC port or want to sit away from the machine. Windows and macOS can send video and audio by treating the glasses as an Android external display (Presentation). On macOS this uses Screen Recording and Audio Recording permission. The appendix lists the tested configuration and known limitations. High quality mode and the external Video Input widget remain Windows-only.

Once the phone app connects, "Remote" shows its state: the glasses' brightness, display mode and external display, plus whether the IMU and video channels are up. Model-specific settings behave the same over the bridge as they do when the glasses are plugged straight into the PC.

Stream Deck ("Advanced" > "Stream Deck")

Turning on "Accept control from this PC" opens a loopback-only (127.0.0.1) control port, so the Stream Deck plugin can trigger the same actions as the global hotkeys. It is unreachable from other machines, so there is no token.

Start at login ("Advanced")

Windows, packaged Linux builds and the macOS app bundle can start with the desktop session. macOS may open System Settings > General > Login Items for approval. At login, only the resident icon appears; the control window stays closed.

Tuning the picture and the load

Smoothness ("Power saving")

Picture ("Video effects")

Blur and flicker (Glasses)

Appearance ("Appearance")

Display language defaults to "Auto (follow OS)". You can explicitly choose English or Japanese. After changing it, restart Spatial Wall when prompted to apply the new language.

The theme defaults to "Auto (follow OS)"; Light and Dark can be forced.

Display language and theme in Appearance settings

When something is wrong

The glasses are not detected

Nothing shows in the glasses, or the desktop vanished

Stutter or dropped frames

No sound, or sound from the wrong direction

The cursor gets lost

On Windows and macOS, turn on the "keep the cursor off" options. macOS asks for Input Monitoring permission the first time. On GNOME, Raspberry Pi, or when the cursor has already moved to an invisible display, use the wall map to control it.

On macOS, Control + Shift + Esc turns the master switch off and removes Spatial Wall from the glasses. If a virtual display managed by Spatial Wall is the main display, the app first moves the main-display role to a visible physical display.

Still stuck

"About" > "Copy support information" puts the product, version, build time, the OS name and version, and connected glasses on the clipboard. Paste it into "Copied support information" in the support form without editing it. Select the OS, enter the supported glasses model, then fill in "What happened" and "Steps to reproduce" separately. Before attaching logs or screenshots, check that they contain no private or secret information.

Appendix

What differs per OS

✅ Supported · 🟡 Conditional · — Unsupported

Feature Windows GNOME Raspberry Pi macOS
Display Wall / Audio Wall
Virtual displays ✅ separate driver required ✅ built into the OS ✅ built into the OS ✅ built into the OS
Wall map ✅ available with the master switch off or the glasses disconnected
Cursor fence ✅ requires Input Monitoring permission
Tap controls ✅ requires Accessibility permission
Phone remote ✅ requires Accessibility permission
Global hotkeys
Android glasses bridge output 🟡 video, 3DoF, and audio verified on Intel Mac; Apple Silicon unverified

macOS as a whole is experimental. Anything unavailable simply does not appear in the UI.

Tested configurations and known limitations

The following results apply to the Spatial Wall 0.9.0 series as of August 2026.

Path Tested configuration Known limitations
Windows direct HMD output Windows 11 Pro (build 26200) / RTX 3060 / xbx a01+ with an HMD VSDB. Acquisition and scanout verified at 2D 90 Hz and 3D SBS 72 Hz. Only display modes with a Microsoft HMD VSDB are eligible. A Radeon 780M system (driver 32.0.31035.1003) did not expose an HMD Target. Intel UHD (driver 32.0.101.7088) was not stable in its classification; acquisition and scanout remain unverified.
macOS Android glasses bridge Intel Mac / macOS 15.7 / SC-52D / XREAL Air. Video from one physical and two virtual displays, 3DoF, audio, and automatic reconnection after restarting Spatial Wall were verified. Apple Silicon is unverified. High quality mode and external Video Input are Windows-only.

Where settings live

Settings and logs are under %APPDATA%\nyan-real\ (the platform's user config directory on Linux and macOS). You can open the log-storage folder from the app.

Resetting

"Advanced" > "Reset settings to defaults" returns everything to its initial state. This cannot be undone.

Checking the version

"About" shows the version and build time. Right-clicking spatial-wall.exe and opening Properties > Details shows it too.

Licenses

"About" > "View the license agreement" opens the terms this app is licensed under — the same text the installer shows before it copies anything. It also sits next to the app as EULA.ja.txt / EULA.en.txt; the Japanese text is the authoritative one.

"About" > "View third-party licenses" lists what is bundled and under which license. Where a component requires its full license text to travel with the app, that text is in licenses/ next to the app.