> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rebind.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Linux Setup

> Install Rebind on Linux and verify input permissions, display access, and optional desktop integrations.

The current Linux release targets 64-bit x86 Linux. Software mode captures
physical devices from `/dev/input/event*` and sends output through the active
desktop session. Linux support has narrower screen, window, and clipboard
coverage than Windows and macOS. Read [Platforms](/concepts/platforms) before
porting scripts that use those namespaces.

## Requirements

* A graphical X11 session for software output. Native Wayland injection is not
  implemented by the current Linux transport.
* Root access or `sudo` for installation.
* Read access to `/dev/input/event*`. The installed systemd service runs as
  root. A manually started relay instead needs root or membership in the
  `input` group.
* `curl` and a supported package manager. The installer can install QEMU with
  `apt-get`, `dnf`, `pacman`, or `zypper` when it is missing.
* `systemd` for automatic startup. Without it, the installer leaves a manual
  start command in its output.

## Install

```bash theme={"system"}
curl -fsSL https://rebind.gg/install.sh | sh
```

The installer places Rebind under `~/.rebind`, copies the `rebind` CLI to
`/usr/local/bin`, and starts the `rebind` systemd service when systemd is
available.

The system service does not automatically inherit an interactive session's
`DISPLAY` and `XAUTHORITY`. Input capture can start while desktop output still
fails. For software-mode output, run the relay from the X11 session or configure
those two environment values for the service from the values reported by that
session. Do not guess an Xauthority path.

Open `http://127.0.0.1:19480` after installation. If keys or mouse buttons stop
reaching the desktop, press **Left Ctrl + Left Alt + K** to stop every script
and release held output.

## Verify input access

```bash theme={"system"}
systemctl status rebind
journalctl -u rebind -n 100 --no-pager
```

`no input devices grabbed` means the process cannot read
`/dev/input/event*`, or another process already holds an exclusive grab. The
installed service avoids the first case by running as root. For a manual
user-level process, add the user to the `input` group according to your
distribution's policy, then sign out and back in before retrying.

## Optional dialogs

`Dialog.*` needs Zenity, KDialog, or YAD on Linux. Scripts that do not use
dialogs need none of them. Pixel sampling, clipboard access, and window control
remain limited on Linux regardless of which dialog helper is installed.
