diff --git a/gergoplex/combos.def b/gergoplex/combos.def new file mode 100644 index 0000000..e4d765f --- /dev/null +++ b/gergoplex/combos.def @@ -0,0 +1,13 @@ +// List any combo dictionaries you want loaded to +// your device below! + +// QMK wide includes +#include "combos/germ-vim-helpers.def" +#include "combos/germ-mouse-keys.def" + +// User includes +#include "gergoplex.def" +#include "kadis.def" + +// Word completion +//#include "combos/eng-combos.def" diff --git a/gergoplex/config.h b/gergoplex/config.h new file mode 100644 index 0000000..9790d1c --- /dev/null +++ b/gergoplex/config.h @@ -0,0 +1,2 @@ +#define COMBO_ALLOW_ACTION_KEYS +#define COMBO_VARIABLE_LEN diff --git a/gergoplex/gergoplex.def b/gergoplex/gergoplex.def new file mode 100644 index 0000000..f0855d7 --- /dev/null +++ b/gergoplex/gergoplex.def @@ -0,0 +1,12 @@ +// Gergoplex specfic combos + +COMB(opBacksl, KC_BSLS, KC_O, KC_P) +COMB(hjLess, KC_LT, KC_H, KC_J) +COMB(klGreat, KC_GT, KC_K, KC_L) +COMB(xcDash, KC_MINS, KC_X, KC_C) +COMB(mcUnds, KC_UNDS, KC_M, KC_COMM) +COMB(nmQuot, KC_QUOT, KC_N, KC_M) +COMB(gbClic, KC_BTN1, KC_G, KC_B) +COMB(fvClic, KC_BTN2, KC_F, KC_V) + +SUBS(pasta, "I'd just like to interject for a moment.", KC_H, KC_J, KC_K, KC_L) diff --git a/gergoplex/kadis.def b/gergoplex/kadis.def new file mode 100644 index 0000000..256b149 --- /dev/null +++ b/gergoplex/kadis.def @@ -0,0 +1,18 @@ +// Programming +SUBS(ifErr, "if err != nil {\n\t\n}", KC_E, KC_I) +SUBS(goTest, "go test ./...\n", KC_G, KC_T) +SUBS(cargoTest, "cargo test\n", KC_C, KC_T) + +// 1c project names +SUBS(kumo, "kumo ", KC_K, KC_M) +SUBS(gaia, "gaia ", KC_G, KC_A) +SUBS(leeroy, "leeroy ", KC_L, KC_R) +SUBS(jinn, "jinn ", KC_J, KC_I) + +// proxy tags +SUBS(cadey, "Cadey\\ ", KC_C, KC_A) +SUBS(nicole, "Nicole\\ ", KC_N, KC_I) +SUBS(jessie, "Jessie\\ ", KC_J, KC_E) +SUBS(ashe, "Ashe\\ ", KC_A, KC_S) +SUBS(sephie, "Sephie\\ ", KC_S, KC_E) +SUBS(mai, "Mai\\ ", KC_M, KC_A) diff --git a/gergoplex/keymap.c b/gergoplex/keymap.c new file mode 100644 index 0000000..88a6ed3 --- /dev/null +++ b/gergoplex/keymap.c @@ -0,0 +1,93 @@ +/* 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 +#include "g/keymap_combo.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define NUMB 2 // numbers/motion + +/* Combomap + * + * ,-----------------------------. ,--------------------------------. + * | | ESC | | | | | ESC | BSLH | + * |-----+-----+-----+-----+------| |--------------------------------| + * | | BSPC ENT | | | LES COLN GRT | | + * |-----+-----+-----+--RMB+-LMB--+ |--------------------------------| + * | | MINS | | | | QUO UNDR | | | + * `------+-----+-----+------+----' `--------------------------------' + * .-------------------------. .-----------------. + * | | | | | | | | + * '-------------------------' '-----------------' + */ + +// Blank template at the bottom +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,-----------------------------. ,--------------------------------. + * | Q | W | F | P | G | | J | L | U | Y | ; | + * |-----+-----+-----+-----+------| |--------------------------------| + * |CTRL/A| R | S | T | D | | H | N | E | I | CTRL/O | + * |-----+-----+-----+-----+------+ |--------------------------------| + * |SHFT/Z| X | C | V | B | | K | M | < | > | SHFT/? | + * `------+-----+-----+------+----' `--------------------------------' + * .-------------------------. .-----------------. + * |ESC/META|ENT/ALT|SPC(SYM)| |SPC(NUM)|BSPC|TAB| + * '-------------------------' '-----------------' + */ +[BASE] = LAYOUT_gergoplex( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + MT(MOD_LCTL, KC_A),KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, MT(MOD_LCTL, KC_O), + MT(MOD_RSFT, KC_Z),KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, MT(MOD_RSFT, KC_SLSH), + + MT(MOD_LGUI, KC_ESC), MT(MOD_LALT, KC_ENT), LT(SYMB, KC_SPC), // Left + LT(NUMB, KC_SPC), KC_LSFT, MT(MOD_RSFT, KC_TAB) // Right + ), +/* Keymap 1: Symbols layer + * ,-----------------------------. ,--------------------------------. + * | ! | @ | { | } | | | | ` | ~ | | | \ | + * |-----+-----+-----+-----+------| |--------------------------------| + * | # | $ | ( | ) | LMB | | + | - | / | * | ' | + * |------+-----+-----+-----+-----| |--------------------------------| + * | % | ^ | [ | ] | RMB | | & | = | , | . | - | + * `------+-----+-----+------+----' `--------------------------------' + * .-----------------. .------------------. + * | MMB | ; | = | | = | ; | DEL | + * '-----------------' '------------------' + */ +[SYMB] = LAYOUT_gergoplex( + KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_BSLS, + KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, + KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, + + CMB_TOG, KC_SCLN, KC_EQL, // Left + KC_EQL, KC_SCLN, KC_DEL // Right + ), +/* Keymap 2: Pad/Function layer + * ,-----------------------------. ,-------------------------------. + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |-----+-----+-----+-----+------| |-------------------------------| + * | F1 | F2 | F3 | F4 | F5 | | LFT | DWN | UP | RGT | VOLUP | + * |-----+-----+-----+-----+------+ |-------------------------------| + * | F6 | F7 | F8 | F9 | F10 | |MLFT | MDWN| MUP | MRGT| VOLDN | + * `------+-----+-----+------+----' `-------------------------------' + * .-----------------. .-----------------. + * | F11 | F12| | | | PLY | SKP | + * '-----------------' '-----------------' + */ +[NUMB] = LAYOUT_gergoplex( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_VOLD, + + KC_F11, KC_F12, KC_TRNS, // Left + KC_TRNS, KC_MPLY, KC_MNXT // Right + ), +}; diff --git a/gergoplex/rules.mk b/gergoplex/rules.mk new file mode 100644 index 0000000..afd7141 --- /dev/null +++ b/gergoplex/rules.mk @@ -0,0 +1,24 @@ +#---------------------------------------------------------------------------- +# make gergo:germ:dfu +# Make sure you have dfu-programmer installed! +#---------------------------------------------------------------------------- +# Firmware options +MOUSEKEY_ENABLE = yes + +#Debug options +VERBOSE = yes +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_MATRIX = yes +CONSOLE_ENABLE = yes + +#Combos! +VPATH += keyboards/gboards/ + +# 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 +ifeq ($(strip $(DEBUG_MATRIX)), yes) + OPT_DEFS += -DDEBUG_MATRIX +endif diff --git a/ginny/dicts.def b/ginny/dicts.def new file mode 100644 index 0000000..69a4739 --- /dev/null +++ b/ginny/dicts.def @@ -0,0 +1,15 @@ +// This is what dictionaries are currently loaded to your device +// You must add the dictionary to both parts of the keymap +// For configuring your device, got edit user.def :) +// +// Please note the ordering is important! If there are any chord conflicts the +// highest dictionary will get matched +// +// ASETNIOP supports various languages, define the one you wish to include here +// da, de, en, en-colemak, en-dvorak, es, fn, fr, hu, it, nl, nw, pl, pt, ro, sv, tr + +#include "dicts/aset/en-colemak-keymap.def" +#include "dicts/aset/cmd-keymap.def" +#include "dicts/aset/num-keymap.def" +#include "dicts/aset/layer-keymap.def" +#include "user.def" diff --git a/ginny/keymap.c b/ginny/keymap.c new file mode 100644 index 0000000..a151713 --- /dev/null +++ b/ginny/keymap.c @@ -0,0 +1,18 @@ +#include QMK_KEYBOARD_H +#include "g/engine.h" +#include "g/keymap_engine.h" + +/* Note: Don't edit this file! + * + * You can tweak what dictionaries/languages are loaded in dicts.def + * Your personal keymap is over in user.def + * + * This is the most non-QMK powered device ever :) + * Happy Hacking, + * -- Germ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_ginny( + KC_A, KC_S, KC_E, KC_T, KC_L, KC_R, KC_N, KC_I, KC_O, KC_P +)}; diff --git a/ginny/user.def b/ginny/user.def new file mode 100644 index 0000000..9b86c51 --- /dev/null +++ b/ginny/user.def @@ -0,0 +1,48 @@ +/* Welcome to ASETNIOP + * + * This file contains your personal chords, the basic layout, symbols and + * layers are in different files. Refer to dicts.def for their locations! + * + * This is a very different layout based off this table + * http://asetniop.com/ + * + * Unlike standard Asetniop there are a few concessions that must be + * made. Namely we don't do partials and if a chord has multiple left/ + * right words we go with the most common of the two. + * + * Also note, All Combos _must_ be done through Command Mode! If you + * use a combo enough add it to your dictionary in the USR section! + * + * Two 'layers' are available, CMD and USR. Just add these into a chord. + * You'll enter/exit these layers with SET_STICKY(CMD) and SET_STICKY(0) + * + * Note: The engine optimizes for the longest chord it can find, every + * now and again this makes conflicts! If you have a better dictionary + * or come up with improvements, please submit a PR! + */ + + +// You can use the following aliases in your chords +// AA, AS, AE, AT, AN, AI, AO, AP, AL, AR (Left/Right thumb) +// NUM, USR and CMD are also available + +// User defs +SUBS(USR | AA, undef1, "undefined User ") +SUBS(USR | AS, undef2, "undefined User ") +SUBS(USR | AE, undef3, "undefined User ") +SUBS(USR | AT, undef4, "undefined User ") +SUBS(USR | AN, undef5, "undefined User ") +SUBS(USR | AI, undef6, "undefined User ") +SUBS(USR | AO, undef7, "undefined User ") +SUBS(USR | AP, undef8, "undefined User ") +SUBS(USR | AR, undef9, "undefined User ") +SUBS(USR | AL, undef0, "undefined User ") + +// Quick Fires +SUBS(AR | AA | AS, qf0, "Undefined Quick Fire ") +SUBS(AR | AS | AE, qf1, "Undefined Quick Fire ") +SUBS(AR | AE | AT, qf2, "Undefined Quick Fire ") +SUBS(AR | AT | AN, qf3, "Undefined Quick Fire ") +SUBS(AR | AN | AI, qf4, "Undefined Quick Fire ") +SUBS(AR | AI | AO, qf5, "Undefined Quick Fire ") +SUBS(AR | AO | AP, qf6, "Undefined Quick Fire ")