diff --git a/hyprpm/src/core/PluginManager.cpp b/hyprpm/src/core/PluginManager.cpp
index 6621a49f..3d260e82 100644
--- a/hyprpm/src/core/PluginManager.cpp
+++ b/hyprpm/src/core/PluginManager.cpp
@@ -559,10 +572,42 @@ bool CPluginManager::updateHeaders(bool force) {
     if (m_bVerbose)
         progress.printMessageAbove(verboseString("setting PREFIX for cmake to {}", DataState::getHeadersPath()));
 
+#if defined(HYPRPM_GENTOO_LUA_PCFILE)
+    const auto wrapperDir =
+        DataState::getHeadersPath() + "/gentoo-lua/pkgconfig";
+
+    auto wrapper_cmd = "mkdir -p " + wrapperDir;
+
+    if (m_bVerbose)
+        std::println("\n{} will run as sudo.", wrapper_cmd);
+
+    ret = NSys::root::runAsSuperuserUnsafe(wrapper_cmd);
+
+    if (m_bVerbose)
+        std::println("\n{}", ret);
+
+    const std::string target = HYPRPM_GENTOO_LUA_PCFILE;
+
+    wrapper_cmd = std::format("ln -svf {} {}/lua.pc", target, wrapperDir);
+
+    if (m_bVerbose)
+        std::println("\n{} will run as sudo.", wrapper_cmd);
+
+    ret = NSys::root::runAsSuperuserUnsafe(wrapper_cmd);
+
+    if (m_bVerbose)
+        std::println("\n{}", ret);
+
+    const auto CONFIGURE_CMD =
+        nixDevelopIfNeeded(std::format("cd {} && PKG_CONFIG_PATH=\"{}:$PKG_CONFIG_PATH\" cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:STRING=\"{}\" -S . -B ./build", WORKINGDIR, wrapperDir,
+                                       DataState::getHeadersPath()),
+                           HLVER);
+#else
     const auto CONFIGURE_CMD =
         nixDevelopIfNeeded(std::format("cd {} && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:STRING=\"{}\" -S . -B ./build", WORKINGDIR,
                                        DataState::getHeadersPath()),
                            HLVER);
+#endif
 
     if (!CONFIGURE_CMD) {
         std::println(stderr, "\n{}", failureString("Could not configure hyprland: {}", CONFIGURE_CMD.error()));
@@ -1036,7 +1092,15 @@ bool CPluginManager::hasDeps() {
 }
 
 const std::string& CPluginManager::getPkgConfigPath() {
+#if defined(HYPRPM_GENTOO_LUA_PCFILE)
+    static const auto str = std::format(
+        "{}/gentoo-lua/pkgconfig:{}/share/pkgconfig:$PKG_CONFIG_PATH",
+        DataState::getHeadersPath(),
+        DataState::getHeadersPath()
+    );
+#else
     static const auto str = std::format("{}/share/pkgconfig:$PKG_CONFIG_PATH", DataState::getHeadersPath());
+#endif
     return str;
 }
 
