mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-11-13 12:13:46 +01:00
docs(computer-use): document the headless i3 session
This commit is contained in:
1 parent
00aab5f562
commit
0185fd0f85
2 files changed
+41
No files matched your search
@@ -22,6 +22,7 @@ home/
|
||||
├── linux/ # Linux-specific home manager configurations
|
||||
│ ├── base/ # Linux base configurations
|
||||
│ ├── gui/ # Linux GUI applications
|
||||
│ │ ├── i3/ # i3 — headless computer-use session (see i3/README.md)
|
||||
│ │ ├── niri/ # Niri window manager
|
||||
│ │ └── ...
|
||||
│ ├── editors/ # Linux-specific editors
|
||||
@@ -42,6 +43,7 @@ home/
|
||||
|
||||
2. **linux**: Linux-specific configuration
|
||||
- Desktop environments (Noctalia Shell, Niri compositor)
|
||||
- Headless computer-use session (`gui/i3`, Xvfb + i3; see `gui/i3/README.md`)
|
||||
- Linux-specific GUI applications
|
||||
- System integration tools
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# i3 — headless computer-use session
|
||||
|
||||
This module provides the headless X11 session used by the computer-use VMs (`idols-ruby`,
|
||||
`idols-kana`). It is **not** a normal desktop configuration and is not meant to be used
|
||||
interactively by a person.
|
||||
|
||||
## Purpose
|
||||
|
||||
Give a computer-use agent a virtual 1920x1080 X display it can observe and control: screenshots,
|
||||
window discovery/activation, synthetic input, and the AT-SPI accessibility tree. The agent itself
|
||||
runs elsewhere and connects over MCP; this module is only the "computer" side.
|
||||
|
||||
The session is built on Xvfb plus i3 because the drivers support native X11 at their highest tier
|
||||
(cua-driver "Linux X11 — Supported"; computer-use-linux has an i3 backend). cua-driver's Sway lane
|
||||
is XWayland/X11-based, so a native X11 session is simpler and better supported than Sway/Wayland.
|
||||
|
||||
## How it is wired
|
||||
|
||||
- `home/linux/gui/i3/default.nix` defines the option `modules.desktop.computerUse` and the user
|
||||
services: `xvfb` → `i3` → (`x11vnc`, `cua-driver serve`).
|
||||
- `modules/nixos/desktop/computer-use.nix` provides the system side (`linger`, AT-SPI, fonts, Mesa,
|
||||
Clash Verge proxy, proxy-region timezone).
|
||||
- `computer-use-init.sh` (exec'd by i3) publishes `DISPLAY`/`XDG_SESSION_TYPE` to the systemd user
|
||||
manager, clears any stale `WAYLAND_DISPLAY`, and enables the AT-SPI bridge via a gsettings key.
|
||||
- Drivers live in `overlays/cua-driver.nix` and `overlays/computer-use-linux.nix`.
|
||||
- Host wiring: `home/hosts/linux/idols-ruby.nix`, `home/hosts/linux/idols-kana.nix`.
|
||||
|
||||
## The i3 config
|
||||
|
||||
The generated config is intentionally minimal:
|
||||
|
||||
- `font pango:monospace 10`
|
||||
- `default_border normal` — keeps title bars, so the client area is slightly smaller than the
|
||||
screen. That matches a real desktop and avoids a full-screen-sized viewport.
|
||||
- `exec --no-startup-id .../computer-use-init.sh` — one-time session setup, see above.
|
||||
|
||||
There are no keybindings, bars or autostarted apps: agents drive the session through the drivers,
|
||||
not the keyboard. Manual inspection is done over VNC (`x11vnc`, bound to `127.0.0.1`; reach it
|
||||
through an SSH tunnel).
|
||||
Reference in new issue
Block a user