···11diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
22-index bc5ccfc4..c6d119bc 100644
22+index bc5f6a81..0fcd38d3 100644
33--- a/tools/yabridgectl/src/config.rs
44+++ b/tools/yabridgectl/src/config.rs
55@@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet};
···1010 use std::path::{Path, PathBuf};
1111 use which::which;
1212 use xdg::BaseDirectories;
1313-@@ -233,34 +234,24 @@ impl Config {
1313+@@ -235,34 +236,27 @@ impl Config {
1414 }
1515 }
1616 None => {
···2020- // in the error message when `libyabridge-vst2.so` can't be found.
2121- let system_path = Path::new("/usr/lib");
2222+ // Search through NIX_PROFILES & data home directory if no path was set explicitly.
2323++ // NIX_PROFILES is iterated in reverse from the most specific (the user profile) to
2424++ // the least specific (the system profile).
2325+ let nix_profiles = env::var("NIX_PROFILES");
2426 let user_path = xdg_dirs.get_data_home();
2527- let lib_directories = [
···3537- ];
3638+ let lib_directories = nix_profiles.iter()
3739+ .flat_map(|profiles| profiles.split(' ')
4040++ .rev()
3841+ .map(|profile| Path::new(profile).join("lib")))
3942+ .chain(iter::once(user_path.clone()));
4043+
···5659 ));
5760 }
5861diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
5959-index 8c273f92..432619ec 100644
6262+index 48cce4fa..209e40e4 100644
6063--- a/tools/yabridgectl/src/main.rs
6164+++ b/tools/yabridgectl/src/main.rs
6262-@@ -148,7 +148,7 @@ fn main() -> Result<()> {
6363- .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
6464- .long_about(
6565+@@ -151,7 +151,7 @@ fn main() -> Result<()> {
6666+ .help("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
6767+ .long_help(
6568 "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \
6669- is not set, then yabridgectl will look in both '/usr/lib' and \
6770+ is not set, then yabridgectl will look through 'NIX_PROFILES' and \