## `wayclip-daemon`
[](https://crates.io/crates/wayclip-daemon)
[](https://opensource.org/licenses/MIT)
The crate `wayclip-daemon` provides important processes and pipelines for intialising, managing and debugging the Wayclip daemon.
Wayclip daemon provides the functionality to record and process data.
> **Note:** `wayclip-daemon` is designed as a background service and is controlled via `wayclip-cli`.
## Libraries Required
| `gstreamer-1.0` | Yes | `>= 1.24` | Required by `gstreamer`, `gstreamer-app` |
| `gstreamer-plugins-base-1.0` | Yes | `>= 1.24` | Provides elements like `appsrc`, `videoconvert`, `videoscale`, etc... |
| `gstreamer-plugins-good` | Yes | `>= 1.24` | Provides elements like `matroskamux` & `watchdog` |
| `gstreamer-plugins-bad` | Yes | `>= 1.24` | Provides encoders like `h264parse`, `vah264enc` (VAAPI), `nvh264enc` (NVIDIA) |
| `gstreamer-plugins-ugly` | Yes | `>= 1.24` | Provides software encoder `x264enc` |
| `libpipewire-0.3` | Yes | `>= 0.3.0` | Required by `pipewire` |
| `libudev` | Yes | `>= 199` | Required by `gilrs` |
| `alsa-lib` | Yes | `>= 1.0.27` | Required by `rodio` |
| `xdg-desktop-portal` (backend specific) | Yes | Required by `ashpd`'s `Screencast` portal |
| D-Bus | Yes | Required by `zbus` |
| `pipewire` | Yes | Required by `pipewire` & checked using `$XDG_RUNTIME_DIR/pipewire-0` |
| `systemd` | Optional | Required by `DaemonClient`, controls via `org.freedesktop.systemd1` |
| `hyprctl` / `swaymsg` | Conditional | Only for Hyprland/Sway Key-Binding & Window Discovery |
| `gdbus` | Conditional | Only for GNOME window discovery |
| Discord client | Conditional | Only if `discord_rich_presence` is enabled in settings |
The runtime-required `gstreamer` packages can be checked via the `wayclip-cli` by running `wayclip daemon doctor`
## Platforms supported
| Linux (Wayland/Hyprland) | Supported | Key-Binding done via `hyprctl`. Requires Hyprland v0.55+ for lua |
| Linux (Wayland/Sway) | Supported | Key-Binding done via `swaymsg` |
| Linux (Wayland/GNOME/KDE) | Supported | Key-Binding done via `wayclip-global-hotkey`. Window Discovery done via `gdbus` |
| Linux (Wayland/Other) | Supported | Key-Binding not supported |
| Linux (X11/Other) | Supported | Key-Binding not tested |
| Windows | Planned | Not available |
| MacOS | Unknown | Not available |
## Feature flags
| `linux` | Enables the `linux` module, enabling use of packages line `zbus`, `pipewire` and more | Yes |
| `windows` | Not currently avaialable | No |
> _Note: `linux` and `windows` feature flags are mutually exclusive._
## License
This project is licensed under the [MIT License](LICENSE.md).