diff options
author | Vaxry <[email protected]> | 2024-02-18 15:00:34 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2024-02-18 15:00:34 +0000 |
commit | 13f6f0b923ff3ec94a3bec886c28b90402ceef91 (patch) | |
tree | 251f66bfb86416fad0fab18f3b2b2ce87847aa83 /src/plugins | |
parent | 7e8bcd675de15ee2498f1aa15c5b335e9a9a55f0 (diff) | |
download | Hyprland-13f6f0b923ff3ec94a3bec886c28b90402ceef91.tar.gz Hyprland-13f6f0b923ff3ec94a3bec886c28b90402ceef91.zip |
Migrate the config to hyprlang (#4656)
* Migrate to hyprlang
* pop up errors
* fix swapped args
* Meson & Nix: build with hyprlang
* CI: add hyprlang to setup action
* add infra for plugin stuff
* fix hyprctl getoption
* fix hyprctl getoption with json
* format
* fix post parse logic
* fix autogen config
* oops missed exec-once
* fmt
* fix ws rules
* require 0.3.0 for hyprlang
* nix: flaek
* minor type fixes
* fix cfg usages in swipe
* use cvarlist for ws rules
* fix throw in addPluginConfigVar
* Nix: update hyprlang
* minor fixes
* fix disableLogs
* mention hyprlang docs
* bump hyprlang dep in cmake
* Meson: bump min hyprlang version
Nix: update hyprlang
* minor fix
* Nix: update meson patch
---------
Co-authored-by: Mihai Fufezan <[email protected]>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/PluginAPI.cpp | 13 | ||||
-rw-r--r-- | src/plugins/PluginAPI.hpp | 8 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/plugins/PluginAPI.cpp b/src/plugins/PluginAPI.cpp index b6a353ea..b6326960 100644 --- a/src/plugins/PluginAPI.cpp +++ b/src/plugins/PluginAPI.cpp @@ -147,7 +147,7 @@ APICALL bool HyprlandAPI::removeWindowDecoration(HANDLE handle, IHyprWindowDecor return false; } -APICALL bool HyprlandAPI::addConfigValue(HANDLE handle, const std::string& name, const SConfigValue& value) { +APICALL bool HyprlandAPI::addConfigValue(HANDLE handle, const std::string& name, const Hyprlang::CConfigValue& value) { auto* const PLUGIN = g_pPluginSystem->getPluginByHandle(handle); if (!g_pPluginSystem->m_bAllowConfigVars) @@ -163,7 +163,7 @@ APICALL bool HyprlandAPI::addConfigValue(HANDLE handle, const std::string& name, return true; } -APICALL bool HyprlandAPI::addConfigKeyword(HANDLE handle, const std::string& name, std::function<void(const std::string& key, const std::string& val)> fn) { +APICALL bool HyprlandAPI::addConfigKeyword(HANDLE handle, const std::string& name, Hyprlang::PCONFIGHANDLERFUNC fn, Hyprlang::SHandlerOptions opts) { auto* const PLUGIN = g_pPluginSystem->getPluginByHandle(handle); if (!g_pPluginSystem->m_bAllowConfigVars) @@ -172,17 +172,20 @@ APICALL bool HyprlandAPI::addConfigKeyword(HANDLE handle, const std::string& nam if (!PLUGIN) return false; - g_pConfigManager->addPluginKeyword(handle, name, fn); + g_pConfigManager->addPluginKeyword(handle, name, fn, opts); return true; } -APICALL SConfigValue* HyprlandAPI::getConfigValue(HANDLE handle, const std::string& name) { +APICALL Hyprlang::CConfigValue* HyprlandAPI::getConfigValue(HANDLE handle, const std::string& name) { auto* const PLUGIN = g_pPluginSystem->getPluginByHandle(handle); if (!PLUGIN) return nullptr; - return g_pConfigManager->getConfigValuePtrSafe(name); + if (name.starts_with("plugin:")) + return g_pConfigManager->getHyprlangConfigValuePtr(name.substr(7), "plugin"); + + return g_pConfigManager->getHyprlangConfigValuePtr(name); } APICALL void* HyprlandAPI::getFunctionAddressFromSignature(HANDLE handle, const std::string& sig) { diff --git a/src/plugins/PluginAPI.hpp b/src/plugins/PluginAPI.hpp index e7a6c899..a7a998b4 100644 --- a/src/plugins/PluginAPI.hpp +++ b/src/plugins/PluginAPI.hpp @@ -112,7 +112,7 @@ namespace HyprlandAPI { returns: true on success, false on fail */ - APICALL bool addConfigValue(HANDLE handle, const std::string& name, const SConfigValue& value); + APICALL bool addConfigValue(HANDLE handle, const std::string& name, const Hyprlang::CConfigValue& value); /* Add a config keyword. @@ -120,15 +120,17 @@ namespace HyprlandAPI { returns: true on success, false on fail */ - APICALL bool addConfigKeyword(HANDLE handle, const std::string& name, std::function<void(const std::string& key, const std::string& val)> fn); + APICALL bool addConfigKeyword(HANDLE handle, const std::string& name, Hyprlang::PCONFIGHANDLERFUNC fn, Hyprlang::SHandlerOptions opts); /* Get a config value. + Please see the <hyprlang.hpp> header or https://hyprland.org/hyprlang/ for docs regarding Hyprlang types. + returns: a pointer to the config value struct, which is guaranteed to be valid for the life of this plugin, unless another `addConfigValue` is called afterwards. nullptr on error. */ - APICALL SConfigValue* getConfigValue(HANDLE handle, const std::string& name); + APICALL Hyprlang::CConfigValue* getConfigValue(HANDLE handle, const std::string& name); /* Register a static (pointer) callback to a selected event. |