From 636e3eab96e4403a64d9866911d7c87a54fcb6b8 Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Mon, 14 Oct 2024 16:36:02 +0100 Subject: [PATCH] feat: Respect XDG_CONFIG_HOME in server/client --- src/lib/arch/unix/ArchFileUnix.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib/arch/unix/ArchFileUnix.cpp b/src/lib/arch/unix/ArchFileUnix.cpp index 2986d93bd..1363ce8ba 100644 --- a/src/lib/arch/unix/ArchFileUnix.cpp +++ b/src/lib/arch/unix/ArchFileUnix.cpp @@ -19,6 +19,7 @@ #include "arch/unix/ArchFileUnix.h" #include +#include #include #include #include @@ -100,17 +101,21 @@ std::string ArchFileUnix::getPluginDirectory() { } std::string ArchFileUnix::getProfileDirectory() { - String dir; if (!m_profileDirectory.empty()) { - dir = m_profileDirectory; + return m_profileDirectory; } else { + const std::filesystem::path homeDir = getUserDirectory(); #if WINAPI_XWINDOWS - dir = getUserDirectory().append("/.config/" DESKFLOW_APP_NAME); + const auto xdgDir = std::getenv("XDG_CONFIG_HOME"); + if (xdgDir != nullptr) { + return std::filesystem::path(xdgDir) / DESKFLOW_APP_NAME; + } else { + return homeDir / ".config" / DESKFLOW_APP_NAME; + } #else - dir = getUserDirectory().append("/Library/" DESKFLOW_APP_NAME); + return homeDir / "Library" / DESKFLOW_APP_NAME; #endif } - return dir; } std::string