summaryrefslogtreecommitdiff
path: root/keybinds.h
diff options
context:
space:
mode:
Diffstat (limited to 'keybinds.h')
-rw-r--r--keybinds.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/keybinds.h b/keybinds.h
new file mode 100644
index 0000000..686eaf8
--- /dev/null
+++ b/keybinds.h
@@ -0,0 +1,33 @@
+#pragma once
+
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <map>
+#include <string>
+#include <X11/keysym.h>
+#include <vector>
+
+#include "commands.h"
+#include "config.h"
+#include "util.h"
+
+struct Keybind {
+ KeySym key;
+ unsigned int modifiers;
+ std::string command;
+};
+
+class KeybindsModule {
+public:
+ KeybindsModule(CommandsModule& commandsModule, Config& cfg, Globals& globals, void (*updateMousePos)());
+ ~KeybindsModule() = default;
+ const void bind(const CommandArg* argv);
+ const void handleKeypress(XKeyEvent e);
+ const void clearKeybinds();
+private:
+ std::vector<Keybind> binds;
+ CommandsModule& commandsModule;
+ Config& cfg;
+ Globals& globals;
+ void (*updateMousePos)();
+};