From dc1f34c5fad7c4067808cfcff4d1fde74331de4c Mon Sep 17 00:00:00 2001 From: Daniel Gerblick Date: Sun, 17 Jul 2022 19:00:12 -0400 Subject: added PID and address-based options for focuswindow, as well as updated `hyprctl clients` to be consistent with logs and `hyprctl activewindow` --- src/managers/KeybindManager.hpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/managers/KeybindManager.hpp') diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 08a1cba3..3aece7be 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -66,6 +66,13 @@ private: static void setSubmap(std::string); friend class CCompositor; + + enum eFocusWindowMode { + MODE_CLASS_REGEX = 0, + MODE_TITLE_REGEX, + MODE_ADDRESS, + MODE_PID + }; }; -inline std::unique_ptr g_pKeybindManager; \ No newline at end of file +inline std::unique_ptr g_pKeybindManager; -- cgit v1.2.3 From fa2bd3b1a846e7395f96b3bd3587a5ef92ed30be Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 20 Jul 2022 22:45:06 +0200 Subject: added keybinds on key up --- src/managers/KeybindManager.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/managers/KeybindManager.hpp') diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 3aece7be..fc3b06f8 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -14,13 +14,15 @@ struct SKeybind { std::string arg = ""; bool locked = false; std::string submap = ""; + bool release = false; }; class CKeybindManager { public: CKeybindManager(); - bool handleKeybinds(const uint32_t&, const xkb_keysym_t&, const int&); + bool onKeyEvent(wlr_keyboard_key_event*, SKeyboard*); + void addKeybind(SKeybind); void removeKeybind(uint32_t, const std::string&); uint32_t stringToModMask(std::string); @@ -33,6 +35,8 @@ private: inline static std::string m_szCurrentSelectedSubmap = ""; + bool handleKeybinds(const uint32_t&, const xkb_keysym_t&, const int&, bool); + bool handleInternalKeybinds(xkb_keysym_t); bool handleVT(xkb_keysym_t); -- cgit v1.2.3 From 189cbe9f098816231673e9ebe1ac5fa5872f33e7 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 20 Jul 2022 23:17:26 +0200 Subject: added shadowing keybinds --- src/managers/KeybindManager.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/managers/KeybindManager.hpp') diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index fc3b06f8..62568fc0 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -15,6 +15,9 @@ struct SKeybind { bool locked = false; std::string submap = ""; bool release = false; + + // DO NOT INITIALIZE + bool shadowed = false; }; class CKeybindManager { @@ -32,10 +35,16 @@ public: private: std::list m_lKeybinds; + std::deque m_dPressedKeysyms; + std::deque m_dPressedKeycodes; inline static std::string m_szCurrentSelectedSubmap = ""; - bool handleKeybinds(const uint32_t&, const xkb_keysym_t&, const int&, bool); + xkb_keysym_t m_kHeldBack = 0; + + bool handleKeybinds(const uint32_t&, const xkb_keysym_t&, const int&, bool, uint32_t); + + void shadowKeybinds(); bool handleInternalKeybinds(xkb_keysym_t); bool handleVT(xkb_keysym_t); -- cgit v1.2.3