diff --git a/CHANGELOG.md b/CHANGELOG.md index 56cf2b64..b25bcdb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - `custom/script`: Output clearing when `exec-if` fails ([`#2674`](https://github.com/polybar/polybar/issues/2674)) - `internal/battery`: `poll-interval` not working ([`#2649`](https://github.com/polybar/polybar/issues/2649), [`#2677`](https://github.com/polybar/polybar/pull/2677)) +- ipc: Polybar failing to open IPC channel after another user already ran polybar, if `XDG_RUNTIME_DIR` is not set ([`#2683`](https://github.com/polybar/polybar/issues/2683), [`#2684`](https://github.com/polybar/polybar/pull/2684)) ## [3.6.2] - 2022-04-03 ### Fixed diff --git a/include/ipc/ipc.hpp b/include/ipc/ipc.hpp index 0ba8af1b..7e2e0068 100644 --- a/include/ipc/ipc.hpp +++ b/include/ipc/ipc.hpp @@ -1,7 +1,5 @@ #pragma once -#include - #include #include "common.hpp" @@ -94,6 +92,6 @@ namespace ipc { void receive_data(string buf); void receive_eof(); }; -} // namespace ipc +} // namespace ipc POLYBAR_NS_END diff --git a/src/components/controller.cpp b/src/components/controller.cpp index ec856766..77681e1c 100644 --- a/src/components/controller.cpp +++ b/src/components/controller.cpp @@ -1,7 +1,5 @@ #include "components/controller.hpp" -#include - #include #include diff --git a/src/ipc/util.cpp b/src/ipc/util.cpp index b93cd36e..0a1d2315 100644 --- a/src/ipc/util.cpp +++ b/src/ipc/util.cpp @@ -1,6 +1,7 @@ #include "ipc/util.hpp" #include +#include #include "errors.hpp" #include "utils/env.hpp" @@ -12,8 +13,14 @@ POLYBAR_NS namespace ipc { static constexpr auto SUFFIX = ".sock"; + static constexpr auto XDG_RUNTIME_DIR = "XDG_RUNTIME_DIR"; string get_runtime_path() { + if (env_util::has(XDG_RUNTIME_DIR)) { + return env_util::get("XDG_RUNTIME_DIR") + "/polybar"; + } else { + return "/tmp/polybar-" + to_string(getuid()); + } return env_util::get("XDG_RUNTIME_DIR", "/tmp") + "/polybar"; } @@ -59,6 +66,6 @@ namespace ipc { return -1; } } -} // namespace ipc +} // namespace ipc POLYBAR_NS_END