Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dimtpap/coppwr
Low level control GUI for the PipeWire multimedia server
https://github.com/dimtpap/coppwr
audio debugging gui linux multimedia pipewire utility video
Last synced: 3 months ago
JSON representation
Low level control GUI for the PipeWire multimedia server
- Host: GitHub
- URL: https://github.com/dimtpap/coppwr
- Owner: dimtpap
- License: gpl-3.0
- Created: 2023-01-10T15:12:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-27T08:05:24.000Z (3 months ago)
- Last Synced: 2024-10-27T20:52:54.286Z (3 months ago)
- Topics: audio, debugging, gui, linux, multimedia, pipewire, utility, video
- Language: Rust
- Homepage: https://dimtpap.ovh/coppwr
- Size: 2.96 MB
- Stars: 277
- Watchers: 4
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/dimtpap/coppwr - GUI tool for PipeWire management (Jump To / Linux)
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/dimtpap/coppwr - GUI tool for PipeWire management (Jump To / Linux)
README
# coppwr
Low level control GUI for [PipeWire](https://pipewire.org)
![Screenshot](assets/screenshots/all.png)## Description
**coppwr** displays and provides control over many aspects of [PipeWire](https://pipewire.org) as directly as possible
in an organized and visual way. It can help with debugging and diagnosing a PipeWire setup or with developing software that interacts with PipeWire.
End-users of PipeWire that want to configure it should look into simpler tools
[recommended by the PipeWire devs](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#is-there-a-native-gui-tool-to-configure-pipewire).
If you want to learn the inner workings of PipeWire check out the [docs page on its internals](https://docs.pipewire.org/page_internals.html) and its [wiki](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home).## Features
- Node graph editing
- Object inspection, creation & destruction
- Process monitoring & profiler statistics
- Metadata editing
- Module loading
- Connecting to [XDG Desktop Portal](https://flatpak.github.io/xdg-desktop-portal/) remotes
[More to be added...](https://github.com/dimtpap/coppwr/issues/1)## Installing
### Flatpak
### Arch
[![coppwr AUR version](https://img.shields.io/aur/version/coppwr?label=coppwr&logo=archlinux)](https://aur.archlinux.org/packages/coppwr)
[![coppwr-bin AUR version](https://img.shields.io/aur/version/coppwr-bin?label=coppwr-bin&logo=archlinux)](https://aur.archlinux.org/packages/coppwr-bin)
`coppwr-bin` is available from the [AUR](https://aur.archlinux.org/packages/coppwr-bin) (use `coppwr` for the non-prebuilt package).
Use your AUR helper of choice or install it manually
```sh
git clone https://aur.archlinux.org/coppwr-bin.git
cd coppwr-bin
makepkg -i
```
### Debian, RPM
> [!NOTE]
> coppwr does **not** self-update.Debian and RPM packages are available from the [releases](https://github.com/dimtpap/coppwr/releases/latest).
## Building
### Requirements
- Rust and Cargo version `1.76.0` or later - https://www.rust-lang.org/tools/install
- bindgen [requirements](https://rust-lang.github.io/rust-bindgen/requirements.html)
- PipeWire library headers/PipeWire development packages### Available [Cargo features](https://doc.rust-lang.org/cargo/reference/features.html)
- `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](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Camera.html)
and [Screencast](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.ScreenCast.html) XDG Desktop Portals.
- `persistence` (**On** by default) - Store application data like window info, graph node positions etc. on disk
### Build
In the repository's root directory
```sh
cargo build --release
```
See the [Cargo reference](https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options) for info on how to use any of the above features
### Arch
`coppwr` is available from the [AUR](https://aur.archlinux.org/packages/coppwr)
```sh
git clone https://aur.archlinux.org/coppwr.git
cd coppwr
makepkg
```
### Debian, RPM
Debian and RPM packages can be created using [cargo-deb](https://github.com/kornelski/cargo-deb#readme)
and [cargo-generate-rpm](https://github.com/cat-in-136/cargo-generate-rpm#cargo-generate-rpm) respectively.
See their usage instructions.## Credits
- [egui](https://crates.io/crates/egui)+[eframe](https://crates.io/crates/eframe) - Immediate mode GUI for Rust and its desktop/web framework
- [egui_dock](https://crates.io/crates/egui_dock) - Docking support for egui
- ([A fork](https://github.com/kamirr/egui_node_graph) of) [egui_node_graph](https://crates.io/crates/egui_node_graph) - A helper library to create interactive node graphs using egui
- ([A fork](https://gitlab.freedesktop.org/dimtpap/pipewire-rs/-/tree/coppwr-next) of) [pipewire-rs](https://crates.io/crates/pipewire) - Rust bindings to libpipewire
- [ashpd](https://crates.io/crates/ashpd) - XDG Desktop Portals wrapper
- [pollster](https://crates.io/crates/pollster) - Simple async executor