Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
Adom Bridge on Linux: one codebase, one release (Linux sub-README + skills) #2
One codebase, one release: Adom Bridge on Linux
Code: GitHub adom-inc/adom-bridge, branch feat/linux-parity (7 commits on main @ daf7d704 = 2.1.185). This wiki PR carries the page side: a Linux sub-README, an "On Linux" card and Downloads row in the main README, and the seven skills the branch updates (same text as the branch, CRLF like the published copies).
Nothing is released, merged or promoted. VERSION is not bumped. The ab thread ships it when the Director and John say so.
What changed in the app (all in the same code as Windows; Linux paths are cfg(target_os = "linux"))
- Node runtime on Linux. System Node is used if it is 18+ with npm (PATH, nvm, volta, fnm, /usr/local, snap); otherwise the official nodejs.org 22.11.0 tarball for x64/arm64 is downloaded and refused unless its SHA-256 matches the value pinned in
runtime_cache.rs. Node bridges spawn. - Hydrogen's session is reused. Embedded and signed out, ab reads Hydrogen's loopback
GET /auth-tokenand signs in through the existingaccept_handoff+ cloud sync. An explicit Sign out in ab is remembered. - Mesh. Linux ab embedded in Hydrogen, with the mesh off and no recorded choice, switches to relay and records that choice (a person's choice is never overridden). The whole-config Settings save now applies a mode change live. Node-key log wording is per OS; the key file is 0600 on Unix.
- Wayland.
desktop_screenshot_screenvia the xdg-desktop-portal Screenshot API with GNOME's one-time consent;desktop_screenshot_windowcrops it for XWayland windows;desktop_list_windowsexplains an empty Wayland list. ab now sets its program name toinc.adom.bridge, which is its Wayland app id, so GNOME's "only the focused app may ask" check matches theinc.adom.bridge.desktopentry. X11 is unchanged. - Approvals from the notification. Toast buttons become
org.freedesktop.Notificationsactions; a click goes through the sameadom-bridge://dispatcher as a Windows toast button. - Install + autostart.
<AppImage> --install(no sudo, no FUSE): one copy in~/.local/share/adom-bridge-app/, a stable link for self-update, a lockedrun.sh(one copy; own systemd scope; imports the session env), menu entry, XDG autostart. Launch on boot on Linux points atrun.sh, not the transient extracted binary. - Release.
ship-release.shuploads the AppImage as alinuxasset of the sameadom/adom-bridgerelease; thelinuxblock still goes only into the insiders manifest.
Not in this PR (next phase): input verbs (X11 XTest, then the RemoteDesktop portal), a full native-Wayland window list.
Evidence
Windows (arav-rog, branch source in C:\abwork\ab-lp, separate target dir): cargo test --lib 179 passed, cargo build --release OK on f4dde8b7; the exe runs (--version). The GUI was not launched on arav-rog because startup rewrites the live install's HKCU toast and protocol registration (asked the Director).
Linux unit tests: 175 passed (three runs). One pre-existing flaky test on main, dynamic_bridge::kill_mode_tests::undeclared_bridge_gets_the_safe_default, can fail in parallel runs: two tests share the global kill-mode table. It passes single-threaded; not touched here.
Fedora 44, GNOME 50, Wayland, from its clean checkpoint, AppImage built from this branch:
--installfrom a shell: one copy started inapp-adom-inc.adom.bridge-*.scopewith the Wayland env; two morerun.shcalls kept one copy; after a reboot, autostart started exactly one copy.- No system Node:
node-v22.11.0-linux-x64.tar.gz sha256 verified (4f862bab52039835), managed Node + npm 10.9.0;bridge_installof Native Browser 0.16.33, thennbrowser_statusspawnedserver.jsunder the managed Node. - First screenshot with ab focused: GNOME showed "Allow Adom Bridge to Take Screenshots?"; after Allow, 1024x768 PNG; permission stored as
inc.adom.bridge: yes; nothing left in~/Pictures; second capture silent in 91 ms; still silent after reboot. notify_userwith buttons +wait: the notification showed "Ship it" / "Hold"; clicking Hold returnedaction: "Hold".- With Hydrogen 4243cb14 installed and launched (not signed in): ab adopted it within the monitor tick, logged "Hydrogen has no Adom session to share; staying signed out", switched the mesh to relay (
mode-choice.json: "embedded in Hydrogen with no earlier choice") and brought the mesh up.
Debian 13, Cinnamon, X11, from clean: --install started one copy; managed Node 22.11.0; X11 screenshot 1024x768; desktop_list_windows 3 windows; notification buttons: clicking "Ship it" returned action: "Ship it".
Not yet proven: adopting a real signed-in Hydrogen session (needs a signed-in Hydrogen: hl-ubuntu, which is in use, so left to the Director to schedule).
Diff Skip to comments (1)
README.md+6−1@@ -67,6 +67,10 @@ Every Adom Bridge signed into your account finds the others through the Adom Mes When Hydrogen is present it runs Adom Bridge embedded: hidden window, Hydrogen-owned permission prompts, and a distinct taskbar tile. If Hydrogen ever goes away, Adom Bridge comes back standalone so your machine stays reachable. Deep dive: [how Adom Bridge interacts with Hydrogen](docs/hydrogen-desktop.md). +## On Linux + +The same Adom Bridge runs on Linux: one AppImage for any recent x86_64 distribution, X11 or Wayland, built from the same code and shipped in the same release as the Windows installer. `./adom-bridge_<version>_linux_x86_64.AppImage --install` sets it up in your home folder (no sudo) and starts it at login. Under Hydrogen it reuses Hydrogen's sign-in and joins your mesh on its own; node and python bridges run with your Node (or one it downloads and verifies) and your `python3`; screenshots on Wayland go through the desktop's screenshot service after a one-time *Allow*; approvals come with buttons in the desktop notification. Linux builds are on the insiders tier for now. Install, what works on X11 and Wayland, and what is not there yet: [Adom Bridge on Linux](linux/README.md). + ## The laptop GUI The **Windows GUI** installs separately: a signed NSIS installer served from this page (*Download for your machine* above; Hydrogen installs it automatically). It installs to `%LOCALAPPDATA%\Adom Bridge\`, adds a tray icon, starts on login, and **auto-updates itself** from this page's `version.json` (prompt by default; every 4h and on launch). @@ -82,10 +86,11 @@ Everything a real user installs comes from this page. | Artifact | Platform | What it is | How to get it | |---|---|---|---| | Signed installer (NSIS) | Windows x64 | The GUI desktop app. Azure Trusted Signing. Installs to `%LOCALAPPDATA%\Adom Bridge\` and auto-updates. | The *Download for your machine* box at the top of this page. This is the one promoted Windows download. | +| AppImage | Linux x86_64 (insiders) | The same desktop app for Linux, X11 and Wayland. `--install` puts one copy in `~/.local/share/adom-bridge-app/`, adds a menu entry and login autostart, and it auto-updates. | The release on this page; see [Adom Bridge on Linux](linux/README.md). | | CLI + skills package | Linux (container) | The `adom-bridge` binary and Claude skill set for a cloud container driving your desktop remotely. Not needed if you use Hydrogen, which bundles Adom Bridge. SHA256-verified on install. | `adom-wiki pkg install adom/adom-bridge` | | `version.json` | manifest | The auto-update manifest the GUI polls: per-platform installer URL, SHA256, and size. | Read automatically by the app; you never fetch it by hand. | -The Windows GUI installer is the only promoted Windows download. There is intentionally no standalone Windows CLI download. macOS is planned; the manifest reserves a slot for it. +The Windows GUI installer is the only promoted Windows download. There is intentionally no standalone Windows CLI download. The Linux AppImage ships in the same release and is followed by insiders machines until it is promoted. macOS is planned; the manifest reserves a slot for it. ## Staying current: updates and the restart schedule
linux/README.mdadded+87@@ -0,0 +1,87 @@+# Adom Bridge on Linux++Adom Bridge for Linux is the same app as on Windows, built from the same code and shipped in the same release. It signs in to the same Adom account, joins the same mesh, runs the same bridges, and answers the same verbs from the relay, the mesh and the local API (`127.0.0.1:24680`). It is packaged as one AppImage that runs on any recent x86_64 distribution (tested on Ubuntu 24.04, Fedora 44 and Debian 13; GNOME, Cinnamon; Wayland and X11).++Linux builds are on the **insiders** tier for now: the AppImage is an asset of each Adom Bridge release on this page, and the insiders manifest's `linux` entry is what Linux machines update from.++## Install++Download `adom-bridge_<version>_linux_x86_64.AppImage` from this page's release, then:++```bash+chmod +x adom-bridge_*_linux_x86_64.AppImage+./adom-bridge_*_linux_x86_64.AppImage --install+```++`--install` needs no sudo and writes only under your home folder:++| Path | What it is |+|---|---|+| `~/.local/share/adom-bridge-app/adom-bridge_<version>_linux_x86_64.AppImage` | the app |+| `~/.local/share/adom-bridge-app/adom-bridge-app.AppImage` | a stable link to it; self-update repoints it |+| `~/.local/share/adom-bridge-app/run.sh` | the launcher: starts one copy and exits quietly if one is running |+| `~/.local/share/applications/inc.adom.bridge.desktop` | the app menu entry |+| `~/.config/autostart/inc.adom.bridge.desktop` | start at login (Settings > Launch on boot turns it off and on) |++It then starts Adom Bridge. Running `--install` again from a newer AppImage upgrades in place. `--install --no-launch` installs without starting it. FUSE is not needed.++**Always start it through `run.sh`** (the menu entry and autostart do). Two copies of Adom Bridge on one machine share one identity and keep knocking each other off the relay; `run.sh` takes a lock and checks for a running copy first.++To remove it: quit Adom Bridge, then delete the paths above plus `~/.local/share/icons/hicolor/256x256/apps/adom-bridge.png`. Your settings and sign-in live in `~/.adom/`.++## With Hydrogen++On a machine that runs Hydrogen, Adom Bridge runs embedded, as on Windows:++- **One sign-in.** If Adom Bridge is signed out, it uses Hydrogen's Adom session; you are not asked to sign in twice. If you sign out of Adom Bridge yourself, it stays signed out until you sign in again.+- **It joins your mesh.** If nobody has chosen a mesh mode on this machine, Adom Bridge switches the mesh on in relay mode (nothing listens on your network). Your other machines then show a card asking you to let the new machine in. A mode you chose, including off, is never changed.+- **Approvals show in Hydrogen** as well as in Adom Bridge and in the desktop notification.++## Bridges and runtimes++Bridges with a Linux build (python, node, or a native `spawn.entrypoints.linux`) install and run as on Windows.++- **Node:** Adom Bridge uses your Node if it is version 18 or newer and has npm (it looks on PATH and in the usual places: nvm, volta, fnm, `/usr/local`, snap). Otherwise it downloads the official Node build for your CPU from nodejs.org into `~/.adom/adom-runtimes/` and checks its SHA-256 against the value built into the app before using it. No sudo, nothing installed system-wide.+- **Python:** your distribution's `python3`. If it is missing, the error says how to install it.++`adom-bridge runtimes` shows what each bridge will run with.++## Screenshots and windows++| | X11 | Wayland |+|---|---|---|+| `desktop_screenshot_screen` | read from the X server, no tools needed | through the desktop's screenshot service (xdg-desktop-portal) |+| `desktop_screenshot_window` | the window's area of the screen | the window's area of the screen, for windows running under XWayland |+| `desktop_list_windows` | every window | windows running under XWayland only (on a stock GNOME desktop most apps are native Wayland, so the list is often empty and the reply says why) |++**Allowing screenshots on Wayland.** The first screenshot on a Wayland desktop asks the person at the screen once: *Allow Adom Bridge to Take Screenshots?* Choose **Allow** and later screenshots are silent. GNOME shows this question only while Adom Bridge's window is the focused window; if it is not, the screenshot fails with a message asking the person to click Adom Bridge's window and try again. To allow it ahead of time, or after choosing Deny:++```bash+flatpak permission-set screenshot screenshot inc.adom.bridge yes+```++(The `flatpak` command manages the desktop's permission store; Adom Bridge itself is not a Flatpak.) The screenshot service saves each capture to a file, which Adom Bridge reads and deletes at once.++## Notifications and approvals++Permission prompts appear as desktop notifications with their buttons (**Approve 1 hr**, **Deny**, and so on). Choosing one in the notification decides the request, exactly like the same button in Adom Bridge's window or in Hydrogen. A decision made anywhere else closes the notification. If the desktop's notification service cannot show buttons, the notification says so and the decision is made in Adom Bridge's window.++## Updates++Adom Bridge updates itself from the insiders manifest's `linux` entry: it downloads the new AppImage, checks its SHA-256, puts it beside the old one, repoints `adom-bridge-app.AppImage`, keeps the previous version for a rollback, and starts one new copy through `run.sh` after the old one has exited. `update_mode` works as on Windows (`prompt` by default; `auto` for an unattended machine).++## What does not work on Linux yet++| Feature | Status |+|---|---|+| Input verbs (`desktop_click`, `desktop_type`, ...) | not yet; planned: X11 first, then Wayland through the desktop's remote-control service |+| UI Automation (`desktop_ui_*`) | Windows only |+| Screen and window recording (`desktop_record_*`) | Windows only |+| Windows-only bridges (an `.exe` with no Linux entry, such as Fusion 360) | listed, never started; their verbs answer `unsupported_on_this_os` |++## Troubleshooting++- **It does not start / no window:** run `~/.local/share/adom-bridge-app/run.sh` and read `~/.local/share/adom-bridge-app/app.log`.+- **"Could not create default EGL display":** the AppImage carries its own Mesa EGL and uses it when the machine has none. `ADOM_BRIDGE_EGL=bundled` or `=system` forces one or the other.+- **A node bridge does not start:** `adom-bridge runtimes` shows whether Node was found or downloaded, and why a system Node was skipped.+- **Screenshots fail on Wayland:** the error says whether the screenshot service is missing, waiting for the person to answer, or was refused, and what to do.
skills/adom-bridge-embedded/SKILL.md+10@@ -156,3 +156,13 @@ relay `server_add`/`server_remove` handlers, because any of those would break the embedded session. The UI shows it as a "Managed by Hydrogen" row with a locked note instead of editable fields. Do not try to work around the refusal; the entry is torn down automatically when ab reverts to standalone. + +## Sign-in under Hydrogen + +ab signs in with Hydrogen's Adom session; the person never signs in twice. Hydrogen passes its +token when it starts ab (`--session-token`, `ADOM_SESSION_TOKEN`, a hand-off file) or when it adopts +a running ab (`POST /embedded/enter {session_token}`). If ab still has no session once it is +embedded (for example Hydrogen adopted an ab that was already running), ab reads the token from +Hydrogen's loopback API (`GET /auth-token`) and signs in with it. An explicit Sign out in ab's own +window is remembered (`~/.adom/ab-user-signed-out`), so ab does not sign itself back in; any +sign-in clears it.
skills/adom-bridge-linux/SKILL.md+49−12@@ -2,21 +2,31 @@ name: adom-bridge-linux description: >- For Adom Bridge running on a Linux machine (the AppImage), not the adom-bridge CLI in a - container: install one copy, self-update, what is still Windows-only, Grok Bot computers - (wake with grok_wake). Use when installing, updating or debugging ab on Linux, or a Linux - mesh peer is unreachable. + container: --install, one copy, self-update, Wayland screenshots, what is still Windows-only, + Grok Bot computers. Use when installing, updating or debugging ab on Linux, or a Linux mesh + peer is unreachable. --- # Adom Bridge on Linux -The Linux build is the same app as on Windows, packaged as an AppImage -(`adom-bridge_<version>_linux_x86_64.AppImage`). It signs in to the same Adom -account, joins the same mesh, and answers the same verbs from the relay, the mesh -and the local API (`127.0.0.1:24680`). It is a **private preview**: the AppImage -lives on the insiders tier, not the public page. +The Linux build is the same app as on Windows, built from the same code and shipped +in the same release, packaged as an AppImage +(`adom-bridge_<version>_linux_x86_64.AppImage`, an asset of the release on +adom/adom-bridge). It signs in to the same Adom account, joins the same mesh, and +answers the same verbs from the relay, the mesh and the local API +(`127.0.0.1:24680`). Linux is on the **insiders** tier: only the insiders +manifest has a `linux` entry until a human promotes it. ## Install and launch: one copy, always +**The AppImage installs itself:** `./adom-bridge_<ver>_linux_x86_64.AppImage --install` +(no sudo, no FUSE). It copies itself to `~/.local/share/adom-bridge-app/`, points +`adom-bridge-app.AppImage` at it, writes the locked `run.sh` below, a menu entry +(`~/.local/share/applications/inc.adom.bridge.desktop`) and, while Launch on boot is on, +`~/.config/autostart/inc.adom.bridge.desktop` (both run `run.sh`), then starts it. +`--no-launch` skips the start. Running it again from a newer AppImage upgrades in place. +What it sets up, and why: + - Keep the AppImage in a folder of its own, for example `~/.local/share/adom-bridge-app/`, with a stable symlink `adom-bridge-app.AppImage -> adom-bridge_<version>_linux_x86_64.AppImage`. @@ -32,7 +42,8 @@ lives on the insiders tier, not the public page. - Set `DISPLAY` to the X display it should use. - `adom-bridge-app --version` prints the version and exits; it never starts a copy. -A minimal `run.sh`: +The `run.sh` that `--install` writes is equivalent to this minimal one (it also +matches a FUSE-mounted `/tmp/.mount_*` copy and passes its arguments through): ```bash #!/bin/bash @@ -85,9 +96,35 @@ overrides). No `libs/` folder or extra packages are needed. | Works | Not yet (Windows only) | |---|---| | shell_execute, run_script, files (send_files, pull_file, read/write) | input verbs (desktop_click, desktop_type, ...) | -| desktop_screenshot_screen, desktop_screenshot_window, desktop_list_windows (X11, 2.1.181+, no tools needed) | UI Automation (desktop_ui_*) | -| bridges with a Linux build (python, node, or `spawn.entrypoints.linux`) | Windows-only bridges (a `.exe` with no Linux entry): listed, never started, verbs answer `unsupported_on_this_os` | -| self-update, mesh, relay, notifications (notify-send) | recording | +| desktop_screenshot_screen, desktop_screenshot_window, desktop_list_windows on X11 (no tools needed) and Wayland (see below) | UI Automation (desktop_ui_*) | +| bridges with a Linux build (python, node, or `spawn.entrypoints.linux`); Node is the system one if 18+ with npm, else a verified nodejs.org download | Windows-only bridges (a `.exe` with no Linux entry): listed, never started, verbs answer `unsupported_on_this_os` | +| self-update, mesh, relay, notifications with buttons (approve from the notification) | recording | + +## Wayland + +ab usually runs under XWayland on a Wayland desktop (Ubuntu and Fedora GNOME), so X11 +answers but cannot read the screen. + +- `desktop_screenshot_screen` uses the xdg-desktop-portal Screenshot service. The first + capture on a machine shows the person a one-time *Allow Adom Bridge to Take Screenshots?* + prompt (GNOME shows it only while Adom Bridge's window is focused; otherwise the verb fails + at once and says to ask the person to click Adom Bridge's window, then retry); the verb waits up to 45 s, then fails with an error saying it is waiting for that + answer. After Allow, captures are silent. If it was refused: + `flatpak permission-set screenshot screenshot inc.adom.bridge yes` (the permission store, not a Flatpak + install). Check the stored answer with + `flatpak permission-show screenshot` or `gdbus call --session --dest org.freedesktop.impl.portal.PermissionStore --object-path /org/freedesktop/impl/portal/PermissionStore --method org.freedesktop.impl.portal.PermissionStore.Lookup screenshot screenshot`. +- `desktop_screenshot_window` works for XWayland windows (the portal capture, cropped). + A native Wayland window (most GNOME apps, Firefox, Hydrogen) has no readable position: + capture the screen. +- `desktop_list_windows` lists XWayland windows only (stock GNOME refuses its full list to apps), + so it is often empty there; the reply's `_hint` says so. + +## With Hydrogen + +- Signed out + embedded: ab takes Hydrogen's session (`GET /auth-token` on Hydrogen's + loopback API); no second sign-in. A Sign out in ab's window is remembered. +- Embedded, mesh off, and nobody ever chose a mode (no `~/.adom/mesh/mode-choice.json`): + ab switches the mesh to `relay` and records that; the other boxes show the join card. Commands a bridge or script runs get the machine's own environment, not the AppImage's private library paths, so `python3` and `curl` work normally.
skills/adom-bridge-mesh/SKILL.md+13−2@@ -81,8 +81,19 @@ never dialled and its inbound connection is refused. - A dial to an untrusted peer fails with a message naming the state; `--target` then falls back to the cloud command relay as usual. -The node key is DPAPI-wrapped for the Windows user on that machine. A copied profile does -not unwrap; that box mints a new identity and asks to join again. +The node key (`~/.adom/mesh/node.key`) is DPAPI-wrapped for the Windows user on that +machine; a copied profile does not unwrap, so that box mints a new identity and asks to join +again. On Linux the key file is readable only by its owner (mode 0600 in a 0700 folder), like +an ssh key. + +**Changing the mode takes effect at once** (`settings_set {"settings":{"mesh_mode":"relay"}}`, +the Settings window, or Hydrogen): ab closes the endpoint and binds again in the new mode. Only a +hand edit of `config.json` waits for the next launch. + +**Linux machines that run Hydrogen join by themselves.** When ab is embedded in Hydrogen on Linux, +the mesh is off, and nobody ever chose a mode there (no `~/.adom/mesh/mode-choice.json`), ab +switches to `relay` and records that choice; the user's other boxes then show the join card. A +mode a person chose, including `off`, is never changed. The Adom relay admits only enrolled accounts: the account's relay token lives in the Carbon KV (`bridge.mesh.relayToken`) and every ab of the account presents it. `desktop_mesh_status`
skills/adom-bridge-notify/SKILL.md+9@@ -285,3 +285,12 @@ notify_user { Before 2.1.163 a prefixed Hydrogen verb failed at click time with "Unknown hd command"; on an older box, arm `{"app": "hd", "command": "api", ...}` instead. - An expired or already-used click falls back to raising Adom Bridge, never a dead click. + +## On Linux + +`notify_user` and approval prompts go to the desktop's notification service +(`org.freedesktop.Notifications`). Buttons become notification actions, so a person can approve +or deny from the notification itself; the click goes through the same path as a Windows toast +button (`wait`, `notify_events` and approvals behave the same). A body click opens Adom Bridge. +A decision made elsewhere closes the notification. A toast with buttons stays until it is +answered. Where the desktop shows no buttons (rare), the person decides in Adom Bridge's window.
skills/adom-bridge-runtimes/SKILL.md+12−3@@ -20,14 +20,23 @@ per-kind install lock (two bridges asking at once never double-download): 1. Already `Ready` in the in-memory state map: return the exe. 2. A **system runtime on PATH** is used as-is (`source: system`), no download. + On Linux ab also looks where Node installers put it (nvm, volta, fnm, + `/usr/local/bin`, `/snap/bin`, `~/.local/bin`), because a login or desktop + launcher gives ab a bare PATH, and it uses a system Node only if it is 18 or + newer AND has npm beside it; anything else falls through to step 4. 3. A prior **portable copy** under `~/.adom/adom-runtimes/<kind>-<ver>/` (`source: cache`). -4. **Download a portable copy** (Windows): stream-download, extract, atomic - rename into the runtime dir, emitting `runtime-status` progress events. +4. **Download a portable copy**: stream-download, extract, atomic rename into the + runtime dir, emitting `runtime-status` progress events. Windows: Node and + Python. Linux: Node (the official tarball for x86_64 or arm64, kept in its + upstream `bin/node` + `lib/node_modules/npm` layout); Python on Linux is the + distribution's `python3`, and its absence is reported with the install command. Pinned portable versions (one place to bump, in `runtime_cache.rs`): -- Node 22.11.0 (official nodejs.org win-x64 zip) +- Node 22.11.0 (official nodejs.org win-x64 zip; on Linux the linux-x64 / + linux-arm64 `.tar.gz`, refused unless its SHA-256 equals the value pinned in + `runtime_cache.rs` from nodejs.org's `SHASUMS256.txt`) - Python 3.13.15 (the official python.org build as published on nuget.org, a plain zip: full CPython with `venv`, `pip` and `ensurepip`, no Tk). Since 2.1.161 its interpreter, DLLs and modules are signed by the Python Software Foundation, so
skills/adom-bridge-window-capture/SKILL.md+17@@ -254,3 +254,20 @@ Capture is background by default (PrintWindow, no focus steal, no cursor move). - `desktop_screenshot_screen` — full virtual-screen grab (all monitors, stitched). - `desktop_record_window_start` / `desktop_record_screen_start` — background video capture (same PrintWindow/WGC family). - `adom-bridge janitor status` — verify the auto-pull cache is being managed (so a tool never builds its own cleaner). + +## On Linux + +The verbs and reply shapes are the same; how the pixels are read differs. + +- **X11:** straight from the X server (no tools needed). `desktop_screenshot_window` is the window's + rectangle cut from the screen, so a covered part shows what covers it; there is no `screenshots[]` + of owned dialogs. +- **Wayland:** `desktop_screenshot_screen` goes through the desktop's screenshot service + (xdg-desktop-portal). The FIRST capture on a machine asks the person at the screen to allow Adom + Bridge to take screenshots (GNOME asks only while Adom Bridge's window is focused; otherwise the + verb fails at once and says so). Until they answer, the verb waits up to 45 s. After Allow, captures are silent. A refusal is reported with the command that + allows it later (`flatpak permission-set screenshot screenshot inc.adom.bridge yes`). + `desktop_screenshot_window` works for windows running under XWayland (it crops the portal capture + to the window); a native Wayland window has no readable position, so capture the screen. + `desktop_list_windows` lists XWayland windows only (stock GNOME refuses its full list to apps), so + it is often empty there; the reply's `_hint` says so.
skills/adom-bridge/SKILL.md+1−1@@ -98,7 +98,7 @@ If not running (in a container, ALWAYS use `--supervise` so it survives your ses Ask the user: **"What operating system is your desktop/laptop? (Windows, Mac, or Linux)"** - **Windows 10/11** -- proceed-- **Linux** -- a private preview (AppImage, insiders tier, 2.1.175+). Installing it, keeping one copy running, updates, and what works there: the `adom-bridge-linux` skill. Inside a Grok Bot agent computer the machine is paused while its agent is idle; that skill says how to wake it.+- **Linux** -- the same app as an AppImage in the same release (insiders tier). `--install` sets it up; X11 and Wayland screenshots, Hydrogen sign-in reuse, keeping one copy running, updates, and what works there: the `adom-bridge-linux` skill. Inside a Grok Bot agent computer the machine is paused while its agent is idle; that skill says how to wake it. - **macOS** -- "Support is coming soon." ### Step 4: Install & connect
Comments
Log in to comment.