1diff --git a/src/dbus.cpp b/src/dbus.cpp
2index 7379af1..4eef3fe 100644
3--- a/src/dbus.cpp
4+++ b/src/dbus.cpp
5@@ -152,7 +152,7 @@ bool dbus_manager::get_media_player_metadata(metadata& meta, std::string name) {
6 }
7
8 bool dbus_manager::init_internal() {
9- if (!m_dbus_ldr.IsLoaded() && !m_dbus_ldr.Load("libdbus-1.so.3")) {
10+ if (!m_dbus_ldr.IsLoaded() && !m_dbus_ldr.Load("@libdbus@/lib/libdbus-1.so.3")) {
11 SPDLOG_ERROR("Could not load libdbus-1.so.3");
12 return false;
13 }
14diff --git a/src/loaders/loader_glx.cpp b/src/loaders/loader_glx.cpp
15index aa453b8..0f6479d 100644
16--- a/src/loaders/loader_glx.cpp
17+++ b/src/loaders/loader_glx.cpp
18@@ -23,7 +23,7 @@ bool glx_loader::Load() {
19 handle = real_dlopen("glxtrace.so", RTLD_LAZY);
20 #endif
21 if (!handle)
22- handle = real_dlopen("libGL.so.1", RTLD_LAZY);
23+ handle = real_dlopen("@libGL@/lib/libGL.so.1", RTLD_LAZY);
24 if (!handle) {
25 SPDLOG_ERROR("Failed to open " MANGOHUD_ARCH " libGL.so.1: {}", dlerror());
26 return false;
27diff --git a/src/loaders/loader_x11.cpp b/src/loaders/loader_x11.cpp
28index 214fd50..2f08857 100644
29--- a/src/loaders/loader_x11.cpp
30+++ b/src/loaders/loader_x11.cpp
31@@ -110,6 +110,6 @@ static std::shared_ptr<libx11_loader> loader;
32 std::shared_ptr<libx11_loader> get_libx11()
33 {
34 if (!loader)
35- loader = std::make_shared<libx11_loader>("libX11.so.6");
36+ loader = std::make_shared<libx11_loader>("@libX11@/lib/libX11.so.6");
37 return loader;
38 }
39diff --git a/src/logging.cpp b/src/logging.cpp
40index 4ef7023..e24f6da 100644
41--- a/src/logging.cpp
42+++ b/src/logging.cpp
43@@ -28,8 +28,12 @@ string exec(string command) {
44 #endif
45 std::array<char, 128> buffer;
46 std::string result;
47+
48+ char* originalPath = getenv("PATH");
49+ setenv("PATH", "@path@", 1);
50 auto deleter = [](FILE* ptr){ pclose(ptr); };
51 std::unique_ptr<FILE, decltype(deleter)> pipe(popen(command.c_str(), "r"), deleter);
52+ setenv("PATH", originalPath, 1);
53 if (!pipe) {
54 return "popen failed!";
55 }
56diff --git a/src/pci_ids.cpp b/src/pci_ids.cpp
57index 002a843..5a6262b 100644
58--- a/src/pci_ids.cpp
59+++ b/src/pci_ids.cpp
60@@ -24,11 +24,9 @@ static std::istream& get_uncommented_line(std::istream& is, std::string &line)
61 void parse_pciids()
62 {
63 std::ifstream file;
64- file.open("/usr/share/hwdata/pci.ids");
65+ file.open("@hwdata@/share/hwdata/pci.ids");
66 if (file.fail()){
67- file.open("/usr/share/misc/pci.ids");
68- if (file.fail())
69- SPDLOG_ERROR("can't find file pci.ids");
70+ SPDLOG_ERROR("can't find file pci.ids");
71 }
72
73 std::string line;