From 7e6b550ebff3accd41fce8ffae706626cd98f755 Mon Sep 17 00:00:00 2001 From: Gautham Yerroju Date: Sun, 12 Apr 2020 22:37:23 -0700 Subject: [PATCH] Add a simple custom keymap for Gergo. (#8662) * Add a simple custom keymap for Gergo. * update readme, keymap cleanup --- keyboards/gergo/keymaps/gotham/config.h | 3 + keyboards/gergo/keymaps/gotham/keymap.c | 155 +++++++++++++++++++++++ keyboards/gergo/keymaps/gotham/readme.md | 8 ++ keyboards/gergo/keymaps/gotham/rules.mk | 37 ++++++ 4 files changed, 203 insertions(+) create mode 100644 keyboards/gergo/keymaps/gotham/config.h create mode 100644 keyboards/gergo/keymaps/gotham/keymap.c create mode 100644 keyboards/gergo/keymaps/gotham/readme.md create mode 100644 keyboards/gergo/keymaps/gotham/rules.mk diff --git a/keyboards/gergo/keymaps/gotham/config.h b/keyboards/gergo/keymaps/gotham/config.h new file mode 100644 index 000000000..6393d46f1 --- /dev/null +++ b/keyboards/gergo/keymaps/gotham/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/gergo/keymaps/gotham/keymap.c b/keyboards/gergo/keymaps/gotham/keymap.c new file mode 100644 index 000000000..ff6df266f --- /dev/null +++ b/keyboards/gergo/keymaps/gotham/keymap.c @@ -0,0 +1,155 @@ +/* Good on you for modifying your layout! if you don't have + * time to read the QMK docs, a list of keycodes can be found at + * + * https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md + * + * There's also a template for adding new layers at the bottom of this file! + */ + +#include QMK_KEYBOARD_H + +enum layers { + BASE, // default layer + SYMB, // symbols + NUMB, // number/navigation + MOUS, // mouse navigation +}; + +#define KC_ANGL LSFT(KC_COMM) +#define KC_ANGR LSFT(KC_DOT) + +// Blank template at the bottom + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | LShift | A | S | D | F | G | | | VolUp| H | J | K | L | ; : |RSft/' "| + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | LCtrl | Z | X | C | V | B | | | VolDn| N | M | , < | . > | / ? |RCtl/- _| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .----------. .----------. .-----------. .------. + * | LAlt | |SYMB/Space| | NUMB/Bksp | | MOUS | + * '----------' '----------' `-----------' '------' + * ,-------. ,-------. + * | | |VolMute| + * ,------|-------| |-------|------. + * | NUMB | | | | SYMB | + * | Tab | LGui | | = | Enter| + * | | | | | | + * `--------------' `--------------' + */ +[BASE] = LAYOUT_gergo( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_VOLU, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_QUOT), + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RCTL, KC_MINS), + KC_LALT, LT(SYMB, KC_SPC), LT(NUMB, KC_TAB), KC_LGUI, KC_EQL, LT(SYMB, KC_ENT), LT(NUMB, KC_BSPC), MO(MOUS) + ), +/* Keymap 1: Symbols layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | # | $ | { | } | | | | < | > | | | | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | ! | @ | ( | ) | ` | | | | - | & | + | * | ; | ' " | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | _ | | | , | . | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .----------. .----------. .-----. .------. + * | LAlt | |SYMB/Space| | Del | | MOUS | + * '----------' '----------' `-----' '------' + * ,-------. ,-------. + * | | | | + * ,------|-------| |-------|------. + * | NUMB | | | | SYMB | + * | Tab | LGui | | = | Enter| + * | | | | | | + * `--------------' `--------------' + */ +[SYMB] = LAYOUT_gergo( + _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, KC_ANGL, KC_ANGR, XXXXXXX, XXXXXXX, KC_PIPE, + _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_GRV, XXXXXXX, XXXXXXX, KC_MINS, KC_AMPR, KC_PLUS, KC_ASTR, KC_SCLN, KC_QUOT, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PIPE, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + _______, _______, _______, _______, _______, _______, KC_DEL, _______ + ), +/* Keymap 2: Pad/Function layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | | | PgUp | LEFT | UP | RIGHT| | | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | |PgDown| HOME | DOWN | END | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .----------. .----------. .-----------. .------. + * | LAlt | |SYMB/Space| | NUMB/Bksp | | MOUS | + * '----------' '----------' `-----------' '------' + * ,-------. ,-------. + * | | | | + * ,------|-------| |-------|------. + * | NUMB | | | | SYMB | + * | Tab | LGui | | = | Enter| + * | | | | | | + * `--------------' `--------------' + */ +[NUMB] = LAYOUT_gergo( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_PGUP, KC_LEFT, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_HOME, KC_DOWN, KC_END, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* Keymap 3: Mouse layer + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | | | | M_L | M_U | M_R | M_Clk| | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | L_Clk| M_D | R_Clk| | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .----------. .----------. .-----------. .------. + * | LAlt | |SYMB/Space| | NUMB/Bksp | | MOUS | + * '----------' '----------' `-----------' '------' + * ,-------. ,-------. + * | | | | + * ,------|-------| |-------|------. + * | NUMB | | | | SYMB | + * | Tab | LGui | | = | Enter| + * | | | | | | + * `--------------' `--------------' + */ +[MOUS] = LAYOUT_gergo( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_MS_L, KC_MS_U, KC_MS_R, KC_BTN3, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_BTN1, KC_MS_D, KC_BTN2, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +/* Keymap template + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | | | | | | | + * |--------+------+------+------+------+------|------. .------|------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------|------| |------|------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * .------. .------. .------. .-----. + * | | | | | | | | + * '------' '------' `------. '-----' + * ,-------. ,-------. + * | | | | + * ,------|-------| |-------|------. + * | | | | | | + * | | | | | | + * | | | | | | + * `--------------' `--------------' +[SYMB] = LAYOUT_gergo( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + */ diff --git a/keyboards/gergo/keymaps/gotham/readme.md b/keyboards/gergo/keymaps/gotham/readme.md new file mode 100644 index 000000000..2b1c5ab1d --- /dev/null +++ b/keyboards/gergo/keymaps/gotham/readme.md @@ -0,0 +1,8 @@ +This is a modified version of the default keymap for Gergo with some changes. + +## Changes: + - Rehaul thumb keys. For my hand size, the L and R thumbs rest on space and backspace, and one finger outward, are tab and enter. + - = has its own dedicated key to facilitate typing "=", which is a very common trigram in programming. + - Change navigation into a T-shaped cluster and add Home and End keys. T-shaped, because it's similar to arrow key cluster and most keys are on the home row, while sharing the number layer. + - Separated mouse navigation into a separate layer (in favor of T-shaped arrows, which require 2 rows). + - Difficult-to-reach key positions are mostly unused. diff --git a/keyboards/gergo/keymaps/gotham/rules.mk b/keyboards/gergo/keymaps/gotham/rules.mk new file mode 100644 index 000000000..351c52558 --- /dev/null +++ b/keyboards/gergo/keymaps/gotham/rules.mk @@ -0,0 +1,37 @@ +#---------------------------------------------------------------------------- +# make gergo:germ:dfu +# Make sure you have dfu-programmer installed! +#---------------------------------------------------------------------------- +# Firmware options +BALLER = no # Enable to ball out +BALLSTEP = 20 # Multiple in px to move, multiplied by layer number +SCROLLSTEP = 1 # Lines to scroll with ball +MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller + +#Debug options +VERBOSE = yes +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_BALLER = no +DEBUG_MATRIX = yes + +# A bunch of stuff that you shouldn't touch unless you +# know what you're doing. +# +# No touchy, capiche? +SRC += matrix.c i2c_master.c +ifneq ($(strip $(BALLSTEP)),) + OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP)) +endif +ifneq ($(strip $(SCROLLSTEP)),) + OPT_DEFS += -DSCROLLSTEP=$(strip $(SCROLLSTEP)) +endif +ifeq ($(strip $(BALLER)), yes) + POINTING_DEVICE_ENABLE = yes + OPT_DEFS += -DBALLER +endif +ifeq ($(strip $(DEBUG_BALLER)), yes) + OPT_DEFS += -DDEBUG_BALLER +endif +ifeq ($(strip $(DEBUG_MATRIX)), yes) + OPT_DEFS += -DDEBUG_MATRIX +endif