diff options
Diffstat (limited to 'keyboards/converter/ibm_5291/keymaps/default/keymap.c')
-rw-r--r-- | keyboards/converter/ibm_5291/keymaps/default/keymap.c | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/keyboards/converter/ibm_5291/keymaps/default/keymap.c b/keyboards/converter/ibm_5291/keymaps/default/keymap.c new file mode 100644 index 0000000000..9b286c887d --- /dev/null +++ b/keyboards/converter/ibm_5291/keymaps/default/keymap.c @@ -0,0 +1,233 @@ +/* +Copyright 2018 listofoptions <listofoptions@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include QMK_KEYBOARD_H +/* +enum xt_keycodes + { XT_PAST = SAFE_RANGE // XT pad asterisk / print screen + , XT_SLCK // XT scroll lock / break + , XT_F6 // F6 / app key + , XT_F5 // F5 / gui + , XT_F9 // F9 / F11 + , XT_F10 // F10 / F12 + } ; + +static bool shift_pressed = false , + alt_pressed = false , + ctrl_pressed = false , + xt_pscr_pressed = false , + xt_brk_pressed = false , + xt_app_pressed = false , + xt_gui_pressed = false , + xt_lout_pressed = false , + xt_f11_pressed = false , + xt_f12_pressed = false ; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LSFT: + case KC_RSFT: + if (record->event.pressed) { + shift_pressed = true ; + } else { + shift_pressed = false ; + } + return true; + break; + + case KC_LALT: + if (record->event.pressed) { + alt_pressed = true ; + } else { + alt_pressed = false ; + } + return true; + break; + + case KC_LCTL: + if (record->event.pressed) { + ctrl_pressed = true ; + } else { + ctrl_pressed = false ; + } + return true; + break; + + case XT_PAST: + if (record->event.pressed) { + if (shift_pressed) { + xt_pscr_pressed = true ; + register_code(KC_PSCR); + } else { + register_code(KC_PAST); + } + } else { + if (xt_pscr_pressed) { + xt_pscr_pressed = false ; + unregister_code(KC_PSCR); + } else { + unregister_code(KC_PAST); + } + } + return false; + break; + + case XT_SLCK: + if (record->event.pressed) { + if (ctrl_pressed) { + xt_brk_pressed = true ; + register_code(KC_BRK); + } else { + register_code(KC_SLCK); + } + } else { + if (xt_brk_pressed) { + xt_brk_pressed = false ; + unregister_code(KC_BRK); + } else { + unregister_code(KC_SLCK); + } + } + return false; + break; + + case XT_F6: + if (record->event.pressed) { + if (shift_pressed) { + xt_app_pressed = true ; + register_code(KC_APP); + } else { + register_code(KC_F6); + } + } else { + if (xt_app_pressed) { + xt_app_pressed = false ; + unregister_code(KC_APP); + } else { + unregister_code(KC_F6); + } + } + return false; + break; + + case XT_F5: + if (record->event.pressed) { + if (shift_pressed) { + xt_gui_pressed = true ; + register_code(KC_LGUI); + } else if (ctrl_pressed) { + xt_lout_pressed = true ; + register_code (KC_LGUI) ; + register_code (KC_L) ; + } else { + register_code(KC_F5); + } + } else { + if (xt_gui_pressed) { + xt_gui_pressed = false ; + unregister_code(KC_LGUI); + } else if (xt_lout_pressed) { + xt_lout_pressed = false ; + unregister_code (KC_LGUI) ; + unregister_code (KC_L) ; + } else { + unregister_code(KC_F5); + } + } + return false; + break; + + case XT_F9: + if (record->event.pressed) { + if (shift_pressed) { + xt_f11_pressed = true ; + register_code(KC_F11); + } else { + register_code(KC_F9); + } + } else { + if (xt_f11_pressed) { + xt_f11_pressed = false ; + unregister_code(KC_F11); + } else { + unregister_code(KC_F9); + } + } + return false; + break; + + case XT_F10: + if (record->event.pressed) { + if (shift_pressed) { + xt_f12_pressed = true ; + register_code(KC_F12); + } else { + register_code(KC_F10); + } + } else { + if (xt_f12_pressed) { + xt_f12_pressed = false ; + unregister_code(KC_F12); + } else { + unregister_code(KC_F10); + } + } + return false; + break; + + default: + return true; + break; + } + + return true; +} +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// default layout is the standard XT layout +/* + * ,-------. ,--------------------------------------------------------------------------. + * | F1| F2| |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BS |NumLck |ScrLck | + * |-------| |--------------------------------------------------------------------------| + * | F3| F4| | Tab | Q| W| E| R| T| Y| U| I| O| P| [| ] | | 7| 8| 9| -| + * |-------| |------------------------------------------------------|Ent|---------------| + * | F5| F6| | Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | 4| 5| 6| | + * |-------| |----------------------------------------------------------------------| | + * | F7| F8| |Shif| \| Z| X| C| V| B| N| M| ,| .| /|Shift| *| 1| 2| 3| +| + * |-------| |----------------------------------------------------------------------| | + * | F9|F10| | Alt | Space |CapsLck| 0 | . | | + * `-------' `--------------------------------------------------------------------------' +*/ +/* + [0] = LAYOUT ( + KC_F1,KC_F2, KC_ESC, KC_1, KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_NLCK, XT_SLCK, + KC_F3,KC_F4, KC_TAB, KC_Q, KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O, KC_P, KC_LBRC,KC_RBRC, KC_P7,KC_P8, KC_P9, KC_PMNS, + XT_F5,XT_F6, KC_LCTL,KC_A, KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L, KC_SCLN,KC_QUOT,KC_GRV, KC_ENT, KC_P4,KC_P5, KC_P6, + KC_F7,KC_F8, KC_LSFT,KC_BSLS,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,XT_PAST,KC_P1,KC_P2, KC_P3, KC_PPLS, + XT_F9,XT_F10,KC_LALT, KC_SPACE, KC_CAPS, KC_P0, KC_PDOT + ) +*/ + [0] = LAYOUT ( + KC_F1,KC_F2, KC_ESC, KC_1, KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_NLCK, KC_SLCK, + KC_F3,KC_F4, KC_TAB, KC_Q, KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O, KC_P, KC_LBRC,KC_RBRC, KC_P7,KC_P8, KC_P9, KC_PMNS, + KC_F5,KC_F6, KC_LCTL,KC_A, KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L, KC_SCLN,KC_QUOT,KC_GRV, KC_ENT, KC_P4,KC_P5, KC_P6, + KC_F7,KC_F8, KC_LSFT,KC_BSLS,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_PAST,KC_P1,KC_P2, KC_P3, KC_PPLS, + KC_F9,KC_F10,KC_LALT, KC_SPACE, KC_CAPS, KC_P0, KC_PDOT + ) +} ; + |