Find a file
Mathias Rav 3cd19f2d1d When dragging a node, don't snap its top-left corner to the cursor
Revamp the node dragging implementation, moving it into the GraphView
widget.

When a drag is initiated, the node widget's current position is stored.
Whenever the drag gesture is updated, the node widget's position is set
by adding the relative drag vector to the position at the start of the
drag.

A drag gesture on the node widget rather than the GraphView widget was
considered, but this seems to lead to a weird flickering effect when the
node is moved while the drag gesture on the node is active.

To avoid interfering with the drag handlers on the ports, check if the
GraphView drag gesture targets a port, in which case the handler does
nothing.
2021-05-10 18:21:00 +00:00
docs Merge Controller and View structs into one Application struct. 2021-05-08 18:06:52 +02:00
src When dragging a node, don't snap its top-left corner to the cursor 2021-05-10 18:21:00 +00:00
.gitignore Add .vscode folder to gitignore 2021-01-04 08:20:27 +01:00
.gitlab-ci.yml Update CI to Fedora 34 and Rust 1.51 2021-05-06 09:36:24 +02:00
Cargo.lock Release 0.2.0 2021-05-08 20:09:11 +02:00
Cargo.toml Release 0.2.0 2021-05-08 20:09:11 +02:00
LICENSE Update project name in LICENSE 2021-03-14 12:35:24 +01:00
README.md Update README.md planned features section 2021-05-08 18:13:51 +02:00
screenshot.png Update screenshot in README for colored ports 2021-02-10 19:36:10 +01:00

Helvum is a GTK-based patchbay for pipewire, inspired by the JACK tool catia.

Screenshot

Features planned

  • Volume control
  • "Debug mode" that lets you view advanced information for nodes and ports

More suggestions are welcome!

Distribution packages

Building

For compilation, you will need:

  • An up-to-date rust toolchain
  • libclang-3.7 or higher
  • gtk-4.0 and pipewire-0.3 development headers

To compile, run

$ cargo build --release

in the repository root. The resulting binary will be at target/release/helvum.