浏览代码

[Keymap] Update personal keymaps, add Corne keymap, and update non-kc LAYOUT for Iris (#12273)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
David Rambo 3 年之前
父节点
当前提交
170de06475

+ 84 - 0
keyboards/crkbd/keymaps/davidrambo/config.h

@@ -0,0 +1,84 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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/>.
+*/
+
+#pragma once
+
+//#define USE_MATRIX_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define RGBLIGHT_SPLIT
+
+//#define SSD1306OLED
+
+#define TAPPING_TERM 200
+#define PERMISSIVE_HOLD
+
+#ifdef RGB_MATRIX_ENABLE
+    #define RGB_MATRIX_STARTUP_HUE 231
+    #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+    #define RGB_MATRIX_TYPING_MEATMAP_DECREASE_DELAY_MS 50
+    // #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+    // #   define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+    #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
+    #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+    // #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
+    // #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
+    #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
+    #define RGB_MATRIX_HUE_STEP 8
+    #define RGB_MATRIX_SAT_STEP 8
+    #define RGB_MATRIX_VAL_STEP 8
+    #define RGB_MATRIX_SPD_STEP 10
+
+    /* Disable the animations you don't want/need.  You will need to disable a good number of these    *
+     * because they take up a lot of space.  Disable until you can successfully compile your firmware. */
+     #define DISABLE_RGB_MATRIX_ALPHAS_MODS
+     #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+     #define DISABLE_RGB_MATRIX_BREATHING
+     #define DISABLE_RGB_MATRIX_CYCLE_ALL
+     #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+     #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+     #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+     #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+     #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+     #define DISABLE_RGB_MATRIX_DUAL_BEACON
+     #define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+     #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+     #define DISABLE_RGB_MATRIX_RAINDROPS
+     #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+    // #   define DISABLE_RGB_MATRIX_TYPING_HEATMAP
+     #define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+     #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+     #define DISABLE_RGB_MATRIX_SPLASH
+     #define DISABLE_RGB_MATRIX_MULTISPLASH
+     #define DISABLE_RGB_MATRIX_SOLID_SPLASH
+     #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#endif

+ 126 - 0
keyboards/crkbd/keymaps/davidrambo/keymap.c

@@ -0,0 +1,126 @@
+/* Copyright 2021 David Rambo
+ *
+ * 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
+
+//extern uint8_t is_master;
+
+
+enum custom_layers {
+    _COLEMAK,
+    _SYMBOL,
+    _NAVIGATION,
+    _FKEYS,
+};
+
+//keycode shorthands
+#define SYM  MO(1)
+#define NAV  LT(2, KC_ESC)
+#define FKEY MO(3)
+
+//aliases for clarity in layering
+#define SftEnt SFT_T(KC_ENT)   // Shift when held, Enter when tapped
+#define BSCTL  LCTL_T(KC_BSPC) // Ctrl when held, Backspace when tapped
+#define CTAB   LCTL(KC_TAB)
+#define ATAB   LALT(KC_TAB)
+
+//aliases for Navigation layer
+#define CBSPC LCTL(KC_BSPC)  // delete whole word
+#define C_CL   LCTL(KC_LEFT) // move cursor one word back
+#define C_CR   LCTL(KC_RGHT) // move cursor one word forward
+
+//internet browser tab shortcuts and window swapping
+#define CTLPGDN LCTL(KC_PGDN)
+#define CTLPGUP LCTL(KC_PGUP)
+
+#define G_GRV   LGUI(KC_GRV)
+#define SftEnt  SFT_T(KC_ENT)
+
+enum custom_keycodes {
+  PLACEHOLDER = SAFE_RANGE,
+  SET_RGB,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_COLEMAK] = LAYOUT(
+  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
+      KC_TAB,    KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,                        KC_J,    KC_L,    KC_U,    KC_Y, KC_SCLN, KC_BSPC,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+      NAV   ,    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,  SftEnt,
+  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
+                                          KC_LALT, KC_LGUI,   BSCTL,   KC_SPC,   SYM ,   FKEY
+                                      //`--------------------------'  `--------------------------'
+
+  ),
+
+  [_SYMBOL] = LAYOUT(
+  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
+      KC_LBRC,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                         KC_6,    KC_7,    KC_8,    KC_9,    KC_0, KC_RBRC,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+      KC_BSLS, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC,                      KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+      _______, KC_HOME, KC_END,  _______, _______, _______,                       KC_GRV, KC_MINS, KC_PGUP, _______, _______, _______,
+  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
+                                          _______, _______, _______,    _______, _______, KC_PGDN
+                                      //`--------------------------'  `--------------------------'
+  ),
+
+  [_NAVIGATION] = LAYOUT(
+  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
+      _______, _______, _______, _______, _______, _______,                      CTAB ,   C_CL  ,   KC_UP,   C_CR  ,  KC_DEL, _______,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+      _______, _______, _______, _______, _______, _______,                     CTLPGUP, KC_LEFT , KC_DOWN, KC_RGHT, CTLPGDN, _______,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+        RESET, _______, _______, _______, _______, _______,                      ATAB   , CBSPC , KC_HOME, KC_END,    G_GRV , _______,
+  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
+                                          _______, _______, _______,    _______, _______, KC_RALT
+                                      //`--------------------------'  `--------------------------'
+  ),
+
+  [_FKEYS] = LAYOUT(
+  //,-----------------------------------------------------.                    ,-----------------------------------------------------.
+       KC_F12,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,                        KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10,  KC_F11,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+      _______, RGB_SAI, RGB_HUI, RGB_VAI, RGB_TOG, SET_RGB,                     _______, _______, _______, _______, _______,  _______,
+  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|
+      _______, RGB_MOD, RGB_M_P, KC_VOLD, KC_VOLU, KC_MPLY,                     _______, _______, _______, _______, _______, _______,
+  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|
+                                          _______, _______, _______,     _______, _______, _______
+                                      //`--------------------------'  `--------------------------'
+  )
+};
+
+void keyboard_post_init_user(void) {
+//    rgb_matrix_sethsv(191, 43, 81);
+    rgblight_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+    switch (keycode) {
+        
+        case SET_RGB:
+            if (record->event.pressed) {
+                rgb_matrix_sethsv_noeeprom(18, 86, 95);
+            }
+            return false;
+            break;
+
+    }
+    return true;
+}

+ 1 - 0
keyboards/crkbd/keymaps/davidrambo/readme.md

@@ -0,0 +1 @@
+This is my Corne keymap, which uses Colemak and shortcuts for Linux and Windows.

+ 3 - 0
keyboards/crkbd/keymaps/davidrambo/rules.mk

@@ -0,0 +1,3 @@
+RGBLIGHT_ENABLE = no
+RGB_MATRIX_ENABLE = yes
+BOOTLOADER = atmel-dfu

+ 3 - 3
keyboards/gh60/satan/keymaps/bri/keymap.c

@@ -5,8 +5,8 @@
 #define _FL 1
 #define _FL 1
 #define _NAV 2
 #define _NAV 2
 
 
-#define A_LEFT  LALT(KC_LEFT)
-#define A_RGHT  LALT(KC_RGHT)
+#define ALEFT  LALT(KC_LEFT)
+#define ARGHT  LALT(KC_RGHT)
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* Keymap _BL: (Base Layer) Default Layer
   /* Keymap _BL: (Base Layer) Default Layer
@@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     
     
 [_NAV] = LAYOUT_60_ansi(
 [_NAV] = LAYOUT_60_ansi(
     _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
     _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
-    _______,_______,_______,_______,_______,_______,_______,A_LEFT , KC_UP ,A_RGHT ,_______,_______,_______,_______, \
+    _______,_______,_______,_______,_______,_______,_______,ALEFT  , KC_UP ,ARGHT  ,_______,_______,_______,_______, \
     _______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,        _______, \
     _______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,        _______, \
     _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
     _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
     _______,_______,_______,              _______,                        _______,_______,_______,_______),
     _______,_______,_______,              _______,                        _______,_______,_______,_______),

+ 59 - 67
keyboards/keebio/iris/keymaps/davidrambo/keymap.c

@@ -1,35 +1,30 @@
 #include QMK_KEYBOARD_H
 #include QMK_KEYBOARD_H
 
 
-extern keymap_config_t keymap_config;
-
 //keycode shorthands
 //keycode shorthands
-#define KC____  KC_TRNS // three underscores "___" for transparent
-#define KC_SYM  MO(3)
-#define KC_MAC  TO(0)
-#define KC_PC   TO(1)
-#define KC_GM   TO(2)
-#define KC_NAVMAC LT(4, KC_TAB)
-#define KC_NAVPC  LT(5, KC_TAB)
+#define MACNAV LT(4, KC_TAB)
+#define PCNAV  LT(5, KC_TAB)
 
 
 //text editor shortcuts for NAV and NAVPC
 //text editor shortcuts for NAV and NAVPC
-#define KC_AL   LALT(KC_LEFT)
-#define KC_AR   LALT(KC_RGHT)
-#define KC_CL   LCTL(KC_LEFT)
-#define KC_CR   LCTL(KC_RGHT)
-#define KC_ABSPC LALT(KC_BSPC)
-#define KC_CBSPC LCTL(KC_BSPC)
+#define ALEFT   LALT(KC_LEFT)
+#define ARGHT   LALT(KC_RGHT)
+#define CLEFT   LCTL(KC_LEFT)
+#define CRGHT   LCTL(KC_RGHT)
+#define ABSPC LALT(KC_BSPC)
+#define CBSPC LCTL(KC_BSPC)
 
 
 //internet browser tab shortcuts and window swapping for Mac and Windows
 //internet browser tab shortcuts and window swapping for Mac and Windows
-#define KC_GSL  LGUI(S(KC_LEFT))
-#define KC_GSR  LGUI(S(KC_RGHT))
-#define KC_CPGD LCTL(KC_PGDN)
-#define KC_CPGU LCTL(KC_PGUP)
+#define GSL  LGUI(S(KC_LEFT))
+#define GSR  LGUI(S(KC_RGHT))
+#define CTLPGDN LCTL(KC_PGDN)
+#define CTLPGUP LCTL(KC_PGUP)
+
+#define CMBS  GUI_T(KC_BSPC)
+#define CTBS  CTL_T(KC_BSPC)
+#define C_TAB LCTL(KC_TAB)
+#define G_TAB LGUI(KC_TAB)
+#define A_TAB LALT(KC_TAB)
 
 
-#define KC_CMBS  GUI_T(KC_BSPC)
-#define KC_CTBS  CTL_T(KC_BSPC)
-#define KC_C_TAB LCTL(KC_TAB)
-#define KC_G_TAB LGUI(KC_TAB)
-#define KC_A_TAB LALT(KC_TAB)
+#define SFLK TD(SFT_LCK)     // alias for tapdance
 
 
 //layer shorthands
 //layer shorthands
 #define _COLEMAK 0
 #define _COLEMAK 0
@@ -39,101 +34,98 @@ extern keymap_config_t keymap_config;
 #define _NAVMAC 4
 #define _NAVMAC 4
 #define _NAVPC 5
 #define _NAVPC 5
 
 
-enum {
-//	SFT_LCK //tapdance declarations
+enum custom_keycodes {
+    SFT_LCK, //tapdance declarations
     COLEMAK = 0,
     COLEMAK = 0,
     PC,
     PC,
     GAME,
     GAME,
     SYMBOL,
     SYMBOL,
     NAV, //Navigation layer for Mac Colemak
     NAV, //Navigation layer for Mac Colemak
     NAVPC, //Navigation layer for PC Colemak
     NAVPC, //Navigation layer for PC Colemak
-    SFT_LCK //tapdance declaration
 };
 };
 
 
-#define KC_SFLK TD(SFT_LCK)     // alias for tapdance
-
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
 	[_COLEMAK] = LAYOUT(
 	[_COLEMAK] = LAYOUT(
-  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
-     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_GRV , KC_Q  , KC_W  , KC_F  , KC_P  , KC_G  ,                KC_J  , KC_L  , KC_U  , KC_Y  ,KC_SCLN,KC_BSPC,
-  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
-   KC_NAVMAC, KC_A  , KC_R  , KC_S  , KC_T  , KC_D  ,                KC_H  , KC_N  , KC_E  , KC_I  , KC_O  ,KC_QUOT,
-  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
-     KC_SFLK, KC_Z  , KC_X  , KC_C  , KC_V  , KC_B  , KC_PC ,     KC_ENT , KC_K  , KC_M  ,KC_COMM, KC_DOT,KC_SLSH,KC_RSFT,
-  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
-                       KC_LCTL,KC_LGUI,KC_CMBS,         KC_SPC, KC_SYM, KC_LALT
-  //                  `----+----+----'        `----+----+----'
+  //,------+------+------+------+------+------.                    ,------+------+------+------+------+------.
+     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_GRV, KC_Q , KC_W , KC_F , KC_P, KC_G,                       KC_J  , KC_L , KC_U , KC_Y , KC_SCLN,KC_BSPC,
+  //|------+------+------+------+------+------|                    |------+------+------+------+------+------|
+     MACNAV, 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 , TO(1),        KC_ENT, KC_K, KC_M , KC_COMM,KC_DOT,KC_SLSH,KC_RSFT,
+  //`------+------+------+------+------+----+------/         \-----+------+------+------+------+------+------'
+                              KC_LCTL, KC_LALT, CMBS,         KC_SPC, MO(3), KC_RALT
+  //                          `------+------+------'           `------+------+------'
   ),
   ),
 
 
     [_PC] = LAYOUT(
     [_PC] = LAYOUT(
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,          KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,          KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    _______, _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______,
         
         
-    KC_NAVPC,KC____ , KC____ , KC____ , KC____ , KC____ ,          KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    PCNAV  , _______, _______, _______, _______, _______,                 _______, _______, _______, _______, _______, _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ , KC_GM, KC____, KC____ , KC____ , KC____ , KC____ , KC____ , KC____ , 
+    _______, _______, _______, _______, _______, _______, TO(2),    _______, _______, _______, _______, _______, _______, _______, 
         
         
-                      KC_LGUI , KC_LCTL , KC_CTBS ,    KC____ , KC____ , KC____ 
+                                    KC_LALT, KC_LGUI, CTBS,            _______, _______, _______
     ),
     ),
    
    
     [_GAME] = LAYOUT(
     [_GAME] = LAYOUT(
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,          KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
-        
-     KC_B  ,  KC_T  ,  KC_Q  ,  KC_W  ,  KC_E  ,  KC_R  ,          KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    _______, _______, _______, _______, _______, _______,            _______, _______, _______, _______, _______, _______,
+       
+    KC_B   , KC_T   , KC_Q   , KC_W   , KC_E   , KC_R   ,                _______, _______, _______, _______, _______, _______,
         
         
-    KC_TAB , KC_LSFT,  KC_A  ,  KC_S  ,  KC_D  ,  KC_F  ,          KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    KC_TAB , KC_LSFT, KC_A   , KC_S   , KC_D   , KC_F   ,                _______, _______, _______, _______, _______, _______,
         
         
-    KC_LALT, KC_LCTL,  KC_Z  ,  KC_X  ,  KC_C  ,  KC_V  ,  KC_M,   KC_P , KC____, KC____ , KC____ , KC____ , KC____ , KC____ , 
+    KC_LALT, KC_LCTL, KC_Z   , KC_X   , KC_C   , KC_V   , KC_M,   KC_P , _______, _______, _______, _______, _______, _______, 
         
         
-                          KC_G   ,  KC_I  , KC_SPC,    KC_BSPC, KC_MAC, KC____ 
+                                   KC_G, KC_I, KC_SPC,                KC_BSPC, TO(0), _______
     ), 
     ), 
     
     
     [_SYMBOL] = LAYOUT(
     [_SYMBOL] = LAYOUT(
     
     
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    KC_F12 , KC_F1  , KC_F2 , KC_F3  , KC_F4  , KC_F5,                      KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11,
     
     
-    KC_LBRC,  KC_1  ,  KC_2  ,  KC_3  ,  KC_4  ,  KC_5  ,          KC_6  ,  KC_7  ,  KC_8  ,  KC_9  ,  KC_0  , KC_RBRC,
+    KC_LBRC, KC_1   , KC_2  , KC_3   , KC_4   , KC_5,                       KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC,
         
         
-    KC_BSLS, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC,         KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
+    KC_BSLS, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC,                    KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL,
         
         
-    KC____ , KC_HOME, KC_END , KC_VOLD, KC_VOLU, KC_MPLY,KC____,  KC____,KC____, KC_MINS, KC____ , KC____ , KC____ , KC____ , 
+    _______, KC_HOME, KC_END, KC_VOLD, KC_VOLU, KC_MPLY, _______,   _______, _______, KC_MINS, _______, _______, _______, _______, 
         
         
-                        KC____ , KC____ , KC____,      KC____, KC____ , KC____ 
+                           _______, _______, _______,                    _______, _______, _______
     ),
     ),
    
    
     [_NAVMAC] = LAYOUT(
     [_NAVMAC] = LAYOUT(
     
     
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    RESET  , _______, _______, _______, _______, _______,                    _______, _______, _______, _______, _______, _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC_C_TAB, KC_AL ,  KC_UP ,  KC_AR , KC_DEL , KC____ ,
+    _______, _______, _______, _______, _______, _______,                    C_TAB,   ALEFT  ,  KC_UP , ARGHT  , KC_DEL , _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC_GSL , KC_LEFT, KC_DOWN, KC_RGHT, KC_GSR , KC____ ,
+    _______, _______, _______, _______, _______, _______,                    GSL ,    KC_LEFT, KC_DOWN, KC_RGHT, GSR    , _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,KC____,  KC____,KC_G_TAB,KC_ABSPC, KC____ , KC____ , KC____ , KC____ , 
+    _______, _______, _______, _______, _______, _______, _______,  _______, G_TAB,   ABSPC  , _______, _______, _______, _______, 
         
         
-                        KC____ , KC____ , KC____ ,       KC____ , KC____ , KC____ 
+                                   _______, _______, _______,         _______, _______, _______
     ),
     ),
     
     
     [_NAVPC] = LAYOUT(
     [_NAVPC] = LAYOUT(
     
     
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,
+    RESET , _______, _______, _______, _______, _______,                    _______, _______, _______, _______, _______, _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC_C_TAB, KC_CL ,  KC_UP ,  KC_CR , KC_DEL , KC____ ,
+    _______, _______, _______, _______, _______, _______,                   C_TAB  , CLEFT  , KC_UP  , CRGHT  , KC_DEL , _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,         KC_CPGU, KC_LEFT, KC_DOWN, KC_RGHT, KC_CPGD, KC____ ,
+    _______, _______, _______, _______, _______, _______,                   CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
         
         
-    KC____ , KC____ , KC____ , KC____ , KC____ , KC____ ,KC____,  KC____,KC_A_TAB,KC_CBSPC, KC____ , KC____ , KC____ , KC____ , 
+    _______, _______, _______, _______, _______, _______,_______,  _______, A_TAB  , CBSPC, _______, _______, _______, _______, 
         
         
-                        KC____ , KC____ , KC____ ,       KC____ , KC____ , KC____ 
+                              _______, _______, _______,                _______, _______, _______
     ),
     ),
    
    
 };
 };
 
 
-// Shift vs. capslock function. From bbaserdem's Planck keymap.
+// Shift vs. capslock function. From bbaserdem's Planck keymap (since deprecated).
 void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
 void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
     if (state->count == 1) {
     if (state->count == 1) {
         register_code (KC_LSFT);
         register_code (KC_LSFT);

+ 29 - 10
keyboards/planck/keymaps/davidrambo/keymap.c

@@ -1,19 +1,38 @@
+/* Copyright 2021 David Rambo
+ *
+ * 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
 #include QMK_KEYBOARD_H
 
 
 #define A_BSPC  LALT(KC_BSPC)
 #define A_BSPC  LALT(KC_BSPC)
 #define A_LEFT  LALT(KC_LEFT)
 #define A_LEFT  LALT(KC_LEFT)
 #define A_RGHT  LALT(KC_RGHT)
 #define A_RGHT  LALT(KC_RGHT)
 #define C_TAB   LCTL(KC_TAB)
 #define C_TAB   LCTL(KC_TAB)
-#define GSL     LGUI(S(KC_LEFT))
-#define GSR     LGUI(S(KC_RGHT))
+#define CTLPGUP LCTL(KC_PGUP) // back one tab in Brave
+#define CTLPGDN LCTL(KC_PGDN) // forward one tab in Brave
 #define G_TAB   LGUI(KC_TAB)
 #define G_TAB   LGUI(KC_TAB)
 #define G_GRV   LGUI(KC_GRV)
 #define G_GRV   LGUI(KC_GRV)
 #define SftEnt  SFT_T(KC_ENT)
 #define SftEnt  SFT_T(KC_ENT)
 #define NAV     LT(2, KC_TAB)
 #define NAV     LT(2, KC_TAB)
+#define RECT    LCA_T(KC_DEL) // Ctrl+Alt is the basis for Rectangle WM shortcuts
 
 
-#define _COLEMAK 0
-#define _SYMBOL 1
-#define _NAVIGATION 2
+enum custom_layers {
+    _COLEMAK,
+    _SYMBOL,
+    _NAVIGATION,
+}
 
 
 //tapdance declarations
 //tapdance declarations
 enum {
 enum {
@@ -40,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   KC_GESC, KC_Q   , KC_W   , KC_F   , KC_P   , KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
   KC_GESC, KC_Q   , KC_W   , KC_F   , KC_P   , KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
   NAV    , KC_A   , KC_R   , KC_S   , KC_T   , KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
   NAV    , KC_A   , KC_R   , KC_S   , KC_T   , KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
   SftLck , KC_Z   , KC_X   , KC_C   , KC_V   , KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, SftEnt ,
   SftLck , KC_Z   , KC_X   , KC_C   , KC_V   , KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, SftEnt ,
-  KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC,  KC_SPC,  MO(1),   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
+  RECT   , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC,  KC_SPC,  MO(1),   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
   ),
   ),
 
 
 /* Symbol
 /* Symbol
@@ -49,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * |  \|  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |  =+  |
  * |  \|  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |  =+  |
  * |------+------+------+------+------+------|------+------+------+------+------+------|
  * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      | Home | End  | ScUp | ScDn | BRMD | BRMU |  -_  |Pg Up |      |   /  |      |
+ * |      | Home | End  |      |      | BRMD | BRMU |  -_  |Pg Up |      |   /  |      |
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |  `~  |      |      |      |Alt(Bk)|            |      |Pg Dn | Vol- | Vol+ |      |
  * |  `~  |      |      |      |Alt(Bk)|            |      |Pg Dn | Vol- | Vol+ |      |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
@@ -58,15 +77,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   KC_LBRC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC,
   KC_LBRC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC,
   KC_BSLS, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
   KC_BSLS, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
   _______, KC_HOME, KC_END , _______, _______, KC_BRMD, KC_BRMU, KC_MINS, KC_PGUP, _______, _______, _______,
   _______, KC_HOME, KC_END , _______, _______, KC_BRMD, KC_BRMU, KC_MINS, KC_PGUP, _______, _______, _______,
-  KC_GRV,  _______, _______, _______, A_BSPC , _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE
+  _______, KC_GRV , _______, _______, _______ , _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE
   ),
   ),
 
 
 /* Navigation*/
 /* Navigation*/
 
 
 [_NAVIGATION] = LAYOUT_planck_grid(
 [_NAVIGATION] = LAYOUT_planck_grid(
     _______, _______, _______, _______, _______, _______, C_TAB  , A_LEFT,  KC_UP,   A_RGHT , KC_DEL , _______,
     _______, _______, _______, _______, _______, _______, C_TAB  , A_LEFT,  KC_UP,   A_RGHT , KC_DEL , _______,
-    _______, _______, _______, _______, _______, _______, GSL    , KC_LEFT, KC_DOWN, KC_RGHT, GSR    , _______,
-    _______, _______, _______, _______, _______, _______, G_TAB  , KC_HOME, _______, KC_END,  G_GRV  , _______,
+    _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
+    _______, _______, _______, _______, _______, _______, G_TAB  , A_BSPC , KC_HOME, KC_END,  G_GRV  , _______,
     RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
     RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 )
 )
 };
 };

+ 20 - 0
keyboards/preonic/keymaps/davidrambo/config.h

@@ -0,0 +1,20 @@
+/* Copyright 2021 David Rambo
+ *
+ * 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/>.
+ */
+
+#pragma once
+
+#define TAPPING_TERM 200
+#define PERMISSIVE_HOLD

+ 179 - 0
keyboards/preonic/keymaps/davidrambo/keymap.c

@@ -0,0 +1,179 @@
+/* Copyright 2021 David Rambo
+ *
+ * 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
+
+//aliases for clarity in layering
+#define A_BSPC  LALT(KC_BSPC) // delete whole word in Mac
+#define C_BSPC  LCTL(KC_BSPC) // delete whole word in PC
+#define A_LEFT  LALT(KC_LEFT) // move cursor whole word back in Mac
+#define A_RGHT  LALT(KC_RGHT) // move cursor whole word forward in Mac
+#define C_RGHT  LCTL(KC_RGHT) // move cursor whole word back in PC
+#define C_LEFT  LCTL(KC_LEFT) // move cursor whole word forward in PC
+#define SftEnt  SFT_T(KC_ENT)
+#define BS_GUI  LGUI_T(KC_BSPC)
+#define BS_CTL  LCTL_T(KC_BSPC)
+#define RECT    LCA_T(KC_DEL) // Ctrl+Alt is the basis for Rectangle WM
+
+// internet browser tab shortcuts and window/application swapping for Mac and Win
+#define GSL     LGUI(S(KC_LEFT)) // back one tab in Safari
+#define GSR     LGUI(S(KC_RGHT)) // forward one tab in Safari
+#define CTLPGUP LCTL(KC_PGUP)   // back one tab on PC
+#define CTLPGDN LCTL(KC_PGDN)   // forward one tab on PC
+#define G_TAB   LGUI(KC_TAB)    // Mac: switch applications
+#define G_GRV   LGUI(KC_GRV)    // Mac: switch between windows within an application
+#define A_TAB   LALT(KC_TAB)
+#define C_TAB   LCTL(KC_TAB)
+
+// navigKC_ation layers for both Mac OS X and Windows
+#define NAVMAC  LT(5, KC_ESC)
+#define NAVPC   LT(6, KC_ESC)
+#define NAVQUD  LT(7, KC_ESC)
+
+enum custom_layers {
+    _COLEMAK,
+    _PC, 
+    _QUD,
+    _GAME,
+    _SYMBOL,
+    _NAVMAC,
+    _NAVPC,
+    _NAVQUD,
+}
+
+//tapdance declarations
+enum {
+  SFT_LCK
+};
+
+#define SftLck TD(SFT_LCK) /* alias for tapdance */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ESC` |   A  |   R  |   S  |   T  |   D  |   H  |   N  |   E  |   I  |   O  |  "   |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |SftLck|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |  /?  |SftEnt|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del  |PrnSc | GUI  | Alt  | Ctrl |BsGui | Space|Symbol| Left | Down |  Up  |Right |
+ * `-----------------------------------------------------------------------------------'
+*/
+
+[_COLEMAK] = LAYOUT_preonic_grid(
+  KC_GRV , KC_1,    KC_2,    KC_3,    KC_4,    KC_5  , KC_6,   KC_7,   KC_8,    KC_9,    KC_0,    TG(1)  ,
+  KC_TAB , KC_Q,    KC_W,    KC_F,    KC_P,    KC_G  , KC_J,   KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
+  NAVMAC , KC_A,    KC_R,    KC_S,    KC_T,    KC_D  , KC_H,   KC_N,   KC_E,    KC_I,    KC_O,    KC_QUOT,
+  SftLck , KC_Z,    KC_X,    KC_C,    KC_V,    KC_B  , KC_K,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH, SftEnt ,
+  RECT   , KC_RCTL, KC_LGUI, KC_LCTL, KC_LALT, BS_GUI, KC_SPC, MO(4),  KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
+  ),
+  
+[_PC] = LAYOUT_preonic_grid(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(2)  ,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  NAVPC  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  KC_DEL , KC_PSCR, KC_LCTL, KC_LALT, KC_LGUI, BS_CTL , KC_SPC ,  MO(4) , _______, _______, _______, _______
+  ),
+  
+[_QUD] = LAYOUT_preonic_grid(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(3)  ,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  NAVQUD , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  KC_DEL , KC_PSCR, KC_LGUI, KC_LALT, KC_LCTL, NAVQUD , KC_SPC,  MO(4)  , _______, _______, _______, _______
+  ),
+
+[_GAME] = LAYOUT_preonic_grid(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0)  ,
+  KC_TAB , KC_T   , KC_Q   , KC_W   , KC_E   , KC_R   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , _______,
+  KC_TAB , KC_LSFT, KC_A   , KC_S   , KC_D   , KC_F   , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, _______,
+  KC_LALT, KC_LCTL, KC_Z   , KC_X   , KC_C   , KC_V   , KC_N   , KC_M   , _______, _______, _______, _______,
+  _______, _______, _______, KC_G   , KC_B   , KC_SPC , KC_I   , MO(4)  , _______, _______, _______, _______
+  ),
+
+/* Symbol
+ * ,-----------------------------------------------------------------------------------.
+ * |   [  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   ]  |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |  \|  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |  =+  |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |      | Home | End  |      | Play | BRMD | BRMU |  -_  |Pg Up |      |   /  |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |  `~  |      |      |      |      |      |      |      |Pg Dn | Vol- | Vol+ |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SYMBOL] = LAYOUT_preonic_grid(
+  KC_F12 , KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
+  KC_LBRC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC,
+  KC_BSLS, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
+  _______, KC_HOME, KC_END , KC_MNXT, KC_MPLY, KC_WH_L, KC_WH_R, KC_MINS, KC_PGUP, KC_WH_D, KC_WH_U, _______,
+  _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE 
+  ),
+
+/* Navigation*/
+
+[_NAVMAC] = LAYOUT_preonic_grid(
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+  _______, _______, _______, _______, _______, _______, C_TAB  , A_LEFT , KC_UP  , A_RGHT , KC_DEL , _______,
+  _______, _______, _______, _______, _______, _______,S(C_TAB), KC_LEFT, KC_DOWN, KC_RGHT, C_TAB  , _______,
+  _______, _______, _______, _______, _______, _______, G_TAB  , A_BSPC , KC_HOME, KC_END , G_GRV  , _______,
+  RESET  , _______, _______, _______, KC_RALT, _______, _______, _______, _______, _______, _______, _______
+),
+
+[_NAVPC] = LAYOUT_preonic_grid(
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+    _______, _______, _______, _______, _______, _______, C_TAB  , C_LEFT , KC_UP  , C_RGHT , KC_DEL , _______,
+    _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
+    _______, _______, _______, _______, _______, _______, A_TAB  , C_BSPC , KC_HOME, KC_END , G_GRV  , _______,
+    RESET  , _______, _______, KC_RALT, _______, _______, _______, _______, _______, _______, _______, _______
+),
+  
+[_NAVQUD] = LAYOUT_preonic_grid(
+    _______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, KC_P7  , KC_P8  , KC_P9  , _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, KC_P4  , KC_P2  , KC_P6  , _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, KC_P1  , KC_P5  , KC_P3  , _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, KC_PPLS, _______, _______
+)
+};
+
+// Shift vs capslock function. From bbaserdem's Planck keymap.
+void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+        register_code (KC_LSFT);
+    } else if (state->count == 2) {
+        unregister_code (KC_LSFT);
+        register_code (KC_CAPS);
+    }
+}
+void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
+    if (state->count == 1) {
+        unregister_code (KC_LSFT);
+    } else {
+        unregister_code (KC_CAPS);
+    }
+}
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+  //Tap once for Shift, twice for Caps Lock
+  [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
+};

+ 3 - 0
keyboards/preonic/keymaps/davidrambo/rules.mk

@@ -0,0 +1,3 @@
+TAP_DANCE_ENABLE = yes
+AUDIO_ENABLE = no
+

+ 83 - 47
keyboards/xd75/keymaps/davidrambo/keymap.c

@@ -1,37 +1,57 @@
+/* Copyright 2021 David Rambo
+ *
+ * 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
 #include QMK_KEYBOARD_H
 
 
 //aliases for clarity in layering
 //aliases for clarity in layering
-#define A_BSPC  LALT(KC_BSPC) // delete whole word in Mac
-#define C_BSPC  LCTL(KC_BSPC) // delete whole word in PC
-#define A_LEFT  LALT(KC_LEFT)
-#define A_RGHT  LALT(KC_RGHT)
-#define C_RGHT  LCTL(KC_RGHT)
-#define C_LEFT  LCTL(KC_LEFT)
-#define SftEnt  SFT_T(KC_ENT)
-#define BS_GUI  LGUI_T(KC_BSPC)
-#define BS_CTL  LCTL_T(KC_BSPC)
+#define ABSPC  LALT(KC_BSPC) // delete whole word in Mac
+#define CBSPC  LCTL(KC_BSPC) // delete whole word in PC
+#define ALEFT  LALT(KC_LEFT)
+#define ARGHT  LALT(KC_RGHT)
+#define CRGHT  LCTL(KC_RGHT)
+#define CLEFT  LCTL(KC_LEFT)
+#define SftEnt SFT_T(KC_ENT)
+#define BSGUI  LGUI_T(KC_BSPC)
+#define BSCTL  LCTL_T(KC_BSPC)
 
 
 // internet browser tab shortcuts and window/application swapping for Mac and Win
 // internet browser tab shortcuts and window/application swapping for Mac and Win
 #define GSL     LGUI(S(KC_LEFT)) // back one tab in Safari
 #define GSL     LGUI(S(KC_LEFT)) // back one tab in Safari
 #define GSR     LGUI(S(KC_RGHT)) // forward one tab in Safari
 #define GSR     LGUI(S(KC_RGHT)) // forward one tab in Safari
-#define CTLPGDN LCTL(KC_PGDN)   // back one tab on Windows
-#define CTLPGUP LCTL(KC_PGUP)   // forward one tab on Windows
-#define G_TAB   LGUI(KC_TAB)    // Mac: switch applications
-#define G_GRV   LGUI(KC_GRV)    // Mac: switch between windows within an application
-#define A_TAB   LALT(KC_TAB)
-#define C_TAB   LCTL(KC_TAB)
-
-// navigation layers for both Mac OS X and Windows
-#define NAV     LT(4, KC_TAB)
-#define NAVPC   LT(5, KC_TAB)
-
-// Layer shorthand
-#define _COLEMAK 0
-#define _PC 1
-#define _GAME 2     // Gaming layer
-#define _SYMBOL 3   // Function keys, numbers, symbols, Backlighting
-#define _NAV 4   // Navigation Layer on Mac
-#define _NAVPC 5 // Navigation Layer on Win
+#define CTLPGDN LCTL(KC_PGDN)   // back one tab on PC
+#define CTLPGUP LCTL(KC_PGUP)   // forward one tab on PC
+#define GTAB    LGUI(KC_TAB)    // Mac: switch applications
+#define GGRV    LGUI(KC_GRV)    // Mac: switch between windows within an application
+#define ATAB    LALT(KC_TAB)
+#define CTAB    LCTL(KC_TAB)
+
+// toggles for navigation layers for Mac, PC, and Roguelike Numpad
+#define NAV     LT(5, KC_ESC)
+#define NAVPC   LT(6, KC_ESC)
+#define NAVQUD  MO(7)
+
+enum custom_layer {
+    _COLEMAK,
+    _PC,
+    _GAME,     // Gaming layer
+    _QUD,3     // Roguelike layer
+    _SYMBOL,   // Function keys, numbers, symbols, Backlighting
+    _NAV,      // Navigation Layer on Mac
+    _NAVPC,    // Navigation Layer on Win
+    _NAVQUD,   // Numpad for Roguelike 8-directional movement
+}
 
 
 // tapdance declarations
 // tapdance declarations
 enum {
 enum {
@@ -58,29 +78,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  */
  */
 
 
  [_COLEMAK] = LAYOUT_ortho_5x15( /* COLEMAK */
  [_COLEMAK] = LAYOUT_ortho_5x15( /* COLEMAK */
-   KC_GRV , KC_1,    KC_2,    KC_3,    KC_4,    KC_5,   KC_MINS, TG(1)  , KC_EQL,  KC_6,   KC_7,   KC_8,    KC_9,    KC_0,    KC_BSPC,
-   KC_GESC, KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,   KC_LBRC, KC_BSLS, KC_RBRC, KC_J,   KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
-   NAV    , KC_A,    KC_R,    KC_S,    KC_T,    KC_D,   KC_PGUP, KC_ESC , KC_ENT , KC_H,   KC_N,   KC_E,    KC_I,    KC_O,    KC_QUOT,
-   SftLck , KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_PGDN, KC_UP  , KC_ENT , KC_K,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH, SftEnt ,
-   KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, BS_GUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(3) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP
+   KC_GRV , KC_1,    KC_2,    KC_3,    KC_4,    KC_5,   KC_MINS, TO(1)  , KC_EQL,  KC_6,   KC_7,   KC_8,    KC_9,    KC_0,    KC_BSPC,
+   KC_TAB , KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,   KC_LBRC, KC_BSLS, KC_RBRC, KC_J,   KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
+   NAV    , KC_A,    KC_R,    KC_S,    KC_T,    KC_D,   KC_PGUP, KC_MPLY, GGRV   , KC_H,   KC_N,   KC_E,    KC_I,    KC_O,    KC_QUOT,
+   SftLck , KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_PGDN, KC_UP  , GTAB   , KC_K,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH, SftEnt,
+   KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LCTL, BSGUI,  KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(4) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP
  ),
  ),
     
     
-// Windows Layer: essentially swaps Control and GUI
+// Linux/Windows Layer: essentially swaps Control and GUI
 
 
  [_PC] = LAYOUT_ortho_5x15( /* WINDOWS */
  [_PC] = LAYOUT_ortho_5x15( /* WINDOWS */
-   _______, _______, _______, _______, _______, _______, _______, TG(2)  , _______, _______, _______, _______, _______, _______, _______,
-   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-   NAVPC  , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______,
+   _______, _______, _______, _______, _______, _______, _______, TO(2)  , _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-   _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, BS_CTL , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______
+   NAVPC  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, ATAB   , _______, _______, _______, _______, _______, _______,
+   _______, KC_PSCR, KC_LGUI, _______, KC_LGUI, BSCTL  , _______, _______, _______, _______, _______, KC_RCTL, _______, KC_RGUI, _______
  ),
  ),
 
 
  [_GAME] = LAYOUT_ortho_5x15( /* Gaming Layer */
  [_GAME] = LAYOUT_ortho_5x15( /* Gaming Layer */
-   _______, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, _______, TO(0)  ,
+   _______, _______, _______, _______, _______, _______, _______, TO(0)  , _______, _______, _______, _______, _______, _______, TO(3)  ,
    KC_ESC , KC_T   , KC_Q   , KC_W   , KC_E   , KC_R   , KC_F7  , KC_F8  , KC_F9  , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , _______,
    KC_ESC , KC_T   , KC_Q   , KC_W   , KC_E   , KC_R   , KC_F7  , KC_F8  , KC_F9  , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , _______,
    KC_TAB , KC_LSFT, KC_A   , KC_S   , KC_D   , KC_F   , KC_F4  , KC_F5  , KC_F6  , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, _______,
    KC_TAB , KC_LSFT, KC_A   , KC_S   , KC_D   , KC_F   , KC_F4  , KC_F5  , KC_F6  , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, _______,
    KC_LALT, KC_LCTL, KC_Z   , KC_X   , KC_C   , KC_V   , KC_F1  , KC_F2  , KC_F3  , KC_N   , KC_M   , _______, _______, _______, KC_ENT ,
    KC_LALT, KC_LCTL, KC_Z   , KC_X   , KC_C   , KC_V   , KC_F1  , KC_F2  , KC_F3  , KC_N   , KC_M   , _______, _______, _______, KC_ENT ,
-   _______, _______, _______, KC_G   , KC_B   , KC_SPC , KC_I   , KC_M   , _______, _______, KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT, _______
+   _______, _______, _______, KC_G   , KC_B   , KC_SPC , KC_I   , KC_M   , ATAB   , _______, KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT, _______
+ ),
+  
+   [_QUD] = LAYOUT_ortho_5x15( /* Roguelike Layer */
+   _______, _______, _______, _______, _______, _______, _______,KC_PSLS, KC_PAST, _______, _______, _______, _______, _______, TO(0),
+   KC_GESC, KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,   KC_LBRC, KC_BSLS, KC_RBRC, KC_J,   KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
+   NAV    , KC_A,    KC_R,    KC_S,    KC_T,    KC_D,   KC_PGUP, KC_MPLY, GGRV   , KC_H,   KC_N,   KC_E,    KC_I,    KC_O,    KC_QUOT,
+   SftLck , KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_PGDN, KC_UP  , ATAB   , KC_K,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH, SftEnt ,
+   KC_DEL , KC_LGUI, KC_LGUI, KC_LALT, KC_LCTL, TO(7),  KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(4) , KC_RGUI, KC_RALT, KC_RCTL, _______
  ),
  ),
     
     
 /* SYMBOL
 /* SYMBOL
@@ -101,25 +129,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_F12 , 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_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , _______, _______, _______, KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
    KC_LBRC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , _______, _______, _______, KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC,
    KC_LBRC, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , _______, _______, _______, KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_RBRC,
    _______, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
    _______, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
-   _______, KC_HOME, KC_END , BL_OFF , BL_ON  , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______,
-   _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______
+   _______, KC_HOME, KC_END , BL_OFF , BL_ON  , KC_VOLD, _______, _______, _______, KC_VOLU, KC_MINS, _______, _______, _______, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
  ),
  ),
 
 
  
  
  [_NAV] = LAYOUT_ortho_5x15( /* NAVIGATION for Mac */
  [_NAV] = LAYOUT_ortho_5x15( /* NAVIGATION for Mac */
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-   _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB  , A_LEFT,  KC_UP,   A_RGHT , KC_DEL , _______,
-   _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL    , KC_LEFT, KC_DOWN, KC_RGHT, GSR    , _______,
-   _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB  , A_BSPC , KC_HOME, KC_END , G_GRV  , _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, CTAB   , ALEFT  , KC_UP  , ARGHT  , KC_DEL , _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, GTAB   , ABSPC  , KC_HOME, KC_END , GGRV   , _______,
    RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
  ),
  ),
 
 
- [_NAVPC] = LAYOUT_ortho_5x15( /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
+ [_NAVPC] = LAYOUT_ortho_5x15( /* NAVIGATION FOR PC: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-   _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB  , C_LEFT,  KC_UP,   C_RGHT , KC_DEL , _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, CTAB   , CLEFT  , KC_UP  , CRGHT  , KC_DEL , _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
-   _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB  , C_BSPC , KC_HOME, KC_END , _______, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, ATAB   , CBSPC  , KC_HOME, KC_END , _______, _______,
    RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    RESET  , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+    
+ [_NAVQUD] = LAYOUT_ortho_5x15( /* NAVIGATION for Mac */
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, _______, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_2, KC_KP_6, KC_PPLS, _______,
+   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_5, KC_KP_3, _______, _______,
+   _______, _______, _______, _______, _______,   TO(3), _______, _______, _______, _______, KC_KP_0, KC_PDOT, _______, _______, _______
  )
  )
 };
 };
 
 

+ 3 - 2
keyboards/xd75/keymaps/davidrambo/readme.md

@@ -1,7 +1,8 @@
 # XD75
 # XD75
 
 
-This is a Colemak layout for XD75 with both Mac and Windows layers.
+This is a Colemak layout for XD75 with both Mac and Linux/Windows layers.
 These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout (see planck/keymaps/davidrambo).
 These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout (see planck/keymaps/davidrambo).
 Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
 Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
+It also has two layers used for games: one with a typical WASD orientation, another for playing Roguelikes that need a numpad.
 
 
-The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.
+The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.