mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-17 05:06:00 +01:00
parent
0a211f29f5
commit
00c8626863
3 changed files with 14 additions and 0 deletions
|
@ -1627,6 +1627,14 @@ std::string getDescriptions(eHyprCtlOutputFormat format, std::string request) {
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string submapRequest(eHyprCtlOutputFormat format, std::string request) {
|
||||||
|
std::string submap = g_pKeybindManager->getCurrentSubmap();
|
||||||
|
if (submap.empty())
|
||||||
|
submap = "default";
|
||||||
|
|
||||||
|
return format == FORMAT_JSON ? std::format("{{\"{}\"}}\n", escapeJSONStrings(submap)) : (submap + "\n");
|
||||||
|
}
|
||||||
|
|
||||||
CHyprCtl::CHyprCtl() {
|
CHyprCtl::CHyprCtl() {
|
||||||
registerCommand(SHyprCtlCommand{"workspaces", true, workspacesRequest});
|
registerCommand(SHyprCtlCommand{"workspaces", true, workspacesRequest});
|
||||||
registerCommand(SHyprCtlCommand{"workspacerules", true, workspaceRulesRequest});
|
registerCommand(SHyprCtlCommand{"workspacerules", true, workspaceRulesRequest});
|
||||||
|
@ -1648,6 +1656,7 @@ CHyprCtl::CHyprCtl() {
|
||||||
registerCommand(SHyprCtlCommand{"configerrors", true, configErrorsRequest});
|
registerCommand(SHyprCtlCommand{"configerrors", true, configErrorsRequest});
|
||||||
registerCommand(SHyprCtlCommand{"locked", true, getIsLocked});
|
registerCommand(SHyprCtlCommand{"locked", true, getIsLocked});
|
||||||
registerCommand(SHyprCtlCommand{"descriptions", true, getDescriptions});
|
registerCommand(SHyprCtlCommand{"descriptions", true, getDescriptions});
|
||||||
|
registerCommand(SHyprCtlCommand{"submap", true, submapRequest});
|
||||||
|
|
||||||
registerCommand(SHyprCtlCommand{"monitors", false, monitorsRequest});
|
registerCommand(SHyprCtlCommand{"monitors", false, monitorsRequest});
|
||||||
registerCommand(SHyprCtlCommand{"reload", false, reloadRequest});
|
registerCommand(SHyprCtlCommand{"reload", false, reloadRequest});
|
||||||
|
|
|
@ -594,6 +594,10 @@ eMultiKeyCase CKeybindManager::mkBindMatches(const SKeybind keybind) {
|
||||||
return mkKeysymSetMatches(keybind.sMkKeys, m_sMkKeys);
|
return mkKeysymSetMatches(keybind.sMkKeys, m_sMkKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string CKeybindManager::getCurrentSubmap() {
|
||||||
|
return m_szCurrentSelectedSubmap;
|
||||||
|
}
|
||||||
|
|
||||||
SDispatchResult CKeybindManager::handleKeybinds(const uint32_t modmask, const SPressedKeyWithMods& key, bool pressed) {
|
SDispatchResult CKeybindManager::handleKeybinds(const uint32_t modmask, const SPressedKeyWithMods& key, bool pressed) {
|
||||||
static auto PDISABLEINHIBIT = CConfigValue<Hyprlang::INT>("binds:disable_keybind_grabbing");
|
static auto PDISABLEINHIBIT = CConfigValue<Hyprlang::INT>("binds:disable_keybind_grabbing");
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
|
@ -96,6 +96,7 @@ class CKeybindManager {
|
||||||
uint32_t keycodeToModifier(xkb_keycode_t);
|
uint32_t keycodeToModifier(xkb_keycode_t);
|
||||||
void clearKeybinds();
|
void clearKeybinds();
|
||||||
void shadowKeybinds(const xkb_keysym_t& doesntHave = 0, const uint32_t doesntHaveCode = 0);
|
void shadowKeybinds(const xkb_keysym_t& doesntHave = 0, const uint32_t doesntHaveCode = 0);
|
||||||
|
std::string getCurrentSubmap();
|
||||||
|
|
||||||
std::unordered_map<std::string, std::function<SDispatchResult(std::string)>> m_mDispatchers;
|
std::unordered_map<std::string, std::function<SDispatchResult(std::string)>> m_mDispatchers;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue