Skip to content

Commit f5c76de

Browse files
authored
Merge pull request #273 from alankeny/screensaver-jitter-hotkey
Add keyboard shortcut to enable the Jitter screensaver
2 parents e317f16 + 8f58f2b commit f5c76de

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

src/handlers.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,17 +115,28 @@ void mouse_zoom_hotkey_handler(device_t *state, hid_keyboard_report_t *report) {
115115
send_value(state->mouse_zoom, MOUSE_ZOOM_MSG);
116116
};
117117

118-
/* When pressed, enables the screensaver on active output */
119-
void enable_screensaver_hotkey_handler(device_t *state, hid_keyboard_report_t *report) {
118+
/* When pressed, enables the pong screensaver on active output */
119+
void enable_screensaver_pong_hotkey_handler(device_t *state, hid_keyboard_report_t *report) {
120120
uint8_t desired_mode = state->config.output[BOARD_ROLE].screensaver.mode;
121121

122-
/* If the user explicitly asks for screensaver to be active, ignore config and turn it on */
123-
if (desired_mode == DISABLED)
122+
/* If the user explicitly asks for pong screensaver to be active, ignore config and turn it on */
123+
if (desired_mode == DISABLED || desired_mode == JITTER)
124124
desired_mode = PONG;
125125

126126
_screensaver_set(state, desired_mode);
127127
}
128128

129+
/* When pressed, enables the jitter screensaver on active output */
130+
void enable_screensaver_jitter_hotkey_handler(device_t *state, hid_keyboard_report_t *report) {
131+
uint8_t desired_mode = state->config.output[BOARD_ROLE].screensaver.mode;
132+
133+
/* If the user explicitly asks for jitter screensaver to be active, ignore config and turn it on */
134+
if (desired_mode == DISABLED || desired_mode == PONG)
135+
desired_mode = JITTER;
136+
137+
_screensaver_set(state, desired_mode);
138+
}
139+
129140
/* When pressed, disables the screensaver on active output */
130141
void disable_screensaver_hotkey_handler(device_t *state, hid_keyboard_report_t *report) {
131142
_screensaver_set(state, DISABLED);

src/include/handlers.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121
void config_enable_hotkey_handler(device_t *, hid_keyboard_report_t *);
2222
void disable_screensaver_hotkey_handler(device_t *, hid_keyboard_report_t *);
23-
void enable_screensaver_hotkey_handler(device_t *, hid_keyboard_report_t *);
23+
void enable_screensaver_pong_hotkey_handler(device_t *, hid_keyboard_report_t *);
24+
void enable_screensaver_jitter_hotkey_handler(device_t *, hid_keyboard_report_t *);
2425
void fw_upgrade_hotkey_handler_A(device_t *, hid_keyboard_report_t *);
2526
void fw_upgrade_hotkey_handler_B(device_t *, hid_keyboard_report_t *);
2627
void mouse_zoom_hotkey_handler(device_t *, hid_keyboard_report_t *);

src/keyboard.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,19 @@ hotkey_combo_t hotkeys[] = {
5252
.acknowledge = true,
5353
.action_handler = &toggle_gaming_mode_handler},
5454

55-
/* Enable screensaver for active output */
55+
/* Enable screensaver pong for active output */
5656
{.modifier = KEYBOARD_MODIFIER_LEFTCTRL | KEYBOARD_MODIFIER_RIGHTSHIFT,
5757
.keys = {HID_KEY_S},
5858
.key_count = 1,
5959
.acknowledge = true,
60-
.action_handler = &enable_screensaver_hotkey_handler},
60+
.action_handler = &enable_screensaver_pong_hotkey_handler},
61+
62+
/* Enable screensaver jitter for active output */
63+
{.modifier = KEYBOARD_MODIFIER_LEFTCTRL | KEYBOARD_MODIFIER_RIGHTSHIFT,
64+
.keys = {HID_KEY_J},
65+
.key_count = 1,
66+
.acknowledge = true,
67+
.action_handler = &enable_screensaver_jitter_hotkey_handler},
6168

6269
/* Disable screensaver for active output */
6370
{.modifier = KEYBOARD_MODIFIER_LEFTCTRL | KEYBOARD_MODIFIER_RIGHTSHIFT,

0 commit comments

Comments
 (0)