From d3e87c8893508fcda29044ce4c1d9d345a34ee7d Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 29 Apr 2026 08:49:26 -0700 Subject: [PATCH] hyprexpo: avoid eager config binding during init --- hyprexpo/main.cpp | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/hyprexpo/main.cpp b/hyprexpo/main.cpp index f203cce..e1402c6 100644 --- a/hyprexpo/main.cpp +++ b/hyprexpo/main.cpp @@ -173,6 +173,16 @@ static void failNotif(const std::string& reason) { HyprlandAPI::addNotification(PHANDLE, "[hyprexpo] Failure in initialization: " + reason, CHyprColor{1.0, 0.2, 0.2, 1.0}, 5000); } +static bool addConfigValue(SP value) { + const auto RET = Config::mgr()->registerPluginValue(PHANDLE, value); + if (!RET) { + Log::logger->log(Log::ERR, "[hyprexpo] failed to register plugin value \"{}\": {}", value->name(), RET.error()); + return false; + } + + return true; +} + static Hyprlang::CParseResult expoGestureKeyword(const char* LHS, const char* RHS) { Hyprlang::CParseResult result; @@ -309,14 +319,14 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) { HyprlandAPI::addConfigKeyword(PHANDLE, KEYWORD_EXPO_GESTURE, ::expoGestureKeyword, {true}); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:columns", "columns", 3)); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:gap_size", "gap size", 5)); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:bg_col", "background color", 0xFF111111)); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:workspace_method", "workspace method", "center current")); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:skip_empty", "skip empty workspaces", 0)); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:show_workspace_numbers", "show workspace numbers", 0)); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:workspace_number_color", "workspace number color", 0xFFFFFFFF)); - HyprlandAPI::addConfigValueV2(PHANDLE, makeShared("plugin:hyprexpo:gesture_distance", "gesture distance", 200)); + addConfigValue(makeShared("plugin:hyprexpo:columns", "columns", 3)); + addConfigValue(makeShared("plugin:hyprexpo:gap_size", "gap size", 5)); + addConfigValue(makeShared("plugin:hyprexpo:bg_col", "background color", 0xFF111111)); + addConfigValue(makeShared("plugin:hyprexpo:workspace_method", "workspace method", "center current")); + addConfigValue(makeShared("plugin:hyprexpo:skip_empty", "skip empty workspaces", 0)); + addConfigValue(makeShared("plugin:hyprexpo:show_workspace_numbers", "show workspace numbers", 0)); + addConfigValue(makeShared("plugin:hyprexpo:workspace_number_color", "workspace number color", 0xFFFFFFFF)); + addConfigValue(makeShared("plugin:hyprexpo:gesture_distance", "gesture distance", 200)); return {"hyprexpo", "A plugin for an overview", "Vaxry", "1.0"}; }