diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 5c592e36..3b361ece 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -1349,3 +1349,8 @@ void CConfigManager::ensureDPMS() { SAnimationPropertyConfig* CConfigManager::getAnimationPropertyConfig(const std::string& name) { return &animationConfig[name]; } + +void CConfigManager::addParseError(const std::string& err) { + if (parseError == "") + parseError = err; +} \ No newline at end of file diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index 18079356..4eef417f 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -100,6 +100,8 @@ public: std::string parseKeyword(const std::string&, const std::string&, bool dynamic = false); + void addParseError(const std::string&); + SAnimationPropertyConfig* getAnimationPropertyConfig(const std::string&); private: diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index e23962a1..e8f204b7 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -536,6 +536,8 @@ void CInputManager::applyConfigToKeyboard(SKeyboard* pKeyboard) { auto KEYMAP = xkb_keymap_new_from_names(CONTEXT, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS); if (!KEYMAP) { + g_pConfigManager->addParseError("Invalid keyboard layout passed. ( rules: " + RULES + ", model: " + MODEL + ", variant: " + VARIANT + ", options: " + OPTIONS + ", layout: " + LAYOUT + " )"); + Debug::log(ERR, "Keyboard layout %s with variant %s (rules: %s, model: %s, options: %s) couldn't have been loaded.", rules.layout, rules.variant, rules.rules, rules.model, rules.options); memset(&rules, 0, sizeof(rules));