49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# HydraOS
|
|
|
|
Gentoo-based host for concurrent virtual desktops. Its default session shows one
|
|
VM fullscreen and switches between guests with keyboard shortcuts. Other host
|
|
desktops may use the same independent VM manager and viewers.
|
|
|
|
## Status
|
|
|
|
Under active development, not yet an installation-ready distribution. The target
|
|
is an installable UEFI ISO, first validated on ASUS TUF Dash F15 FX517ZC. Existing
|
|
NixOS and VM disks are not installation or test targets.
|
|
|
|
1. Independent QEMU/KVM lifecycle with private QMP control.
|
|
2. Minimal labwc session and fullscreen SPICE viewers.
|
|
3. Gentoo rootfs, live ISO, explicit disk installer.
|
|
4. Disposable-disk installation/reboot tests, then physical live-boot checks.
|
|
|
|
Shared clipboard and directories are opt-in. VM processes survive viewer and
|
|
compositor exits. GPU passthrough and graphics performance require hardware tests;
|
|
a refresh-rate setting does not prove delivered FPS.
|
|
|
|
- [Session design](docs/superpowers/specs/2026-10-13-graphics-session-design.md)
|
|
- [Implementation plan](docs/superpowers/plans/2026-10-13-graphics-session.md)
|
|
- [Hardware target](docs/hardware/asus-fx517zc.md)
|
|
|
|
Build outputs, VM disks, runtime state and credentials stay outside Git.
|
|
|
|
## Run the prototype
|
|
|
|
```sh
|
|
python3 -m unittest discover -s tests -v
|
|
nix-shell dev/tools.nix
|
|
bin/hydra add guest --iso /absolute/path/installer.iso
|
|
bin/hydra start guest
|
|
bin/hydra view guest
|
|
# From a dedicated graphical login; --nested uses the current graphical display.
|
|
bin/hydra session --nested
|
|
```
|
|
|
|
After installation, shut the guest down and run `bin/hydra media guest --detach`
|
|
to boot its existing disk without installation media. `add` also supports disk-only
|
|
profiles, `--width`, `--height`, and `--refresh-millihz`. Distribution preferences
|
|
in `/etc/hydra/defaults.toml` affect only new profiles; explicit CLI options win.
|
|
|
|
`nix-shell dev/tools.nix --run 'python3 dev/smoke.py'` checks two disposable KVM
|
|
counter guests and private headless viewers, including manual USB selection,
|
|
reserved switching under inhibition, recovery and reconnect. See
|
|
[verification commands and physical checks still pending](docs/verification.md).
|