coppwr is a tool that provides low level control over the PipeWire multimedia server.
It aims to expose and provide as many ways to inspect and control the many aspects of the PipeWire multimedia server as possible.
It can be used as a diagnostic tool for PipeWire and to help develop software that interacts with it.
End-users of PipeWire that want to configure it should look into simpler tools
recommended by the PipeWire devs.
If you want to learn the inner workings of PipeWire check out the docs page on its internals and its wiki.
- Node graph editing
- Object inspection, creation & destruction
- Process monitoring & profiler statistics
- Metadata editing
- Module loading
- Connecting to XDG Desktop Portal remotes
More to be added...
coppwr-bin
is available from the AUR (use coppwr
for the non-prebuilt package).
Use your AUR helper of choice or install it manually
git clone https://aur.archlinux.org/coppwr-bin.git
cd coppwr-bin
makepkg -i
Debian and RPM packages are available from the releases.
coppwr does not self-update.
- Rust and Cargo version
1.70.0
or later - https://www.rust-lang.org/tools/install - bindgen requirements
- PipeWire library headers/PipeWire development packages
Available Cargo features
pw_v0_3_77
- Used for the Link permission on PipeWire globals. Enable this if you're building with libpipewire 0.3.77 or later.xdg_desktop_portals
- Allows connecting to PipeWire remotes opened by the Camera and Screencast XDG Desktop Portals.persistence
(On by default) - Store application data like window info, graph node positions etc. on disk
In the repository's root directory
cargo build --release
See the Cargo reference for info on how to use any of the above features
coppwr
is available from the AUR
git clone https://aur.archlinux.org/coppwr.git
cd coppwr
makepkg
Debian and RPM packages can be created using cargo-deb and cargo-generate-rpm respectively. See their usage instructions.
- egui+eframe - Immediate mode GUI for Rust and its desktop/web framework
- egui_dock - Docking support for egui
- (A fork of) egui_node_graph - A helper library to create interactive node graphs using egui
- (A fork of) pipewire-rs - Rust bindings to libpipewire
- ashpd - XDG Desktop Portals wrapper
- pollster - Simple async executor