# Oscrus Linux Host Preview

Choose **amd64** for Intel/AMD PCs or **arm64** for 64-bit ARM PCs.
Run `dpkg --print-architecture` if you are unsure. 32-bit ARM is not supported.
Targets Ubuntu 22.04/24.04, Debian 12 and compatible distributions with
Python 3.10 or newer and glibc 2.35 or newer. Other releases are not verified.

## Install

In a terminal in your Downloads folder, install your matching package:

```sh
sudo apt install ./oscrus-host_1.16.0~preview3_amd64.deb
```

For ARM64, use the filename ending in `_arm64.deb` instead.
APT installs the desktop, capture and audio dependencies. Node and the
architecture-specific WebRTC binding are included; no npm setup is needed.

Open **Oscrus Host** from the application menu as your normal user, not root.
Enter your existing Oscrus account username when prompted. The local control
panel opens, and the PC registers with your account on the Oscrus website.
The installer does not launch a service or open firewall ports.

## Desktop Requirements

This release supports **X11/Xorg only**, not Wayland or XWayland.
At sign-in, choose an X11 session (for example Ubuntu on Xorg) when available.
A logged-in graphical desktop is required. Login-screen access, unattended
boot startup and recovery after a full host crash are not provided yet.
Do not log out of a PC you depend on for remote access.

Video uses FFmpeg X11 capture and H.264 with NVENC/Quick Sync when available,
otherwise CPU encoding. On ARM and limited CPUs, normal mode uses a faster
software preset; this trades some compression efficiency for smoother motion.
Frame rate and latency depend on hardware and network;
1080p30 is not guaranteed, particularly on small ARM boards. AMD VAAPI and
zero-copy Linux GPU capture are not implemented in this preview.
Audio shares the default PulseAudio/PipeWire output monitor, not the microphone.
Mouse, keyboard, multi-monitor desktop capture and text clipboard are included.
The Linux stream currently includes the remote cursor rather than the Windows
hybrid cursor behavior. Clipboard shortcuts depend on the focused application
and keyboard layout. The local control panel is bound to loopback only.

## Troubleshooting

```sh
oscrus --doctor
oscrus --foreground --no-browser
```

Settings: `~/.oc-server.json` (contains credentials; do not share it).
Logs: `~/.local/state/oscrus/host.log` (or your `XDG_STATE_HOME`).
To avoid sharing credentials, redact logs before sending them to anyone.
Logs rotate on launch when larger than 5 MiB, not during a running session.
The PC Manager restart action restarts Oscrus software, not the Linux PC.
It requires the host process to still be responsive.

Remove with `sudo apt remove oscrus-host`. Settings are retained. Close Oscrus
yourself before removal or upgrades; the package does not terminate sessions.

## Build

On Linux with Node/npm, Python 3.10+, dpkg-deb and xz:

```sh
python3 linux/build-deb.py --output /tmp/oscrus-packages-new
```

Builds both architectures without root, installation or startup. Official Node
checksums and pinned node-datachannel checksums are verified. Output includes
SHA-256 package checksums in `manifest.json`. Use a fresh output directory.
