diff --git a/keyboards/lotus/keymaps/78_ansi/keymap.c b/keyboards/lotus/keymaps/78_ansi/keymap.c index fa846d2dcb..fb0d2b4e9b 100644 --- a/keyboards/lotus/keymaps/78_ansi/keymap.c +++ b/keyboards/lotus/keymaps/78_ansi/keymap.c @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // TODO: Screen toggle, airplane mode // TODO: Other unlabeled keys [1] = LAYOUT_78_ansi( - TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, + TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SYRQ, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/lotus/keymaps/79_iso/keymap.c b/keyboards/lotus/keymaps/79_iso/keymap.c index 17f3919258..b45f988070 100644 --- a/keyboards/lotus/keymaps/79_iso/keymap.c +++ b/keyboards/lotus/keymaps/79_iso/keymap.c @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // TODO: Screen toggle, airplane mode // TODO: Other unlabeled keys [1] = LAYOUT_79_iso( - TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, + TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SYRQ, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/lotus/keymaps/83_jis/keymap.c b/keyboards/lotus/keymaps/83_jis/keymap.c index e98e717373..2790da2563 100644 --- a/keyboards/lotus/keymaps/83_jis/keymap.c +++ b/keyboards/lotus/keymaps/83_jis/keymap.c @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // TODO: Screen toggle, airplane mode // TODO: Other unlabeled keys [1] = LAYOUT_83_jis( - TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, + TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SYRQ, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/lotus/lotus.c b/keyboards/lotus/lotus.c index a88e04243d..b5b2f8f2b5 100644 --- a/keyboards/lotus/lotus.c +++ b/keyboards/lotus/lotus.c @@ -22,3 +22,23 @@ void keyboard_pre_init_user(void) { setPinOutput(BOOT_DONE_GPIO); writePinHigh(BOOT_DONE_GPIO); } + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + process_record_user(); + + switch (keycode) { + case KC_SCRN: + // Simulate press WIN+P + // Works (at least) on Windows and GNOME + if (record->event.pressed) { + register_code(KC_LGUI); + register_code(KC_P); + } else { + unregister_code(KC_LGUI); + unregister_code(KC_P); + } + return false; // Skip all further processing of this key + default: + return true; // Process all other keycodes normally + } +} \ No newline at end of file diff --git a/keyboards/lotus/lotus.h b/keyboards/lotus/lotus.h index 0cf3649bc4..a4ea10b812 100644 --- a/keyboards/lotus/lotus.h +++ b/keyboards/lotus/lotus.h @@ -5,6 +5,11 @@ #include "quantum.h" +enum lotus_keycodes { + // Custom keycode to change screen modes (e.g. enable external screen) + KC_SCRN = SAFE_RANGE, +}; + // The layouts are all mostly the same, except for the extra keys that the different layouts have #define LAYOUT_78_ansi( \ K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \