Platform reference
Supported desktop platforms, host helpers, remote limits, and experimental boundaries.
Platform reference
Gardn has platform-specific process, clipboard, editor, cursor, and URL behavior. This page records the behavior of the current source rather than promising an unavailable release artifact. For task-oriented remote setup, see Use Gardn over SSH.
Desktop support
| Platform | Local client behavior | Remote role |
|---|---|---|
| macOS | Native macOS client and server. Uses the native host cursor by default and macOS helpers listed below. | Supported as a Unix local client and as a remote host on x86_64 and aarch64. |
| Linux | Native Linux client and server. Uses the native host cursor by default outside WSL and Linux clipboard/session helpers. | Supported as a Unix local client and as a remote host on x86_64 and aarch64. |
| WSL | Uses the Linux platform implementation inside WSL. WSL detection enables the drawn host cursor in automatic cursor mode. | Follow the Linux path from the WSL client; the remote host still needs a supported Linux or macOS binary and SSH access. |
| Windows | Native Windows client and server. Uses the drawn host cursor in automatic cursor mode, ConPTY process handling, and Windows editor/clipboard behavior. | Supported as a local thin client for the remote bridge. Not a supported remote host for the Unix remote path. |
Remote attach supports Unix local clients (Linux and macOS) and Windows local clients. Supported remote hosts are Linux and macOS on x86_64 or aarch64; Windows is not a supported remote host. A binary must match the remote operating system and architecture; a local build is not automatically portable across those combinations.
Host helpers
macOS
- Text clipboard writes use
pbcopy; text reads usepbpaste. - URLs open with
open. - Clipboard image reads use
osascriptand the macOS clipboard's PNG data. - Scrollback editors use
$VISUAL, then$EDITOR, withvias the Unix fallback.
Linux and WSL
- Wayland text clipboard uses
wl-copyandwl-pastewhenWAYLAND_DISPLAYis set. - X11 text clipboard uses
xclip, thenxsel, whenDISPLAYis set. - Wayland image reads use
wl-paste; X11 image reads usexclip. Gardn validates the image signature before using it. - URLs open with
xdg-open. - Scrollback editors use
$VISUAL, then$EDITOR, withvias the fallback.
Install and configure the helper for the active session type if clipboard or URL actions report that no helper is available. Gardn does not provide a second clipboard implementation when the platform helper is missing.
Windows
- Text clipboard writes use the native Windows clipboard API.
- Clipboard text reads are not provided by the Windows platform implementation.
- Clipboard image reads use the native Windows clipboard API. Registered PNG clipboard data is read directly; DIB and DIBV5 bitmap data is converted to PNG. Gardn validates the image signature and dimensions before using it.
- Scrollback editors use
$VISUAL, then$EDITOR, withnotepad.exeas the fallback. - Custom command strings run through
cmd.exe /d /c.
As a result, mouse or keyboard copy can write text on Windows, and remote image paste can read a clipboard image from a Windows local client. Clipboard text reads remain unavailable in the Windows implementation, so workflows that need Gardn to read clipboard text are unavailable on Windows.
Cursor and terminal boundaries
ui.host_cursor = "auto" follows the platform default. Native Windows builds and WSL draw a Gardn cursor as cell content to avoid outer-terminal cursor flicker; macOS and ordinary Linux use the outer terminal cursor by default. Set native or drawn explicitly when the default is unsuitable. A drawn cursor is part of the rendered terminal content and can differ from an application's native cursor.
Gardn depends on the outer terminal to deliver key and mouse events. tmux, terminal keymaps, ConPTY, IMEs, and terminal mouse reporting can change what reaches the application. See the keybinding caveats and copy and terminal guide for interaction-specific behavior.
Experimental features and unsupported nesting
The following boundaries are explicit configuration choices, not general platform guarantees:
experimental.allow_nestedisfalseby default. Launching Gardn from a Gardn-managed pane is blocked unless nesting is explicitly enabled; nested sessions can make process ownership and terminal input ambiguous.experimental.kitty_graphicsisfalseby default and requires a Kitty graphics-compatible outer terminal. Enabling it does not add graphics support to an incompatible terminal or to a remote host.experimental.switch_ascii_input_source_in_prefixis macOS-only and best-effort. It temporarily switches to an ASCII-capable input source while prefix mode is active, then attempts to restore the previous source.experimental.reveal_hidden_cursor_for_cjk_imeand its agent allow-list are intended for CJK input-method cursor tracking. They can make an otherwise hidden pane cursor visible; the setting is opt-in.
These settings may be version-sensitive and are not substitutes for native support in the outer terminal, IME, or graphics protocol. Keep them disabled when the corresponding host capability is unknown.
Last updated on