From 0ca918fbb4cd1345d3b03061f16d59d13a8c0f40 Mon Sep 17 00:00:00 2001 From: Christoph Zimmermann Date: Tue, 23 May 2023 22:15:44 +0200 Subject: [PATCH] Clean up according to PR checklist Check the keymaps/nuess0r how you can make better use of your Model M including Windows, multimedia keys etc. --- keyboards/ibm/model_m/ctrl_m/config.h | 4 - keyboards/ibm/model_m/ctrl_m/ctrl_m.c | 19 ---- keyboards/ibm/model_m/ctrl_m/info.json | 2 +- .../model_m/ctrl_m/keymaps/default/keymap.c | 73 +------------ .../model_m/ctrl_m/keymaps/nuess0r/config.h | 22 ++++ .../model_m/ctrl_m/keymaps/nuess0r/keymap.c | 101 ++++++++++++++++++ .../model_m/ctrl_m/keymaps/nuess0r/rules.mk | 1 + .../ibm/model_m/ctrl_m/keymaps/via/keymap.c | 73 +------------ keyboards/ibm/model_m/ctrl_m/readme.md | 12 +++ 9 files changed, 141 insertions(+), 166 deletions(-) create mode 100644 keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/config.h create mode 100644 keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/keymap.c create mode 100644 keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/rules.mk diff --git a/keyboards/ibm/model_m/ctrl_m/config.h b/keyboards/ibm/model_m/ctrl_m/config.h index 046122c0929..46dc2eaca82 100644 --- a/keyboards/ibm/model_m/ctrl_m/config.h +++ b/keyboards/ibm/model_m/ctrl_m/config.h @@ -19,7 +19,3 @@ along with this program. If not, see . /* The Model M as a membrane based keyboard without diodes has ghost keys */ #define MATRIX_HAS_GHOST - -/* As we replace the caps lock key with the win key, enable by default the - * Caps Word feature by double tapping the shift key */ -#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD diff --git a/keyboards/ibm/model_m/ctrl_m/ctrl_m.c b/keyboards/ibm/model_m/ctrl_m/ctrl_m.c index 54444269cdf..eb93f27ee87 100644 --- a/keyboards/ibm/model_m/ctrl_m/ctrl_m.c +++ b/keyboards/ibm/model_m/ctrl_m/ctrl_m.c @@ -14,22 +14,3 @@ * along with this program. If not, see . */ #include "ctrl_m.h" - -void keyboard_pre_init_kb(void) { - /* Setting status LEDs pins to output and +5V (off) */ - setPinOutput(LED_NUM_LOCK_PIN); - setPinOutput(LED_CAPS_LOCK_PIN); - setPinOutput(LED_SCROLL_LOCK_PIN); - writePinHigh(LED_NUM_LOCK_PIN); - writePinHigh(LED_CAPS_LOCK_PIN); - writePinHigh(LED_SCROLL_LOCK_PIN); -} - -bool led_update_kb(led_t led_state) { - if(led_update_user(led_state)) { - writePin(LED_NUM_LOCK_PIN, !led_state.num_lock); - writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); - writePin(LED_SCROLL_LOCK_PIN, !led_state.scroll_lock); - } - return true; -} diff --git a/keyboards/ibm/model_m/ctrl_m/info.json b/keyboards/ibm/model_m/ctrl_m/info.json index df2d7b0bced..807d82f7005 100644 --- a/keyboards/ibm/model_m/ctrl_m/info.json +++ b/keyboards/ibm/model_m/ctrl_m/info.json @@ -19,7 +19,7 @@ "num_lock": "B10", "caps_lock": "B12", "scroll_lock": "B11", - "on_state": 1 + "on_state": 0 } "bootmagic": { "enabled": true, diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c index eea8aa660a2..043a5827bcc 100644 --- a/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c @@ -17,85 +17,16 @@ enum layers { _BL0, - _BL1, - _FL, - _MS + }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL0] = LAYOUT_fullsize_iso_wkl( /* Base layer - Windows key instead of CapsLock, hold ESC for special functions */ - LT(_FL,KC_ESC), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV , 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_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - 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_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, - KC_LWIN, KC_A, KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , - KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, - KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - [_BL1] = LAYOUT_fullsize_iso_wkl( /* Base layer - standard layout without any special functions */ + [_BL0] = LAYOUT_fullsize_iso_wkl( /* Base layer - standard layout without any special functions */ KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, KC_GRV , 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_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - [_FL] = LAYOUT_fullsize_iso_wkl( /* special functions layer */ - // F1: dyn. macro 1 play - // F2: dyn. macro 2 play - // F3: dyn. macro 1 record - // F4: dyn. macro 2 record - // F5: dyn. macro record stop - // Capslock: CapsLock (really!) - // ~: Key Lock - // Cursor: Media Pref / Next / Volume Up / Volume Down - // Space: Media Play / Pause - // Page Up: Brightness Up - // Page Down: Brightness Down - // Num pad: Mouse wheel - // m: Enter mouse layer - _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_LOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRIU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, _______, KC_WH_U, _______, _______, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, _______, KC_WH_R, - _______, _______, _______, _______, _______, _______, _______, _______, TG(_MS), _______, _______, _______, _______, KC_VOLU, _______, KC_WH_D, _______, _______, - _______, _______, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______ - ), - - [_MS] = LAYOUT_fullsize_iso_wkl( /* mouse key layer */ - // Cursor: mouse, INS/HOME/PgUp: Mouse Accel, Del, End, PageDn: mouse buttons, Num pad: mouse wheel - TG(_MS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, KC_WH_U, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, _______, KC_WH_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, KC_WH_D, _______, _______, - _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______ ) }; - -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - //debug_enable=true; - //debug_matrix=true; - //debug_keyboard=true; - //debug_mouse=true; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // If console is enabled, it will print the matrix position and status of each key pressed - dprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); - return true; -} - -bool led_update_user(led_t led_state) { - return true; -} - -void caps_word_set_user(bool active) { - if (active) { - writePinLow(LED_CAPS_LOCK_PIN); - } else { - writePinHigh(LED_CAPS_LOCK_PIN); - } -} diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/config.h b/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/config.h new file mode 100644 index 00000000000..8d39c30559d --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/config.h @@ -0,0 +1,22 @@ +/* +Copyright 2022 nuess0r + +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 . +*/ + +#pragma once + +/* As we replace the caps lock key with the win key, enable by default the + * Caps Word feature by double tapping the shift key */ +#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/keymap.c b/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/keymap.c new file mode 100644 index 00000000000..eea8aa660a2 --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/keymap.c @@ -0,0 +1,101 @@ +/* Copyright 2020 Michael Schwingen + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _BL0, + _BL1, + _FL, + _MS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL0] = LAYOUT_fullsize_iso_wkl( /* Base layer - Windows key instead of CapsLock, hold ESC for special functions */ + LT(_FL,KC_ESC), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV , 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_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, + KC_LWIN, KC_A, KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , + KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, + KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [_BL1] = LAYOUT_fullsize_iso_wkl( /* Base layer - standard layout without any special functions */ + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV , 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_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , + KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, + KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [_FL] = LAYOUT_fullsize_iso_wkl( /* special functions layer */ + // F1: dyn. macro 1 play + // F2: dyn. macro 2 play + // F3: dyn. macro 1 record + // F4: dyn. macro 2 record + // F5: dyn. macro record stop + // Capslock: CapsLock (really!) + // ~: Key Lock + // Cursor: Media Pref / Next / Volume Up / Volume Down + // Space: Media Play / Pause + // Page Up: Brightness Up + // Page Down: Brightness Down + // Num pad: Mouse wheel + // m: Enter mouse layer + _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_LOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRIU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, _______, KC_WH_U, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, _______, KC_WH_R, + _______, _______, _______, _______, _______, _______, _______, _______, TG(_MS), _______, _______, _______, _______, KC_VOLU, _______, KC_WH_D, _______, _______, + _______, _______, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______ + ), + + [_MS] = LAYOUT_fullsize_iso_wkl( /* mouse key layer */ + // Cursor: mouse, INS/HOME/PgUp: Mouse Accel, Del, End, PageDn: mouse buttons, Num pad: mouse wheel + TG(_MS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, KC_WH_U, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, _______, KC_WH_R, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, KC_WH_D, _______, _______, + _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______ + ) +}; + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + //debug_enable=true; + //debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed + dprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); + return true; +} + +bool led_update_user(led_t led_state) { + return true; +} + +void caps_word_set_user(bool active) { + if (active) { + writePinLow(LED_CAPS_LOCK_PIN); + } else { + writePinHigh(LED_CAPS_LOCK_PIN); + } +} diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/rules.mk b/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/nuess0r/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/via/keymap.c b/keyboards/ibm/model_m/ctrl_m/keymaps/via/keymap.c index eea8aa660a2..043a5827bcc 100644 --- a/keyboards/ibm/model_m/ctrl_m/keymaps/via/keymap.c +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/via/keymap.c @@ -17,85 +17,16 @@ enum layers { _BL0, - _BL1, - _FL, - _MS + }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BL0] = LAYOUT_fullsize_iso_wkl( /* Base layer - Windows key instead of CapsLock, hold ESC for special functions */ - LT(_FL,KC_ESC), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, - KC_GRV , 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_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, - 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_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, - KC_LWIN, KC_A, KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , - KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, - KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - [_BL1] = LAYOUT_fullsize_iso_wkl( /* Base layer - standard layout without any special functions */ + [_BL0] = LAYOUT_fullsize_iso_wkl( /* Base layer - standard layout without any special functions */ KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, KC_GRV , 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_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - - [_FL] = LAYOUT_fullsize_iso_wkl( /* special functions layer */ - // F1: dyn. macro 1 play - // F2: dyn. macro 2 play - // F3: dyn. macro 1 record - // F4: dyn. macro 2 record - // F5: dyn. macro record stop - // Capslock: CapsLock (really!) - // ~: Key Lock - // Cursor: Media Pref / Next / Volume Up / Volume Down - // Space: Media Play / Pause - // Page Up: Brightness Up - // Page Down: Brightness Down - // Num pad: Mouse wheel - // m: Enter mouse layer - _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_LOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRIU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, _______, KC_WH_U, _______, _______, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, _______, KC_WH_R, - _______, _______, _______, _______, _______, _______, _______, _______, TG(_MS), _______, _______, _______, _______, KC_VOLU, _______, KC_WH_D, _______, _______, - _______, _______, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______ - ), - - [_MS] = LAYOUT_fullsize_iso_wkl( /* mouse key layer */ - // Cursor: mouse, INS/HOME/PgUp: Mouse Accel, Del, End, PageDn: mouse buttons, Num pad: mouse wheel - TG(_MS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, KC_WH_U, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, _______, KC_WH_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, KC_WH_D, _______, _______, - _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______ ) }; - -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - //debug_enable=true; - //debug_matrix=true; - //debug_keyboard=true; - //debug_mouse=true; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // If console is enabled, it will print the matrix position and status of each key pressed - dprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); - return true; -} - -bool led_update_user(led_t led_state) { - return true; -} - -void caps_word_set_user(bool active) { - if (active) { - writePinLow(LED_CAPS_LOCK_PIN); - } else { - writePinHigh(LED_CAPS_LOCK_PIN); - } -} diff --git a/keyboards/ibm/model_m/ctrl_m/readme.md b/keyboards/ibm/model_m/ctrl_m/readme.md index a1846abc45c..f5878e1e5c7 100644 --- a/keyboards/ibm/model_m/ctrl_m/readme.md +++ b/keyboards/ibm/model_m/ctrl_m/readme.md @@ -11,8 +11,20 @@ Example how to compile for this keyboard (after setting up your build environmen make ibm/model_m/ctrl_m:default +Flashing example for this keyboard: + + make %KEYBOARD%:default:flash + Or if you use the QMK tool: qmk compile -kb ibm/model_m/ctrl_m -km default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available