From 0cb605b529ddbeb8022e1d953e0c9d185319dee2 Mon Sep 17 00:00:00 2001 From: bilaliscarioth Date: Tue, 8 Jul 2025 02:13:33 +0200 Subject: [PATCH 1/4] start openbsd ports --- src/config.cpp | 17 +++++++++++++++++ src/modules/cpu_frequency/bsd.cpp | 8 ++++++++ src/modules/user.cpp | 8 +++++++- src/modules/wayfire/workspaces.cpp | 12 ++++++------ src/util/css_reload_helper.cpp | 6 ++++++ 5 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index 7096ba89..f7c84192 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -2,7 +2,11 @@ #include #include +#ifndef __OpenBSD__ #include +#else +#include +#endif #include #include @@ -34,6 +38,7 @@ std::vector Config::tryExpandPath(const std::string &base, spdlog::debug("Try expanding: {}", path.string()); std::vector results; +#ifndef __OpenBSD__ wordexp_t p; if (wordexp(path.c_str(), &p, 0) == 0) { for (size_t i = 0; i < p.we_wordc; i++) { @@ -44,6 +49,18 @@ std::vector Config::tryExpandPath(const std::string &base, } wordfree(&p); } +#else + glob_t p; + if (glob(path.c_str(), 0, NULL, &p) == 0) { + for (size_t i = 0; i < p.gl_pathc; i++) { + if (access(p.gl_pathv[i], F_OK) == 0) { + results.emplace_back(p.gl_pathv[i]); + spdlog::debug("Found config file: {}", p.gl_pathv[i]); + } + } + globfree(&p); + } +#endif return results; } diff --git a/src/modules/cpu_frequency/bsd.cpp b/src/modules/cpu_frequency/bsd.cpp index 743fb288..97074474 100644 --- a/src/modules/cpu_frequency/bsd.cpp +++ b/src/modules/cpu_frequency/bsd.cpp @@ -10,6 +10,7 @@ std::vector waybar::modules::CpuFrequency::parseCpuFrequencies() { int32_t freq; uint32_t i = 0; +#ifndef __OpenBSD__ while (true) { len = 4; snprintf(buffer, 256, "dev.cpu.%u.freq", i); @@ -17,6 +18,13 @@ std::vector waybar::modules::CpuFrequency::parseCpuFrequencies() { frequencies.push_back(freq); ++i; } +#else + size_t sz; + int psize, cpuspeed, getMhz[] = {CTL_HW, HW_CPUSPEED}; + sz = sizeof(cpuspeed); + sysctl(getMhz, 2, &cpuspeed, &sz, NULL, 0); + frequencies.push_back((float)cpuspeed); +#endif if (frequencies.empty()) { spdlog::warn("cpu/bsd: parseCpuFrequencies failed, not found in sysctl"); diff --git a/src/modules/user.cpp b/src/modules/user.cpp index 418fc585..3ca5e431 100644 --- a/src/modules/user.cpp +++ b/src/modules/user.cpp @@ -62,7 +62,13 @@ long User::uptime_as_seconds() { #if HAVE_CPU_BSD struct timespec s_info; - if (0 == clock_gettime(CLOCK_UPTIME_PRECISE, &s_info)) { + int flags = 0; +#ifndef __OpenBSD__ + flags = CLOCK_UPTIME_PRECISE; +#else + flags = CLOCK_UPTIME; +#endif + if (0 == clock_gettime(flags, &s_info)) { uptime = s_info.tv_sec; } #endif diff --git a/src/modules/wayfire/workspaces.cpp b/src/modules/wayfire/workspaces.cpp index 6814004e..4c4cd6c1 100644 --- a/src/modules/wayfire/workspaces.cpp +++ b/src/modules/wayfire/workspaces.cpp @@ -74,9 +74,9 @@ auto Workspaces::handleScroll(GdkEventScroll* e) -> bool { const auto& wset = ipc->get_wsets().at(output.wset_idx); auto n = wset.ws_w * wset.ws_h; auto i = (wset.ws_idx() + delta + n) % n; - data["x"] = i % wset.ws_w; - data["y"] = i / wset.ws_h; - data["output-id"] = output.id; + data["x"] = Json::Value((uint64_t)i % wset.ws_w); + data["y"] = Json::Value((uint64_t)i / wset.ws_h); + data["output-id"] = Json::Value((uint64_t)output.id); } ipc->send("vswitch/set-workspace", std::move(data)); @@ -108,9 +108,9 @@ auto Workspaces::update_box() -> void { if (!config_["disable-click"].asBool()) { btn.signal_pressed().connect([=, this] { Json::Value data; - data["x"] = i % ws_w; - data["y"] = i / ws_h; - data["output-id"] = output.id; + data["x"] = Json::Value((uint64_t)i % ws_w); + data["y"] = Json::Value((uint64_t)i / ws_h); + data["output-id"] = Json::Value((uint64_t)output.id); ipc->send("vswitch/set-workspace", std::move(data)); }); } diff --git a/src/util/css_reload_helper.cpp b/src/util/css_reload_helper.cpp index 274bdeed..3a530f61 100644 --- a/src/util/css_reload_helper.cpp +++ b/src/util/css_reload_helper.cpp @@ -2,7 +2,13 @@ #include #include +#ifndef __OpenBSD__ #include +#else +#include +#include +#include +#endif #include #include From d808c00324618c35de30335ca6fd215f6d81860f Mon Sep 17 00:00:00 2001 From: bilaliscarioth Date: Tue, 8 Jul 2025 02:21:48 +0200 Subject: [PATCH 2/4] avoid useless vars on cpu_frequency, mimic sigrtmin/sigrtmax --- include/util/SafeSignal.hpp | 5 +++++ src/modules/cpu_frequency/bsd.cpp | 13 ++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/util/SafeSignal.hpp b/include/util/SafeSignal.hpp index 458bc57e..e19542f7 100644 --- a/include/util/SafeSignal.hpp +++ b/include/util/SafeSignal.hpp @@ -11,6 +11,11 @@ #include #include +#ifdef __OpenBSD__ +#define SIGRTMIN SIGUSR1-1 +#define SIGRTMAX SIGUSR1+1 +#endif + namespace waybar { /** diff --git a/src/modules/cpu_frequency/bsd.cpp b/src/modules/cpu_frequency/bsd.cpp index 97074474..eb5ae98a 100644 --- a/src/modules/cpu_frequency/bsd.cpp +++ b/src/modules/cpu_frequency/bsd.cpp @@ -5,12 +5,12 @@ std::vector waybar::modules::CpuFrequency::parseCpuFrequencies() { std::vector frequencies; - char buffer[256]; size_t len; int32_t freq; - uint32_t i = 0; #ifndef __OpenBSD__ + char buffer[256]; + uint32_t i = 0; while (true) { len = 4; snprintf(buffer, 256, "dev.cpu.%u.freq", i); @@ -19,11 +19,10 @@ std::vector waybar::modules::CpuFrequency::parseCpuFrequencies() { ++i; } #else - size_t sz; - int psize, cpuspeed, getMhz[] = {CTL_HW, HW_CPUSPEED}; - sz = sizeof(cpuspeed); - sysctl(getMhz, 2, &cpuspeed, &sz, NULL, 0); - frequencies.push_back((float)cpuspeed); + int getMhz[] = {CTL_HW, HW_CPUSPEED}; + len = sizeof(freq); + sysctl(getMhz, 2, &freq, &len, NULL, 0); + frequencies.push_back((float)freq); #endif if (frequencies.empty()) { From f91889ce1cb0805e9474910754f81a183a49677d Mon Sep 17 00:00:00 2001 From: bilaliscarioth <98892516+bilaliscarioth@users.noreply.github.com> Date: Sun, 13 Jul 2025 14:01:59 +0200 Subject: [PATCH 3/4] format SafeSignal.hpp as the linters want --- include/util/SafeSignal.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/util/SafeSignal.hpp b/include/util/SafeSignal.hpp index e19542f7..340f74ee 100644 --- a/include/util/SafeSignal.hpp +++ b/include/util/SafeSignal.hpp @@ -12,8 +12,8 @@ #include #ifdef __OpenBSD__ -#define SIGRTMIN SIGUSR1-1 -#define SIGRTMAX SIGUSR1+1 +#define SIGRTMIN SIGUSR1 - 1 +#define SIGRTMAX SIGUSR1 + 1 #endif namespace waybar { From 682fc34c1d59113b30a54c9d937da2b79a699d63 Mon Sep 17 00:00:00 2001 From: bilaliscarioth <98892516+bilaliscarioth@users.noreply.github.com> Date: Sun, 13 Jul 2025 14:03:09 +0200 Subject: [PATCH 4/4] fix linters for css_reload_helper.cpp --- src/util/css_reload_helper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/css_reload_helper.cpp b/src/util/css_reload_helper.cpp index 3a530f61..06381d60 100644 --- a/src/util/css_reload_helper.cpp +++ b/src/util/css_reload_helper.cpp @@ -5,9 +5,9 @@ #ifndef __OpenBSD__ #include #else -#include #include #include +#include #endif #include