summaryrefslogtreecommitdiffstats
path: root/keyboards/converter/ibm_5291/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/converter/ibm_5291/keymaps/default/keymap.c')
-rw-r--r--keyboards/converter/ibm_5291/keymaps/default/keymap.c233
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 000000000..9b286c887
--- /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
+ )
+} ;
+