Relax deps for older distros & node links respect highlighted nodes

This commit is contained in:
Naveen Prashanth 2026-05-09 10:38:17 +05:30
parent e2d1202b14
commit bcee8b2fc5
4 changed files with 40 additions and 16 deletions

View file

@ -17,8 +17,8 @@ categories = ["gui", "multimedia"]
pipewire = "0.9.2"
libspa = "0.9.2"
async-channel = "2.5.0"
adw = { version = "0.9.1", package = "libadwaita", features = ["v1_9", "gtk_v4_22"] }
glib = { version = "0.22.7", features = ["log", "v2_88"] }
adw = { version = "0.9.1", package = "libadwaita", features = ["v1_7", "gtk_v4_18"] }
glib = { version = "0.22.7", features = ["log", "v2_84"] }
gtk4 = { version = "0.11.3", features = ["v4_14"] }
log = "0.4.29"

View file

@ -43,14 +43,23 @@ $ flatpak run org.pipewire.Helvum
## Manually
For compilation, you will need:
- **Meson** (>= 1.9.0)
- **Rust Toolchain** (>= 1.94.0)
- **Clang/LLVM** (required for `bindgen` to generate PipeWire bindings)
- **GTK4** (>= 4.22.0) development packages
- **libadwaita-1** (>= 1.9.0) development packages
- **libpipewire-0.3** (>= 1.6.0) development packages and their dependencies
### Distribution-specific dependencies
| Distribution | Required Packages | Environment Variables |
| :--- | :--- | :--- |
| **Arch Linux** | `meson`, `rust`, `clang`, `gtk4`, `libadwaita`, `pipewire` | `LIBCLANG_PATH=/usr/lib` |
| **Fedora** | `meson`, `rust`, `cargo`, `clang-devel`, `gtk4-devel`, `libadwaita-devel`, `pipewire-devel` | `LIBCLANG_PATH=/usr/lib64` |
| **OpenSUSE** | `meson`, `rust`, `cargo`, `clang-devel`, `gtk4-devel`, `libadwaita-devel`, `pipewire-devel` | `LIBCLANG_PATH=/usr/lib64` |
| **Debian/Ubuntu** | `meson`, `rustc`, `cargo`, `libclang-dev`, `libgtk-4-dev`, `libadwaita-1-dev`, `libpipewire-0.3-dev` | `LIBCLANG_PATH=/usr/lib/llvm-21/lib` (path may vary by LLVM version) |
| **Alpine** | `meson`, `rust`, `cargo`, `clang-dev`, `clang-libclang`, `gtk4.0-dev`, `libadwaita-dev`, `pipewire-dev` | `LIBCLANG_PATH=/usr/lib` |
To compile and install, run
```shell

View file

@ -3,7 +3,7 @@ project(
'rust',
version: '0.6.1',
license: 'GPL-3.0',
meson_version: '>=1.9.0',
meson_version: '>=1.8.0',
default_options: [
'warning_level=2',
'buildtype=debugoptimized',
@ -14,10 +14,10 @@ gnome = import('gnome')
base_id = 'org.pipewire.Helvum'
dependency('glib-2.0', version: '>= 2.88.0')
dependency('gtk4', version: '>= 4.22.0')
dependency('libadwaita-1', version: '>= 1.9.0')
dependency('libpipewire-0.3', version: '>= 1.6.0')
dependency('glib-2.0', version: '>= 2.84.0')
dependency('gtk4', version: '>= 4.18.0')
dependency('libadwaita-1', version: '>= 1.7.0')
dependency('libpipewire-0.3', version: '>= 1.4.0')
desktop_file_validate = find_program('desktop-file-validate', required: false)
appstream_util = find_program('appstream-util', required: false)

View file

@ -706,6 +706,8 @@ mod imp {
};
let graph = self.graph.borrow();
let highlighted_edges = self.highlighted_edges.borrow();
let is_any_highlighted = !self.highlighted_nodes.borrow().is_empty();
for edge in graph.edge_references() {
let link = edge.weight();
@ -741,13 +743,26 @@ mod imp {
continue;
};
self.draw_link(
snapshot,
&output_anchor,
&input_anchor,
link.active(),
color,
);
let is_highlighted = !is_any_highlighted || highlighted_edges.contains(&edge.id());
if is_highlighted {
self.draw_link(
snapshot,
&output_anchor,
&input_anchor,
link.active(),
color,
);
} else {
snapshot.push_opacity(0.3);
self.draw_link(
snapshot,
&output_anchor,
&input_anchor,
link.active(),
color,
);
snapshot.pop();
}
}
if let Some(port) = self.dragged_port.upgrade() {