diff --git a/src/VirtualDeskManager.cpp b/src/VirtualDeskManager.cpp index 331bdba..16ae9df 100644 --- a/src/VirtualDeskManager.cpp +++ b/src/VirtualDeskManager.cpp @@ -176,14 +176,14 @@ void VirtualDeskManager::loadLayoutConf() { // Maybe in a future release :) if (confLoaded) return; - static auto* const PREMEMBER_LAYOUT = &HyprlandAPI::getConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF)->strValue; + static auto* const PREMEMBER_LAYOUT = (Hyprlang::STRING const*)HyprlandAPI::getConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF)->getDataStaticPtr(); conf = layoutConfFromString(*PREMEMBER_LAYOUT); confLoaded = true; } void VirtualDeskManager::cycleWorkspaces() { - static auto* const PCYCLEWORKSPACES = &HyprlandAPI::getConfigValue(PHANDLE, CYCLEWORKSPACES_CONF)->intValue; - if (!*PCYCLEWORKSPACES) + static auto* const PCYCLEWORKSPACES = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, CYCLEWORKSPACES_CONF)->getDataStaticPtr(); + if (!**PCYCLEWORKSPACES) return; auto n_monitors = g_pCompositor->m_vMonitors.size(); diff --git a/src/main.cpp b/src/main.cpp index abc5489..69f7aad 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,12 +26,12 @@ bool needsReloading = false; bool monitorLayoutChanging = false; inline CFunctionHook* g_pMonitorDestroy = nullptr; -typedef void (*origMonitorDestroy)(void*, void*); +typedef void (*origMonitorDestroy)(void*, void*); -inline CFunctionHook* g_pMonitorAdded = nullptr; -typedef void (*origMonitorAdded)(void*, void*); +inline CFunctionHook* g_pMonitorAdded = nullptr; +typedef void (*origMonitorAdded)(void*, void*); -void parseNamesConf(std::string& conf) { +void parseNamesConf(std::string& conf) { size_t pos; size_t delim; std::string rule; @@ -131,8 +131,9 @@ void printVdesk(std::string name) { } void printVDeskDispatch(std::string arg) { - static auto* const PVDESKNAMES = &HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF)->strValue; - parseNamesConf(*PVDESKNAMES); + std::string vdesknamesConf = std::any_cast(HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF)); + + parseNamesConf(vdesknamesConf); if (arg.length() == 0) { printVdesk(manager->activeVdesk()->id); @@ -217,13 +218,16 @@ void onRender(void*, SCallbackInfo&, std::any val) { } void onConfigReloaded(void*, SCallbackInfo&, std::any val) { - static auto* const PNOTIFYINIT = &HyprlandAPI::getConfigValue(PHANDLE, NOTIFY_INIT)->intValue; - if (*PNOTIFYINIT && !notifiedInit) { + static auto* const PNOTIFYINIT = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, NOTIFY_INIT)->getDataStaticPtr(); + printLog("aiuto"); + if (**PNOTIFYINIT && !notifiedInit) { HyprlandAPI::addNotification(PHANDLE, "Virtual desk Initialized successfully!", CColor{0.f, 1.f, 1.f, 1.f}, 5000); notifiedInit = true; } - static auto* const PVDESKNAMES = &HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF)->strValue; - parseNamesConf(*PVDESKNAMES); + printLog("aiuto2"); + static auto* const PVDESKNAMESCONF = (Hyprlang::STRING const*)(HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF))->getDataStaticPtr(); + auto vdeskNamesConf = std::string{*PVDESKNAMESCONF}; + parseNamesConf(vdeskNamesConf); manager->loadLayoutConf(); } @@ -257,11 +261,11 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) { HyprlandAPI::addDispatcher(PHANDLE, PRINTLAYOUT_DISPATCH_STR, printLayoutDispatch); // Configs - HyprlandAPI::addConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF, SConfigValue{.strValue = "unset"}); - HyprlandAPI::addConfigValue(PHANDLE, CYCLEWORKSPACES_CONF, SConfigValue{.intValue = 1}); - HyprlandAPI::addConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF, SConfigValue{.strValue = REMEMBER_SIZE}); - HyprlandAPI::addConfigValue(PHANDLE, NOTIFY_INIT, SConfigValue{.intValue = 1}); - HyprlandAPI::addConfigValue(PHANDLE, VERBOSE_LOGS, SConfigValue{.intValue = 0}); + HyprlandAPI::addConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF, Hyprlang::STRING{"unset"}); + HyprlandAPI::addConfigValue(PHANDLE, CYCLEWORKSPACES_CONF, Hyprlang::INT{1}); + HyprlandAPI::addConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF, Hyprlang::STRING{REMEMBER_SIZE.c_str()}); + HyprlandAPI::addConfigValue(PHANDLE, NOTIFY_INIT, Hyprlang::INT{1}); + HyprlandAPI::addConfigValue(PHANDLE, VERBOSE_LOGS, Hyprlang::INT{0}); onWorkspaceChangeHook = HyprlandAPI::registerCallbackDynamic(PHANDLE, "workspace", onWorkspaceChange); onConfigReloadedHook = HyprlandAPI::registerCallbackDynamic(PHANDLE, "configReloaded", onConfigReloaded); @@ -271,5 +275,5 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) { // Initialize first vdesk HyprlandAPI::reloadConfig(); - return {"virtual-desktops", "Virtual desktop like workspaces", "LevMyskin", "2.1.0"}; + return {"virtual-desktops", "Virtual desktop like workspaces", "LevMyskin", "2.1.1"}; } diff --git a/src/utils.cpp b/src/utils.cpp index 5b693bb..2064b75 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -51,8 +51,8 @@ RememberLayoutConf layoutConfFromString(const std::string& conf) { } bool isVerbose() { - static auto* const PVERBOSELOGS = &HyprlandAPI::getConfigValue(PHANDLE, VERBOSE_LOGS)->intValue; - return *PVERBOSELOGS; + static auto* const PVERBOSELOGS = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, VERBOSE_LOGS)->getDataStaticPtr(); + return **PVERBOSELOGS; } std::vector> currentlyEnabledMonitors(const CMonitor* exclude) {