[![crates.io](https://img.shields.io/crates/v/smithay-client-toolkit.svg)](https://crates.io/crates/smithay-client-toolkit)
[![docs.rs](https://docs.rs/smithay-client-toolkit/badge.svg)](https://docs.rs/smithay-client-toolkit)
[![Build Status](https://github.com/Smithay/client-toolkit/workflows/Continuous%20Integration/badge.svg)](https://github.com/Smithay/client-toolkit/actions?query=workflow%3A%22Continuous+Integration%22)
# Smithay's Client Toolkit
This crate is a toolkit for writing wayland clients in rust, on top of [wayland-client](https://crates.io/crates/wayland-client).
Currently a work in progress, it currently provides the following utilities:
- Automatic binding of general wayland globals (`wl_compositor`, `wl_shm`, etc..)
- Abstraction to create windows (aka toplevel surfaces), abstracting the interaction
with the shell (`xdg_shell` or `wl_shell`) and the drawing of decorations
- Wrapper for `wl_keyboard` for automatic keymap interpretation using `libxkbcommon.so`.
- Utilites for creating dpi aware surfaces.
## Documentation
The documentation for the master branch is [available online](https://smithay.github.io/client-toolkit/).
The documentation for the releases can be found on [docs.rs](https://docs.rs/smithay-client-toolkit).
## Requirements
Requires at least rust 1.65 to be used and version 1.15 of the wayland system libraries if
using the system backend.