diff --git a/Cargo.toml b/Cargo.toml index 4dc0b6d..c84db66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/README.md b/README.md index e1a4fa0..46564de 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/meson.build b/meson.build index a38c8e6..32e6cc4 100644 --- a/meson.build +++ b/meson.build @@ -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) diff --git a/src/ui/graph/graph_view.rs b/src/ui/graph/graph_view.rs index 3ee98d1..ada65b3 100644 --- a/src/ui/graph/graph_view.rs +++ b/src/ui/graph/graph_view.rs @@ -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() {