aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-11-24 18:25:58 +0100
committerdec05eba <dec05eba@protonmail.com>2024-11-24 18:33:57 +0100
commit734280f3042a1b2d08764599d1decdee2d4d3132 (patch)
tree4f72eb3aee2f8a98c05e4554f137f6e296fb2018 /src/main.cpp
parent56a7e558d290d168a906dba984f5051c1e327712 (diff)
Use linux /dev/input for global hotkeys instead of x11. This also works on wayland on any compositor
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp49
1 files changed, 42 insertions, 7 deletions
diff --git a/src/main.cpp b/src/main.cpp
index c2b7ab0..be2e50d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -3,6 +3,7 @@
#include "../include/window_texture.h"
#include "../include/Overlay.hpp"
#include "../include/GlobalHotkeysX11.hpp"
+#include "../include/GlobalHotkeysLinux.hpp"
#include "../include/gui/Utils.hpp"
#include <unistd.h>
@@ -98,33 +99,67 @@ int main(void) {
auto overlay = std::make_unique<gsr::Overlay>(resources_path, gsr_info, egl_funcs);
//overlay.show();
- gsr::GlobalHotkeysX11 global_hotkeys;
- const bool show_hotkey_registered = global_hotkeys.bind_key_press({ XK_z, Mod1Mask }, "show/hide", [&](const std::string &id) {
+ // gsr::GlobalHotkeysX11 global_hotkeys;
+ // const bool show_hotkey_registered = global_hotkeys.bind_key_press({ XK_z, Mod1Mask }, "show_hide", [&](const std::string &id) {
+ // fprintf(stderr, "pressed %s\n", id.c_str());
+ // overlay->toggle_show();
+ // });
+
+ // const bool record_hotkey_registered = global_hotkeys.bind_key_press({ XK_F9, Mod1Mask }, "record", [&](const std::string &id) {
+ // fprintf(stderr, "pressed %s\n", id.c_str());
+ // overlay->toggle_record();
+ // });
+
+ // const bool pause_hotkey_registered = global_hotkeys.bind_key_press({ XK_F7, Mod1Mask }, "pause", [&](const std::string &id) {
+ // fprintf(stderr, "pressed %s\n", id.c_str());
+ // overlay->toggle_pause();
+ // });
+
+ // const bool stream_hotkey_registered = global_hotkeys.bind_key_press({ XK_F8, Mod1Mask }, "stream", [&](const std::string &id) {
+ // fprintf(stderr, "pressed %s\n", id.c_str());
+ // overlay->toggle_stream();
+ // });
+
+ // const bool replay_hotkey_registered = global_hotkeys.bind_key_press({ XK_F10, ShiftMask | Mod1Mask }, "replay start", [&](const std::string &id) {
+ // fprintf(stderr, "pressed %s\n", id.c_str());
+ // overlay->toggle_replay();
+ // });
+
+ // const bool replay_save_hotkey_registered = global_hotkeys.bind_key_press({ XK_F10, Mod1Mask }, "replay save", [&](const std::string &id) {
+ // fprintf(stderr, "pressed %s\n", id.c_str());
+ // overlay->save_replay();
+ // });
+
+ gsr::GlobalHotkeysLinux global_hotkeys;
+ if(!global_hotkeys.start())
+ fprintf(stderr, "error: failed to start global hotkeys\n");
+
+ const bool show_hotkey_registered = global_hotkeys.bind_action("show_hide", [&](const std::string &id) {
fprintf(stderr, "pressed %s\n", id.c_str());
overlay->toggle_show();
});
- const bool record_hotkey_registered = global_hotkeys.bind_key_press({ XK_F9, Mod1Mask }, "record", [&](const std::string &id) {
+ const bool record_hotkey_registered = global_hotkeys.bind_action("record", [&](const std::string &id) {
fprintf(stderr, "pressed %s\n", id.c_str());
overlay->toggle_record();
});
- const bool pause_hotkey_registered = global_hotkeys.bind_key_press({ XK_F7, Mod1Mask }, "pause", [&](const std::string &id) {
+ const bool pause_hotkey_registered = global_hotkeys.bind_action("pause", [&](const std::string &id) {
fprintf(stderr, "pressed %s\n", id.c_str());
overlay->toggle_pause();
});
- const bool stream_hotkey_registered = global_hotkeys.bind_key_press({ XK_F8, Mod1Mask }, "stream", [&](const std::string &id) {
+ const bool stream_hotkey_registered = global_hotkeys.bind_action("stream", [&](const std::string &id) {
fprintf(stderr, "pressed %s\n", id.c_str());
overlay->toggle_stream();
});
- const bool replay_hotkey_registered = global_hotkeys.bind_key_press({ XK_F10, ShiftMask | Mod1Mask }, "replay start", [&](const std::string &id) {
+ const bool replay_hotkey_registered = global_hotkeys.bind_action("replay_start", [&](const std::string &id) {
fprintf(stderr, "pressed %s\n", id.c_str());
overlay->toggle_replay();
});
- const bool replay_save_hotkey_registered = global_hotkeys.bind_key_press({ XK_F10, Mod1Mask }, "replay save", [&](const std::string &id) {
+ const bool replay_save_hotkey_registered = global_hotkeys.bind_action("replay_save", [&](const std::string &id) {
fprintf(stderr, "pressed %s\n", id.c_str());
overlay->save_replay();
});