summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 78543609..5037d9cb 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -1051,6 +1051,15 @@ void CConfigManager::handleEnv(const std::string& command, const std::string& va
}
setenv(ARGS[0].c_str(), ARGS[1].c_str(), 1);
+
+ if (command.back() == 'd') {
+ // dbus
+ const auto CMD = "systemctl --user import-environment " + ARGS[0] +
+ " && hash dbus-update-activation-environment 2>/dev/null && "
+ "dbus-update-activation-environment --systemd " +
+ ARGS[0];
+ handleRawExec("", CMD.c_str());
+ }
}
std::string CConfigManager::parseKeyword(const std::string& COMMAND, const std::string& VALUE, bool dynamic) {
@@ -1097,7 +1106,7 @@ std::string CConfigManager::parseKeyword(const std::string& COMMAND, const std::
handleBlurLS(COMMAND, VALUE);
else if (COMMAND == "wsbind")
handleBindWS(COMMAND, VALUE);
- else if (COMMAND == "env")
+ else if (COMMAND.find("env") == 0)
handleEnv(COMMAND, VALUE);
else {
configSetValueSafe(currentCategory + (currentCategory == "" ? "" : ":") + COMMAND, VALUE);