]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/planck/keymaps/mwpeterson/keymap.c
Keymap: add Interrobang (#4420)
[qmk_firmware.git] / keyboards / planck / keymaps / mwpeterson / keymap.c
index bfb015c7a8bc97e51e8c7af639c58316fa37f0b4..961b8394bccd25cf1e6ea7ba81370881b5db1545 100644 (file)
@@ -35,6 +35,19 @@ enum planck_layers {
 #define WM_W    LALT(LGUI(KC_LEFT))
 #define WM_CNTR LALT(LGUI(KC_C))
 
+#define SFT_INS LSFT(KC_INS)
+
+// Unicode
+#ifdef UNICODEMAP_ENABLE
+enum unicode_name {
+  IBANG // ‽
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+  [IBANG]      = 0x0203D // ‽
+};
+#endif // UNICODEMAP_ENABLE
+
 // Custom key codes
 enum planck_keycodes {
   QWERTY = SAFE_RANGE,
@@ -81,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    *      window    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    *    switcher    │     │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │  9  │  0  │     │
    *                ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-   *                │     │  -  │  +  │  `  │  |  │  :  │     │     │  ,  │  .  │  \  │     │
+   *                │     │  -  │  +  │  `  │SFTIN│  :  │  |  │  ‽  │  ,  │  .  │  \  │     │
    *                ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
    *                │     │     │     │     │     │ Backspace │     │     │     │     │     │
    *                └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
@@ -89,8 +102,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [LOWER_LAYER] = LAYOUT_planck_grid(
     KC_GRV,   KC_F1,   KC_F2,    KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  S(KC_3),
     _______,  KC_1,    KC_2,     KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______,
-    _______,  KC_MINS, KC_PLUS,  KC_GRV,  KC_PIPE, KC_COLN, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT,  KC_BSLS, _______,
-    _______,  _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______
+    _______,  KC_MINS, KC_PLUS,  KC_GRV,  SFT_INS, KC_COLN, KC_PIPE, X(IBANG), KC_COMM, KC_DOT,  KC_BSLS, _______,
+    _______,  _______, _______, _______, _______,  KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______
   ),
 
   /* Symbol layer
@@ -99,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    *                ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    *                │     │  !  │  @  │  #  │  $  │  %  │  ^  │  &  │  *  │  '  │  "  │     │ \
    *                ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤  |-- Mostly shifted version
-   *                │     │  _  │  =  │  ~  │  |  │  :  │     │     │  ,  │  .  │  /  │     │ /    of lower layer
+   *                │     │  _  │  =  │  ~  │SFTIN│  :  │  |  │     │  ,  │  .  │  /  │     │ /    of lower layer
    *                ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
    *                │     │     │     │     │     │  Delete   │     │     │     │     │     │
    *                └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
@@ -107,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [RAISE_LAYER] = LAYOUT_planck_grid(
     S(KC_GRV), KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20,     S(KC_3),
     _______,   S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_QUOT, S(KC_QUOT), _______,
-    _______,   KC_UNDS, KC_EQL,  KC_TILD, KC_PIPE, KC_COLN, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT,  KC_SLSH,    _______,
+    _______,   KC_UNDS, KC_EQL,  KC_TILD, SFT_INS, KC_COLN, KC_PIPE, XXXXXXX, KC_COMM, KC_DOT,  KC_SLSH,    _______,
     _______,   _______, _______, _______, _______, KC_DEL,  KC_DEL,  _______, _______, _______, _______,    _______
   ),
 
@@ -241,6 +254,10 @@ void plover_lookup(void) {
   unregister_code(PV_RG);
 }
 
+void matrix_init_user(void) {
+    set_unicode_input_mode(UC_LNX);
+};
+
 uint32_t layer_state_set_user(uint32_t state) {
   return update_tri_layer_state(state, LOWER_LAYER, RAISE_LAYER, ADJUST_LAYER);
 }