]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
[Keymap] the results of some experiments and radically simplify keymap.c (#6172)
authorCallum Oakley <c.oakley108@gmail.com>
Tue, 25 Jun 2019 06:13:40 +0000 (07:13 +0100)
committerDrashna Jaelre <drashna@live.com>
Tue, 25 Jun 2019 06:13:40 +0000 (23:13 -0700)
* keymap simplification and fancy alt tab behaviour

* move symbols around and try ergo numbers

* mess with symbol positions

* f11 and f12 for volume control (for ease of remapping)

* slack unread navigation

* experiment with mods on home row

* mods on symbol layer

* dedicated tab left and tab right keys

* swap next and prev

* remove hold to shift on a and o

* revert to simpler keymap

* restore readme

* point to keymap image

* cmd + cmd -> cmd + ctrl

* expand readme

* slack unread channel navigation

* Update keyboards/planck/keymaps/callum/keymap.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>
* return true from cmd handling block

keyboards/planck/keymaps/callum/config.h
keyboards/planck/keymaps/callum/keymap.c
keyboards/planck/keymaps/callum/readme.md
keyboards/planck/keymaps/callum/rules.mk

index e66db1d7e80d3673da54a9e6d8ce72821b812d13..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,7 +0,0 @@
-#define MOUSEKEY_DELAY             0
-#define MOUSEKEY_INTERVAL          16
-#define MOUSEKEY_MAX_SPEED         20
-#define MOUSEKEY_TIME_TO_MAX       100
-#define MOUSEKEY_WHEEL_DELAY       0
-#define MOUSEKEY_WHEEL_MAX_SPEED   1
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
index 08d0c69b88d673e358045027206780a3a4700f44..80dab22205a17ee95da21262086a21e25e77e64c 100644 (file)
 #include "planck.h"
 #include "action_layer.h"
 
-extern keymap_config_t keymap_config;
+#define a KC_A
+#define b KC_B
+#define c KC_C
+#define d KC_D
+#define e KC_E
+#define f KC_F
+#define g KC_G
+#define h KC_H
+#define i KC_I
+#define j KC_J
+#define k KC_K
+#define l KC_L
+#define m KC_M
+#define n KC_N
+#define o KC_O
+#define p KC_P
+#define q KC_Q
+#define r KC_R
+#define s KC_S
+#define t KC_T
+#define u KC_U
+#define v KC_V
+#define w KC_W
+#define x KC_X
+#define y KC_Y
+#define z KC_Z
+
+#define lalt KC_LALT
+#define lctl KC_LCTL
+#define lsft KC_LSFT
+#define ralt KC_RALT
+#define rctl KC_RCTL
+#define rsft KC_RSFT
+
+#define n0 KC_0
+#define n1 KC_1
+#define n2 KC_2
+#define n3 KC_3
+#define n4 KC_4
+#define n5 KC_5
+#define n6 KC_6
+#define n7 KC_7
+#define n8 KC_8
+#define n9 KC_9
+
+#define bspc KC_BSPC
+#define caps KC_CAPS
+#define comm KC_COMM
+#define dash A(KC_MINS)
+#define scln KC_SCLN
+#define slsh KC_SLSH
+#define spc KC_SPC
+#define tab KC_TAB
+#define del KC_DEL
+#define dot KC_DOT
+#define ent KC_ENT
+#define mins KC_MINS
+#define quot KC_QUOT
+#define esc KC_ESC
+#define gbp A(KC_3)
+
+#define down KC_DOWN
+#define home KC_HOME
+#define end KC_END
+#define up KC_UP
+#define pgdn KC_PGDN
+#define pgup KC_PGUP
+#define left KC_LEFT
+#define rght KC_RGHT
+
+#define tabl S(C(KC_TAB))
+#define tabr C(KC_TAB)
+#define fwd G(KC_RBRC)
+#define back G(KC_LBRC)
+#define dtl C(KC_LEFT)
+#define dtr C(KC_RGHT)
+#define slup S(A(KC_UP))
+#define sldn S(A(KC_DOWN))
+
+#define f1 KC_F1
+#define f2 KC_F2
+#define f3 KC_F3
+#define f4 KC_F4
+#define f5 KC_F5
+#define f6 KC_F6
+#define f7 KC_F7
+#define f8 KC_F8
+#define f9 KC_F9
+#define f10 KC_F10
+#define f11 KC_F11
+#define f12 KC_F12
+#define f13 KC_F13
+#define f14 KC_F14
+#define f15 KC_F15
+#define f16 KC_F16
+#define f17 KC_F17
+#define f18 KC_F18
+#define f19 KC_F19
+#define f20 KC_F20
+
+#define mute KC_MUTE
+#define next KC_MNXT
+#define play KC_MPLY
+#define prev KC_MPRV
+#define vold KC_F11
+#define volu KC_F12
+
+#define symb MO(SYMB)
+#define move MO(MOVE)
+#define func MO(FUNC)
+
+#define rset RESET
+#define powr KC_POWER
+
+#define ____ KC_TRNS
+#define xxxx KC_NO
 
-#define AC(X) A(C(X))
-#define SC(X) S(C(X))
+extern keymap_config_t keymap_config;
 
 enum planck_layers {
-    _COLEMAK,
-    _QWERTY,
-    _SYMB,
-    _MOVE,
-    _FUNC,
-    _MOUSE,
-};
-
-enum planck_keycodes {
-    COLEMAK = SAFE_RANGE,
-    QWERTY,
+    BASE,
     SYMB,
     MOVE,
     FUNC,
-    MOUSE,
 };
 
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-    /* COLEMAK
-     * ,-----------------------------------------------------------------------.
-     * |Tab  |  Q  |  W  |  F  |  P  |  G  |  J  |  L  |  U  |  Y  |  ;  |  -  |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Bksp |  A  |  R  |  S  |  T  |  D  |  H  |  N  |  E  |  I  |  O  |  '  |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Shift|  Z  |  X  |  C  |  V  |  B  |  K  |  M  |  ,  |  .  |  /  |Shift|
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Func |Ctrl | Alt |Super|Symb |Enter|Space|Move |Super| Alt |Ctrl |Func |
-     * `-----------------------------------------------------------------------'
-     */
-    [_COLEMAK] = LAYOUT_planck_grid(
-        KC_TAB,       KC_Q,         KC_W,         KC_F,
-        KC_P,         KC_G,         KC_J,         KC_L,
-        KC_U,         KC_Y,         KC_SCLN,      KC_MINS,
-
-        KC_BSPC,      KC_A,         KC_R,         KC_S,
-        KC_T,         KC_D,         KC_H,         KC_N,
-        KC_E,         KC_I,         KC_O,         KC_QUOT,
-
-        KC_LSFT,      KC_Z,         KC_X,         KC_C,
-        KC_V,         KC_B,         KC_K,         KC_M,
-        KC_COMM,      KC_DOT,       KC_SLSH,      KC_RSFT,
+enum planck_keycodes {
+    ampr = SAFE_RANGE,
+    astr,
+    at,
+    bsls,
+    circ,
+    dlr,
+    eql,
+    exlm,
+    grv,
+    hash,
+    lbrc,
+    lcbr,
+    lprn,
+    perc,
+    pipe,
+    plus,
+    rbrc,
+    rcbr,
+    rprn,
+    tild,
+
+    cmd,
+};
 
-        FUNC,         KC_LCTL,      KC_LALT,      KC_LGUI,
-        SYMB,         KC_ENT,       KC_SPC,       MOVE,
-        KC_RGUI,      KC_RALT,      KC_RCTL,      FUNC
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [BASE] = LAYOUT_planck_grid(
+         tab,    q,    w,    f,    p,    g,    j,    l,    u,    y, scln, mins,
+        bspc,    a,    r,    s,    t,    d,    h,    n,    e,    i,    o, quot,
+        lsft,    z,    x,    c,    v,    b,    k,    m, comm,  dot, slsh, rsft,
+        func, lctl, lalt,  cmd, move,  ent,  spc, symb,  cmd, ralt, rctl, func
     ),
 
-    /* QWERTY
-     * ,-----------------------------------------------------------------------.
-     * |Tab  |  Q  |  W  |  E  |  R  |  T  |  Y  |  U  |  I  |  O  |  P  |  -  |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Bksp |  A  |  S  |  D  |  F  |  G  |  H  |  J  |  K  |  L  |  ;  |  '  |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Shift|  Z  |  X  |  C  |  V  |  B  |  N  |  M  |  ,  |  .  |  /  |Shift|
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Func |Ctrl | Alt |Super|Symb |Enter|Space|Move |Super| Alt |Ctrl |Func |
-     * `-----------------------------------------------------------------------'
-     */
-    [_QWERTY] = LAYOUT_planck_grid(
-        KC_TAB,       KC_Q,         KC_W,         KC_E,
-        KC_R,         KC_T,         KC_Y,         KC_U,
-        KC_I,         KC_O,         KC_P,         KC_MINS,
-
-        KC_BSPC,      KC_A,         KC_S,         KC_D,
-        KC_F,         KC_G,         KC_H,         KC_J,
-        KC_K,         KC_L,         KC_SCLN,      KC_QUOT,
-
-        KC_LSFT,      KC_Z,         KC_X,         KC_C,
-        KC_V,         KC_B,         KC_N,         KC_M,
-        KC_COMM,      KC_DOT,       KC_SLSH,      KC_RSFT,
-
-        FUNC,         KC_LCTL,      KC_LALT,      KC_LGUI,
-        SYMB,         KC_ENT,       KC_SPC,       MOVE,
-        KC_RGUI,      KC_RALT,      KC_RCTL,      FUNC
+    [SYMB] = LAYOUT_planck_grid(
+         esc,   n7,   n5,   n3,   n1,   n9,   n8,   n0,   n2,   n4,   n6, dash,
+         del, bsls, hash, astr,  eql, pipe,   at, rprn, lprn,  dlr, ampr,  gbp,
+        caps,  grv, exlm, lbrc, rbrc, circ, tild, rcbr, lcbr, plus, perc, caps,
+        ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____
     ),
 
-    /* SYMB
-     * ,-----------------------------------------------------------------------.
-     * | Esc |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |ndash|
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * | Del |  !  |  @  |  #  |  $  |  %  |  ^  |  &  |  *  |  (  |  )  |  £  |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |  ~  |  `  |  +  |  =  |  |  |  \  |  [  |  ]  |  {  |  }  |     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |     |     |     |     |     |     |     |     |
-     * `-----------------------------------------------------------------------'
-     */
-    [_SYMB] = LAYOUT_planck_grid(
-        KC_ESC,       KC_1,         KC_2,         KC_3,
-        KC_4,         KC_5,         KC_6,         KC_7,
-        KC_8,         KC_9,         KC_0,         A(KC_MINS),
-
-        KC_DEL,       KC_EXLM,      KC_AT,        KC_HASH,
-        KC_DLR,       KC_PERC,      KC_CIRC,      KC_AMPR,
-        KC_ASTR,      KC_LPRN,      KC_RPRN,      A(KC_3),
-
-        _______,      KC_TILD,      KC_GRV,       KC_PLUS,
-        KC_EQL,       KC_PIPE,      KC_BSLS,      KC_LBRC,
-        KC_RBRC,      KC_LCBR,      KC_RCBR,      _______,
-
-        _______,      _______,      _______,      _______,
-        _______,      _______,      _______,      _______,
-        _______,      _______,      _______,      _______
+    [MOVE] = LAYOUT_planck_grid(
+         esc, xxxx, slup,  dtl,  dtr, xxxx, xxxx, home,   up,  end, xxxx, xxxx,
+         del, xxxx, sldn, tabl, tabr, xxxx, xxxx, left, down, rght, xxxx, xxxx,
+        ____, xxxx, xxxx, back,  fwd, xxxx, xxxx, pgdn, pgup, xxxx, xxxx, ____,
+        ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____
     ),
 
-    /* MOVE
-     * ,-----------------------------------------------------------------------.
-     * |     |     |     |     |     |     |CtrUp|Home | Up  | End |Caps |Mouse|
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |     |     |CtrL |Left |Down |Right|CtrR |     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |     |     |CtrDn|PgDn |PgUp |TabL |TabR |     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |     |     |     |     |     |     |     |     |
-     * `-----------------------------------------------------------------------'
-     */
-    [_MOVE] = LAYOUT_planck_grid(
-        AC(KC_A),     AC(KC_B),     AC(KC_C),     AC(KC_D),
-        AC(KC_E),     AC(KC_F),     C(KC_UP),     KC_HOME,
-        KC_UP,        KC_END,       KC_CAPS,      MOUSE,
-
-        AC(KC_G),     AC(KC_H),     AC(KC_I),     AC(KC_J),
-        AC(KC_K),     AC(KC_L),     C(KC_LEFT),   KC_LEFT,
-        KC_DOWN,      KC_RGHT,      C(KC_RIGHT),  XXXXXXX,
-
-        _______,      AC(KC_M),     AC(KC_N),     AC(KC_O),
-        AC(KC_P),     AC(KC_Q),     C(KC_DOWN),   KC_PGDN,
-        KC_PGUP,      SC(KC_TAB),   C(KC_TAB),    _______,
-
-        _______,      _______,      _______,      _______,
-        _______,      _______,      _______,      _______,
-        _______,      _______,      _______,      _______
+    [FUNC] = LAYOUT_planck_grid(
+        rset,   f1,   f2,   f3,   f4,   f5,   f6,   f7,   f8,   f9,  f10, volu,
+        powr,  f11,  f12,  f13,  f14,  f15,  f16,  f17,  f18,  f19,  f20, vold,
+        ____, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, xxxx, ____,
+        ____, ____, ____, ____, prev, mute, play, next, ____, ____, ____, ____
     ),
-
-    /* FUNC
-     * ,-----------------------------------------------------------------------.
-     * |Reset| F1  | F2  | F3  | F4  | F5  | F6  | F7  | F8  | F9  | F10 |VolUp|
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |Power| F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 |VolDn|
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |     |     |     |     |     |Clmak|Qwrty|     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |Prev |Mute |Play |Next |     |     |     |     |
-     * `-----------------------------------------------------------------------'
-     */
-    [_FUNC] = LAYOUT_planck_grid(
-        RESET,        KC_F1,        KC_F2,        KC_F3,
-        KC_F4,        KC_F5,        KC_F6,        KC_F7,
-        KC_F8,        KC_F9,        KC_F10,       KC_VOLU,
-
-        KC_POWER,     KC_F11,       KC_F12,       KC_F13,
-        KC_F14,       KC_F15,       KC_F16,       KC_F17,
-        KC_F18,       KC_F19,       KC_F20,       KC_VOLD,
-
-        _______,      XXXXXXX,      KC_HOME,      SC(KC_TAB),
-        C(KC_TAB),    KC_END,       XXXXXXX,      XXXXXXX,
-        XXXXXXX,      COLEMAK,      QWERTY,       _______,
-
-        _______,      _______,      _______,      _______,
-        KC_MPRV,      KC_MUTE,      KC_MPLY,      KC_MNXT,
-        _______,      _______,      _______,      _______
-    ),
-
-    /* MOUSE
-     * ,-----------------------------------------------------------------------.
-     * |     |     |CtrL |CtrU |CtrR | B5  |CtrU | ScL |Up   | ScR |     |     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     | Ac0 | Ac1 | Ac2 | B4  |CtrL |Left |Down |Right|CtrR |     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |Home | End | B3  |CtrD | ScD | ScU |TabL |TabR |     |
-     * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
-     * |     |     |     |     |     | B2  | B1  |     |     |     |     |     |
-     * `-----------------------------------------------------------------------'
-     */
-    [_MOUSE] = LAYOUT_planck_grid(
-        _______,      XXXXXXX,      C(KC_LEFT),   C(KC_UP),
-        C(KC_RIGHT),  KC_BTN5,      C(KC_UP),     KC_WH_R,
-        KC_MS_U,      KC_WH_L,      XXXXXXX,      XXXXXXX,
-
-        _______,      XXXXXXX,      KC_ACL0,      KC_ACL1,
-        KC_ACL2,      KC_BTN4,      C(KC_LEFT),   KC_MS_L,
-        KC_MS_D,      KC_MS_R,      C(KC_RIGHT),  XXXXXXX,
-
-        _______,      XXXXXXX,      XXXXXXX,      KC_HOME,
-        KC_END,       KC_BTN3,      C(KC_DOWN),   KC_WH_U,
-        KC_WH_D,      SC(KC_TAB),   C(KC_TAB),    _______,
-
-        _______,      _______,      _______,      _______,
-        _______,      KC_BTN2,      KC_BTN1,      _______,
-        _______,      _______,      _______,      _______
-    )
 };
 
-#ifdef AUDIO_ENABLE
-float colemak_song[][2] = SONG(COLEMAK_SOUND);
-float qwerty_song[][2] = SONG(QWERTY_SOUND);
-#endif
-
-void set_colemak(void) {
-#ifdef AUDIO_ENABLE
-    stop_all_notes();
-    PLAY_SONG(colemak_song);
-#endif
-    set_single_persistent_default_layer(_COLEMAK);
+bool send_string_if_keydown(keyrecord_t *record, const char *s) {
+    if (record->event.pressed) {
+        SEND_STRING(s);
+    }
+    return true;
 }
 
-void set_qwerty(void) {
-#ifdef AUDIO_ENABLE
-    stop_all_notes();
-    PLAY_SONG(qwerty_song);
-#endif
-    set_single_persistent_default_layer(_QWERTY);
-}
+int cmd_keys_down = 0;
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     switch (keycode) {
-        case COLEMAK:
-            if (record->event.pressed) {
-                set_colemak();
-            }
-            return false;
-        case QWERTY:
+        // Override the defualt auto shifted symbols to use SEND_STRING See
+        // https://github.com/qmk/qmk_firmware/issues/4072
+        case ampr:
+            return send_string_if_keydown(record, "&");
+        case astr:
+            return send_string_if_keydown(record, "*");
+        case at:
+            return send_string_if_keydown(record, "@");
+        case bsls:
+            return send_string_if_keydown(record, "\\");
+        case circ:
+            return send_string_if_keydown(record, "^");
+        case dlr:
+            return send_string_if_keydown(record, "$");
+        case eql:
+            return send_string_if_keydown(record, "=");
+        case exlm:
+            return send_string_if_keydown(record, "!");
+        case grv:
+            return send_string_if_keydown(record, "`");
+        case hash:
+            return send_string_if_keydown(record, "#");
+        case lbrc:
+            return send_string_if_keydown(record, "[");
+        case lcbr:
+            return send_string_if_keydown(record, "{");
+        case lprn:
+            return send_string_if_keydown(record, "(");
+        case perc:
+            return send_string_if_keydown(record, "%");
+        case pipe:
+            return send_string_if_keydown(record, "|");
+        case plus:
+            return send_string_if_keydown(record, "+");
+        case rbrc:
+            return send_string_if_keydown(record, "]");
+        case rcbr:
+            return send_string_if_keydown(record, "}");
+        case rprn:
+            return send_string_if_keydown(record, ")");
+        case tild:
+            return send_string_if_keydown(record, "~");
+
+        // cmd + cmd -> cmd + ctl
+        case cmd:
             if (record->event.pressed) {
-                set_qwerty();
-            }
-            return false;
-        case SYMB:
-            if (record->event.pressed) {
-                layer_off(_MOUSE);
-                layer_on(_SYMB);
-            } else {
-                layer_off(_SYMB);
-            }
-            return false;
-        case MOVE:
-            if (record->event.pressed) {
-                layer_off(_MOUSE);
-                layer_on(_MOVE);
+                if (cmd_keys_down == 0) {
+                    register_code(KC_LCMD);
+                } else {
+                    register_code(KC_LCTL);
+                }
+                cmd_keys_down++;
             } else {
-                layer_off(_MOVE);
+                if (cmd_keys_down == 1) {
+                    unregister_code(KC_LCMD);
+                } else {
+                    unregister_code(KC_LCTL);
+                }
+                cmd_keys_down--;
             }
-            return false;
-        case FUNC:
-            if (record->event.pressed) {
-                layer_off(_MOUSE);
-                layer_on(_FUNC);
-            } else {
-                layer_off(_FUNC);
-            }
-            return false;
-        case MOUSE:
-            if (record->event.pressed) {
-                layer_on(_MOUSE);
-            }
-            return false;
-
-        // Override the defualt auto shifted symbols to use SEND_STRING
-        // See https://github.com/qmk/qmk_firmware/issues/4072
-        case KC_EXLM:
-            if (record->event.pressed) { SEND_STRING("!"); }
-            return false;
-        case KC_AT:
-            if (record->event.pressed) { SEND_STRING("@"); }
-            return false;
-        case KC_HASH:
-            if (record->event.pressed) { SEND_STRING("#"); }
-            return false;
-        case KC_DLR:
-            if (record->event.pressed) { SEND_STRING("$"); }
-            return false;
-        case KC_PERC:
-            if (record->event.pressed) { SEND_STRING("%"); }
-            return false;
-        case KC_CIRC:
-            if (record->event.pressed) { SEND_STRING("^"); }
-            return false;
-        case KC_AMPR:
-            if (record->event.pressed) { SEND_STRING("&"); }
-            return false;
-        case KC_ASTR:
-            if (record->event.pressed) { SEND_STRING("*"); }
-            return false;
-        case KC_LPRN:
-            if (record->event.pressed) { SEND_STRING("("); }
-            return false;
-        case KC_RPRN:
-            if (record->event.pressed) { SEND_STRING(")"); }
-            return false;
-        case KC_TILD:
-            if (record->event.pressed) { SEND_STRING("~"); }
-            return false;
-        case KC_GRV:
-            if (record->event.pressed) { SEND_STRING("`"); }
-            return false;
-        case KC_PLUS:
-            if (record->event.pressed) { SEND_STRING("+"); }
-            return false;
-        case KC_EQL:
-            if (record->event.pressed) { SEND_STRING("="); }
-            return false;
-        case KC_PIPE:
-            if (record->event.pressed) { SEND_STRING("|"); }
-            return false;
-        case KC_BSLS:
-            if (record->event.pressed) { SEND_STRING("\\"); }
-            return false;
-        case KC_LBRC:
-            if (record->event.pressed) { SEND_STRING("["); }
-            return false;
-        case KC_RBRC:
-            if (record->event.pressed) { SEND_STRING("]"); }
-            return false;
-        case KC_LCBR:
-            if (record->event.pressed) { SEND_STRING("{"); }
-            return false;
-        case KC_RCBR:
-            if (record->event.pressed) { SEND_STRING("}"); }
-            return false;
+            return true;
     }
     return true;
 }
index 99b6dfbeff00f28a7c7aee1251adf3e96de816d9..190c2b23a552fb0ff61d7d4650c4380571643802 100644 (file)
@@ -1,11 +1,11 @@
-# callums planck layout
+# callum's planck layout
 
 This is a layout for the grid planck, built with a few ideals in mind:
 
 - Consistent and minimal response times should be maintained. Keys that react
   differently depending on whether they are tapped or held, keys that react
-  differently if they are double tapped, etc. should be avoided -- they
-  inevitably send their keycode later than a normal key -- interrupting the
+  differently if they are double tapped, etc. should be avoided  they
+  inevitably send their keycode later than a normal key  interrupting the
   immediate feedback from the screen. Therefore we restrict ourselves to
   chording as our only means of getting more than one symbol out of a single
   physical key.
@@ -17,7 +17,22 @@ This is a layout for the grid planck, built with a few ideals in mind:
 - There should be two of every modifier (one on each side), otherwise certain
   long key combinations become hard to make.
 
-A layout graphic can be found [here][keyboard-layout-editor] (excludes window
-management keys).
+- It should be possible to do things you might want to do while using the mouse
+  with only the left hand (e.g. change tabs, navigate back or forwards in
+  browser history).
 
-[keyboard-layout-editor]: http://www.keyboard-layout-editor.com/#/gists/ade5ec1f814bf83046489a4b632575ff
+- Symbols should be arranged so that the most frequently used are easiest to
+  reach. This includes numbers, and lower numbers are more commonly used than
+  higher ones. (number arrangement borrowed from [dustypomeleau's minidox
+  layout][].
+
+Layout rendered with [keyboard-layout-editor.com][]:
+
+![](https://callum-oakley.github.io/images/keymap.png)
+
+The only behaviour not captured in this graphic is: pressing both cmd keys will
+send cmd+ctrl. See [keymap.c][] for details.
+
+[dustypomeleau's minidox layout]: https://github.com/qmk/qmk_firmware/tree/master/keyboards/minidox/keymaps/dustypomerleau
+[keyboard-layout-editor.com]: http://www.keyboard-layout-editor.com
+[keymap.c]: keymap.c
index 182322ae2305bc7a4a17adc79c6e3da424ae207c..db87d5ecec7afc89edda626343e5db270a4e8a73 100644 (file)
@@ -3,7 +3,7 @@
 #   the appropriate keymap folder that will get included automatically
 #
 BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+MOUSEKEY_ENABLE = no       # Mouse keys(+4700)
 EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
 CONSOLE_ENABLE = no         # Console for debug(+400)
 COMMAND_ENABLE = yes        # Commands for debug and configuration