--- layout: ../layouts/DocLayout.astro title: Installation toc: true --- # Installation ## Cargo ```sh cargo install deskctl ``` ## From source ```sh git clone https://github.com/harivansh-afk/deskctl cd deskctl cargo build --release ``` ## Docker (cross-compile for Linux) Build a static Linux binary from any platform: ```sh docker compose -f docker/docker-compose.yml run --rm build ``` This writes `dist/deskctl-linux-x86_64`. ## Deploy to a remote machine Copy the binary over SSH when `scp` is not available: ```sh ssh -p 443 user@host 'cat > ~/deskctl && chmod +x ~/deskctl' < dist/deskctl-linux-x86_64 ``` ## Requirements - Linux with an active X11 session - `DISPLAY` environment variable set (e.g. `DISPLAY=:1`) - `XDG_SESSION_TYPE=x11` - A window manager that exposes EWMH properties (`_NET_CLIENT_LIST_STACKING`, `_NET_ACTIVE_WINDOW`) No extra native libraries are needed beyond the standard glibc runtime (`libc`, `libm`, `libgcc_s`).