qmk

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

commit 0031e461913d23e37a9aebd1da5daf1c93a149ee
parent 97ab3211e2ace7a5cbf7bd2a21723ed751286c99
Author: zvecr <z.zvecr@gmail.com>
Date:   Mon, 26 Nov 2018 17:27:07 +0000

Keyboard: 40percentclub - enable 4x4 and 5x5 community keymaps (#4437)

* Enable 4x4 and 5x5 community keymap support

* Pull 4x4 community keymap fixes from @noroadsleft

* Build fixes for guidoism keymap - move keymap to layouts/community/planck_mit as it uses the LAYOUT_planck_mit macro

Diffstat:
keyboards/40percentclub/4x4/4x4.h | 13+++++++++++++
keyboards/40percentclub/4x4/rules.mk | 3+--
keyboards/40percentclub/5x5/rules.mk | 3+--
layouts/community/ortho_4x12/bakingpy/rules.mk | 2++
layouts/community/ortho_4x12/guidoism/config.h | 24------------------------
layouts/community/ortho_4x12/guidoism/generate_c.py | 75---------------------------------------------------------------------------
layouts/community/ortho_4x12/guidoism/guidoism.json | 2--
layouts/community/ortho_4x12/guidoism/keymap.c | 183-------------------------------------------------------------------------------
layouts/community/ortho_4x12/guidoism/keys.json | 317-------------------------------------------------------------------------------
layouts/community/ortho_4x12/guidoism/readme.md | 107-------------------------------------------------------------------------------
layouts/community/ortho_4x12/wanleg/rules.mk | 5++---
layouts/community/ortho_4x12/xyverz/rules.mk | 2++
layouts/community/planck_mit/guidoism/config.h | 24++++++++++++++++++++++++
layouts/community/planck_mit/guidoism/generate_c.py | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
layouts/community/planck_mit/guidoism/guidoism.json | 2++
layouts/community/planck_mit/guidoism/keymap.c | 183+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
layouts/community/planck_mit/guidoism/keys.json | 317+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
layouts/community/planck_mit/guidoism/readme.md | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 files changed, 729 insertions(+), 715 deletions(-)

diff --git a/keyboards/40percentclub/4x4/4x4.h b/keyboards/40percentclub/4x4/4x4.h @@ -56,3 +56,16 @@ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \ } + +#define LAYOUT_kc_ortho_4x12( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \ +) \ +{ \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, ___, ___, ___, ___}, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, ___, ___, ___, ___}, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, ___, ___, ___, ___}, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b, ___, ___, ___, ___} \ +} diff --git a/keyboards/40percentclub/4x4/rules.mk b/keyboards/40percentclub/4x4/rules.mk @@ -76,5 +76,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) -#FIXME: Community keymap build are currently failing due to missing functionality -#LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16 +LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16 diff --git a/keyboards/40percentclub/5x5/rules.mk b/keyboards/40percentclub/5x5/rules.mk @@ -77,5 +77,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) -#FIXME: Community keymap build are currently failing due to missing functionality -#LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15 +LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15 diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk @@ -5,6 +5,8 @@ endif AUDIO_ENABLE = no ifeq ($(strip $(KEYBOARD)), zlant) BACKLIGHT_ENABLE = no +else ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4) + BACKLIGHT_ENABLE = no else BACKLIGHT_ENABLE = yes endif diff --git a/layouts/community/ortho_4x12/guidoism/config.h b/layouts/community/ortho_4x12/guidoism/config.h @@ -1,24 +0,0 @@ -/* -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 IGNORE_MOD_TAP_INTERRUPT -#define USB_MAX_POWER_CONSUMPTION 50 diff --git a/layouts/community/ortho_4x12/guidoism/generate_c.py b/layouts/community/ortho_4x12/guidoism/generate_c.py @@ -1,75 +0,0 @@ -import itertools -import json -import os.path -import re - -KEYMAP_C = """/* {0} -{1} -*/ -[{2}] = {3}( - {4}) -""" - -README_MD = """## {0} -``` -{1} -``` -""" - -base = os.path.dirname(__file__) - -layer_names = dict(enumerate(['_QWERTY', '_LOWER', '_RAISE', '_MOVEMENT', '_NUMPAD', '_FUNCTION'])) -layer_name = {('MO(%d)' % i): layer_names.get(i).strip('_') for i in layer_names.keys()} - -keys = json.load(open(os.path.join(base, 'keys.json'))) - -d = json.load(open(os.path.join(base, 'guidoism.json'))) - -def surround(s, a, b, c): - return a + b.join(s) + c - -def pattern(cell, table): - return ['─'*cell for i in range(table)] - -top = surround(pattern(5, 12), '┌', '┬', '┐') -mid = surround(pattern(5, 12), '├', '┼', '┤') -bottom = surround(pattern(5, 12), '└', '┴', '┘') - -from more_itertools import chunked, intersperse, interleave_longest - -def uni(k): - return keys.get(k, k).lower().center(5) - -def c_layout(i, definition, template): - c_name = layer_names[i] - pretty_name = c_name.strip('_').capitalize() - layout = d['layout'] - - surround = lambda s: ''.join(interleave_longest(['│']*(len(s)+1), s)) - layer = list(map(uni, definition)) - layer[41] = layer[41].center(11) - layer = chunked(layer, 12) - rows = intersperse(mid, map(surround, layer)) - pretty = '\n'.join(itertools.chain([top], rows, [bottom])) - - surround = lambda s: ', '.join(s) - layer = list(map(lambda k: layer_name.get(k, k), definition)) - layer = chunked(layer, 12) - rows = map(surround, layer) - c_layer = ',\n '.join(itertools.chain([], rows, [])) - - return template.format(pretty_name, pretty, c_name, layout, c_layer) - -start = '// START_REPLACEMENT\n' -end = '// END_REPLACEMENT\n' -replacement = start + ',\n\n'.join(c_layout(i, l, KEYMAP_C) for i, l in enumerate(d['layers'])) + end -keymap = os.path.join(base, 'keymap.c') -existing = open(keymap).read() -r = re.compile(r'// START_REPLACEMENT.*// END_REPLACEMENT', re.DOTALL) -open(keymap, 'w').write(r.sub(replacement, existing)) - -replacement = '## Current Configuration\n\n' + '\n\n'.join(c_layout(i, l, README_MD) for i, l in enumerate(d['layers'])) -keymap = os.path.join(base, 'readme.md') -existing = open(keymap).read() -r = re.compile(r'## Current Configuration.*', re.DOTALL) -open(keymap, 'w').write(r.sub(replacement, existing)) diff --git a/layouts/community/ortho_4x12/guidoism/guidoism.json b/layouts/community/ortho_4x12/guidoism/guidoism.json @@ -1 +0,0 @@ -{"keyboard":"planck/rev4","keymap":"guidoism","layout":"LAYOUT_planck_mit","layers":[["KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSPC","KC_LCTL","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_COLN","KC_ENT","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_NO","MO(3)","KC_ESC","KC_LALT","KC_LGUI","MO(1)","LSFT_T(KC_SPC)","MO(2)","KC_RGUI","KC_RALT","KC_SCLN","MO(5)"],["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_NO","KC_NO","KC_UNDO","KC_TRNS","KC_NO","KC_CUT","KC_COPY","KC_PSTE","KC_NO","KC_NO","KC_UNDS","KC_PLUS","KC_DQUO","KC_QUOT","KC_PIPE","KC_CAPS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MNXT","KC_VOLD","KC_VOLU","KC_MPLY"],["KC_GRV","KC_P1","KC_P2","KC_P3","KC_P4","KC_P5","KC_P6","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_LBRC","KC_RBRC","KC_LPRN","KC_RPRN","KC_NO","KC_NO","KC_PMNS","KC_PEQL","KC_NO","KC_NO","KC_BSLS","KC_TRNS","KC_LT","KC_GT","KC_LCBR","KC_RCBR","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["RESET","DEBUG","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PGUP","KC_UP","KC_PGDN","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_HOME","KC_NO","KC_END","KC_NO","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_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PERC","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_DLR","KC_P4","KC_P5","KC_P6","KC_PDOT","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P0","KC_P1","KC_P2","KC_P3","KC_PCMM","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_P0","KC_NO","KC_NO","KC_TRNS"],["KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS"]]}- \ No newline at end of file diff --git a/layouts/community/ortho_4x12/guidoism/keymap.c b/layouts/community/ortho_4x12/guidoism/keymap.c @@ -1,183 +0,0 @@ -#include QMK_KEYBOARD_H - -extern keymap_config_t keymap_config; - -enum planck_layers { - _QWERTY, - _LOWER, - _RAISE, - _MOVEMENT, - _NUMPAD, - _FUNCTION, -}; - -enum planck_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - MOVEMENT, - NUMPAD, -}; - -#define FUNCTION MO(_FUNCTION) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// START_REPLACEMENT -/* Qwerty -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ -[_QWERTY] = LAYOUT_planck_mit( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, - MOVEMENT, KC_ESC, KC_LALT, KC_LGUI, LOWER, LSFT_T(KC_SPC), RAISE, KC_RGUI, KC_RALT, KC_SCLN, FUNCTION) -, - -/* Lower -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ caps│ │ │ │ │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ -[_LOWER] = LAYOUT_planck_mit( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_NO, KC_NO, KC_UNDO, - KC_TRNS, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_DQUO, KC_QUOT, KC_PIPE, - KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY) -, - -/* Raise -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ < │ > │ { │ } │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ -[_RAISE] = LAYOUT_planck_mit( - KC_GRV, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, - KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_PMNS, KC_PEQL, KC_NO, KC_NO, KC_BSLS, - KC_TRNS, KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -, - -/* Movement -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ home│ │ end │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ -[_MOVEMENT] = LAYOUT_planck_mit( - RESET, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_END, KC_NO, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -, - -/* Numpad -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ 0 │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ -[_NUMPAD] = LAYOUT_planck_mit( - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PERC, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DLR, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_TRNS, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_P1, KC_P2, KC_P3, KC_PCMM, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_P0, KC_NO, KC_NO, KC_TRNS) -, - -/* Function -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ -[_FUNCTION] = LAYOUT_planck_mit( - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS) -// END_REPLACEMENT - - - - - - - - -}; - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - } else { - layer_off(_RAISE); - } - return false; - break; - case MOVEMENT: - if (record->event.pressed) { - layer_on(_MOVEMENT); - update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); - } else { - layer_off(_MOVEMENT); - update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); - } - return false; - break; - } - return true; -} diff --git a/layouts/community/ortho_4x12/guidoism/keys.json b/layouts/community/ortho_4x12/guidoism/keys.json @@ -1,317 +0,0 @@ -{ - "KC_1": "1", - "SHIFTED_KC_1": "!", - "KC_2": "2", - "SHIFTED_KC_2": "@", - "KC_3": "3", - "SHIFTED_KC_3": "#", - "KC_4": "4", - "SHIFTED_KC_4": "$", - "KC_5": "5", - "SHIFTED_KC_5": "%", - "KC_6": "6", - "SHIFTED_KC_6": "^", - "KC_7": "7", - "SHIFTED_KC_7": "&", - "KC_8": "8", - "SHIFTED_KC_8": "*", - "KC_9": "9", - "SHIFTED_KC_9": "(", - "KC_0": "0", - "SHIFTED_KC_0": ")", - "KC_A": "a", - "SHIFTED_KC_A": "A", - "KC_B": "b", - "SHIFTED_KC_B": "B", - "KC_C": "c", - "SHIFTED_KC_C": "C", - "KC_D": "d", - "SHIFTED_KC_D": "D", - "KC_E": "e", - "SHIFTED_KC_E": "E", - "KC_F": "f", - "SHIFTED_KC_F": "F", - "KC_G": "g", - "SHIFTED_KC_G": "G", - "KC_H": "h", - "SHIFTED_KC_H": "H", - "KC_I": "i", - "SHIFTED_KC_I": "I", - "KC_J": "j", - "SHIFTED_KC_J": "J", - "KC_K": "k", - "SHIFTED_KC_K": "K", - "KC_L": "l", - "SHIFTED_KC_L": "L", - "KC_M": "m", - "SHIFTED_KC_M": "M", - "KC_N": "n", - "SHIFTED_KC_N": "N", - "KC_O": "o", - "SHIFTED_KC_O": "O", - "KC_P": "p", - "SHIFTED_KC_P": "P", - "KC_Q": "q", - "SHIFTED_KC_Q": "Q", - "KC_R": "r", - "SHIFTED_KC_R": "R", - "KC_S": "s", - "SHIFTED_KC_S": "S", - "KC_T": "t", - "SHIFTED_KC_T": "T", - "KC_U": "u", - "SHIFTED_KC_U": "U", - "KC_V": "v", - "SHIFTED_KC_V": "V", - "KC_W": "w", - "SHIFTED_KC_W": "W", - "KC_X": "x", - "SHIFTED_KC_X": "X", - "KC_Y": "y", - "SHIFTED_KC_Y": "Y", - "KC_Z": "z", - "SHIFTED_KC_Z": "Z", - "KC_ENTER": "\u23ce", - "KC_ENT": "\u23ce", - "KC_ESCAPE": "\u238b", - "KC_ESC": "\u238b", - "KC_BSPACE": "\u232b", - "KC_BSPC": "\u232b", - "KC_TAB": "\u21e5", - "KC_SPACE": "", - "KC_SPC": "", - "KC_MINUS": "-", - "KC_MINS": "-", - "KC_EQUAL": "+", - "KC_EQL": "=", - "KC_LBRACKET": "{", - "KC_LBRC": "[", - "KC_RBRACKET": "}", - "KC_RBRC": "]", - "KC_BSLS": "\\", - "KC_BSLASH": "\\", - "KC_SCOLON": ":", - "KC_SCLN": ";", - "KC_QUOTE": "\"", - "KC_QUOT": "'", - "KC_GRAVE": "`", - "KC_GRV": "`", - "KC_COMMA": ",", - "KC_COMM": ",", - "KC_DOT": ".", - "KC_SLASH": "/", - "KC_NUBS": "/", - "KC_NUHS": "#", - "KC_CAPSLOCK": "Caps", - "KC_CAPS": "Caps", - "KC_LCTRL": "Ctrl", - "KC_LCTL": "Ctrl", - "KC_LSHIFT": "\u21e7", - "KC_LSFT": "\u21e7", - "KC_LALT": "\u2325", - "KC_LGUI": "\u2318", - "KC_LCMD": "\u2318", - "KC_RCTRL": "Right Control", - "KC_RCTL": "Right Control", - "KC_RSHIFT": "\u21e7", - "KC_RSFT": "\u21e7", - "KC_RALT": "\u2325", - "KC_RGUI": "\u2318", - "KC_RCMD": "\u2318", - "KC_LOCKING_CAPS": "Locking Caps Lock", - "KC_LCAP": "Locking Caps Lock", - "KC_LOCKING_NUM": "Locking Num Lock", - "KC_LNUM": "Locking Num Lock", - "KC_LOCKING_SCROLL": "Locking Scroll Lock", - "KC_LSCR": "Locking Scroll Lock", - "KC_INT4": "JIS Henkan", - "KC_HENK": "JIS Henkan", - "KC_INT5": "JIS Muhenkan", - "KC_MHEN": "JIS Muhenkan", - "KC_PSCREEN": "Print Screen", - "KC_PSCR": "Print Screen", - "KC_SCROLLLOCK": "Scroll Lock", - "KC_SLCK": "Scroll Lock", - "KC_PAUSE": "Pause", - "KC_PAUS": "Pause", - "KC_INSERT": "Insert", - "KC_INS": "Insert", - "KC_HOME": "Home", - "KC_PGUP": "PgUp", - "KC_DELETE": "\u2326", - "KC_DEL": "\u2326", - "KC_END": "End", - "KC_PGDOWN": "PgDn", - "KC_PGDN": "PgDn", - "KC_RIGHT": "→", - "KC_RGHT": "→", - "KC_LEFT": "←", - "KC_DOWN": "↓", - "KC_UP": "↑", - "KC_APPLICATION": "Application (Windows Menu Key)", - "KC_APP": "Application (Windows Menu Key)", - "KC_POWER": "Deprecated by MS in favor of KC_SYSTEM_POWER.", - "KC_EXECUTE": "Execute", - "KC_HELP": "Help", - "KC_MENU": "Menu", - "KC_SELECT": "Select", - "KC_AGAIN": "Again", - "KC_UNDO": "Undo", - "KC_CUT": "Cut", - "KC_COPY": "Copy", - "KC_PASTE": "Paste", - "KC_FIND": "Find", - "KC_ALT_ERASE": "Alternate Erase", - "KC_SYSREQ": "SysReq/Attention", - "KC_CANCEL": "Cancel", - "KC_CLEAR": "Clear", - "KC_PRIOR": "Prior", - "KC_RETURN": "Return", - "KC_SEPARATOR": "Separator", - "KC_OUT": "Out", - "KC_OPER": "Oper", - "KC_CLEAR_AGAIN": "Clear/Again", - "KC_CRSEL": "CrSel/Props", - "KC_EXSEL": "ExSel", - "KC_SYSTEM_POWER": "System Power Down.", - "KC_PWR": "System Power Down.", - "KC_SYSTEM_SLEEP": "System Sleep", - "KC_SLEP": "System Sleep", - "KC_SYSTEM_WAKE": "System Wake", - "KC_WAKE": "System Wake", - "KC_STOP": "Stop", - "KC__MUTE": "Mute (macOS)", - "KC__VOLUP": "vol+", - "KC__VOLDOWN": "vol-", - "KC_AUDIO_MUTE": "Mute", - "KC_MUTE": "Mute", - "KC_AUDIO_VOL_UP": "vol+", - "KC_VOLU": "vol+", - "KC_AUDIO_VOL_DOWN": "vol-", - "KC_VOLD": "vol-", - "KC_MEDIA_NEXT_TRACK": "next", - "KC_MNXT": "next", - "KC_MEDIA_PREV_TRACK": "Previous Track (Windows)", - "KC_MPRV": "Previous Track (Windows)", - "KC_MEDIA_FAST_FORWARD": "next", - "KC_MFFD": "next", - "KC_MEDIA_REWIND": "Previous Track (macOS)", - "KC_MRWD": "Previous Track (macOS)", - "KC_MEDIA_STOP": "Stop Track", - "KC_MSTP": "Stop Track", - "KC_MEDIA_PLAY_PAUSE": "play", - "KC_MPLY": "play", - "KC_NUMLOCK": "Keypad Num Lock and Clear", - "KC_NLCK": "Keypad Num Lock and Clear", - "KC_SLSH": "/", - "KC_KP_SLASH": "/", - "KC_PSLS": "/", - "KC_KP_ASTERISK": "*", - "KC_PAST": "*", - "KC_KP_MINUS": "-", - "KC_PMNS": "-", - "KC_PPLS": "+", - "KC_KP_ENTER": "Enter", - "KC_PENT": "Enter", - "KC_KP_1": "1", - "KC_KP_2": "2", - "KC_KP_3": "3", - "KC_KP_4": "4", - "KC_KP_5": "5", - "KC_KP_6": "6", - "KC_KP_7": "7", - "KC_KP_8": "8", - "KC_KP_9": "9", - "KC_KP_0": "0", - "KC_F1": "F1", - "KC_F2": "F2", - "KC_F3": "F3", - "KC_F4": "F4", - "KC_F5": "F5", - "KC_F6": "F6", - "KC_F7": "F7", - "KC_F8": "F8", - "KC_F9": "F9", - "KC_F10": "F10", - "KC_F11": "F11", - "KC_F12": "F12", - "_______": "", - "KC_TILDE": "~", - "KC_TILD": "~", - "KC_EXCLAIM": "!", - "KC_EXLM": "!", - "KC_AT": "@", - "KC_HASH": "#", - "KC_DOLLAR": "$", - "KC_DLR": "$", - "KC_PERCENT": "%", - "KC_PERC": "%", - "KC_CIRCUMFLEX": "^", - "KC_CIRC": "^", - "KC_AMPERSAND": "&", - "KC_AMPR": "&", - "KC_ASTERISK": "*", - "KC_ASTR": "*", - "KC_LEFT_PAREN": "(", - "KC_LPRN": "(", - "KC_RIGHT_PAREN": ")", - "KC_RPRN": ")", - "KC_UNDERSCORE": "_", - "KC_UNDS": "_", - "KC_PLUS": "+", - "KC_LEFT_CURLY_BRACE": "{", - "KC_LCBR": "{", - "KC_RIGHT_CURLY_BRACE": "}", - "KC_RCBR": "}", - "KC_PIPE": "|", - "KC_COLON": ":", - "KC_COLN": ":", - "KC_DOUBLE_QUOTE": "\"", - "KC_DQUO": "\"", - "KC_DQT": "\"", - "KC_LEFT_ANGLE_BRACKET": "<", - "KC_LABK": "<", - "KC_LT": "<", - "KC_RIGHT_ANGLE_BRACKET": ">", - "KC_RABK": ">", - "KC_GT": ">", - "KC_QUESTION": "?", - "KC_QUES": "?", - "KC_KP_PLUS": "+", - "LSFT_T(KC_CAPS)": "\u21e7", - - "LGUI(KC_X)": "<i class='fa fa-cut'></i>", - "LGUI(KC_C)": "<i class='fa fa-copy'></i>", - "LGUI(S(LALT(KC_V)))": "<i class='fa fa-paste'></i>", - - "S(KC_NUHS)": "#", - "S(KC_NUBS)": "/", - "MOVEMENT": "\u0394", - "RAISE": "\u2350", - "LOWER": "\u2357", - "LCTL_T(KC_ESC)": "c/e", - "KC_NO": " ", - - "MO(3)": "mov", - "MO(1)": "lower", - "MO(2)": "raise", - "MO(5)": "fn", - "LSFT_T(KC_SPC)": "sp/sh", - "KC_TRNS": "", - "KC_PSTE": "Paste", - - "KC_P1": "1", - "KC_P2": "2", - "KC_P3": "3", - "KC_P4": "4", - "KC_P5": "5", - "KC_P6": "6", - "KC_P7": "7", - "KC_P8": "8", - "KC_P9": "9", - "KC_P0": "0", - - "KC_PCMM": ",", - "KC_PDOT": ".", - "KC_PEQL": "=" -} diff --git a/layouts/community/ortho_4x12/guidoism/readme.md b/layouts/community/ortho_4x12/guidoism/readme.md @@ -1,107 +0,0 @@ -# Guido's Planck Keyboard Layout - -I've written a script to convert the json file from the -[QMK Configurator](https://config.qmk.fm) to the C macros -and a pretty form the comments. - -First import the json file in this directory into the configurator, -make any changes, export the file and then run this: - - mv ~/Downloads/guidoism.json layouts/community/ortho_4x12/guidoism/ && python3 layouts/community/ortho_4x12/guidoism/generate_c.py && make planck:guidoism:dfu - -TODO: Move running of generate_c.py to makefile so I just need to run `make planck:guidoism:dfu` - -Note that the pretty forms of the keys are defined in another json -file and are made for my specific board. You made need to update this -file to get the pretty forms to look right. - -* Left palm to the `mov` key gets you the `Move` layer -* Right thumb on the `raise` key gets you the various programming brackets and parens on your left hand -* Left palm on `mov` key and left thumb on `lower` key gets you a numpad on your right hand -* Shift with the spacebar -* Left pinky is control on hold and escape on tap - -## Current Configuration - -## Qwerty -``` -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -``` - - -## Lower -``` -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ caps│ │ │ │ │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -``` - - -## Raise -``` -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ < │ > │ { │ } │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -``` - - -## Movement -``` -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ home│ │ end │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -``` - - -## Numpad -``` -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ 0 │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -``` - - -## Function -``` -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -``` diff --git a/layouts/community/ortho_4x12/wanleg/rules.mk b/layouts/community/ortho_4x12/wanleg/rules.mk @@ -5,10 +5,10 @@ ifeq ($(strip $(KEYBOARD)), jj40) SWAP_HANDS_ENABLE = no endif -ifeq ($(strip $(KEYBOARD)), 4x4) +ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4) SWAP_HANDS_ENABLE = no endif ifeq ($(strip $(KEYBOARD)), zlant) SWAP_HANDS_ENABLE = no -endif- \ No newline at end of file +endif diff --git a/layouts/community/ortho_4x12/xyverz/rules.mk b/layouts/community/ortho_4x12/xyverz/rules.mk @@ -3,6 +3,8 @@ AUDIO_ENABLE = no # Audio output on port C6 ifeq ("$(KEYBOARD)","vitamins_included") RGBLIGHT_ENABLE = no +else ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4) + RGBLIGHT_ENABLE = no else RGBLIGHT_ENABLE = yes endif diff --git a/layouts/community/planck_mit/guidoism/config.h b/layouts/community/planck_mit/guidoism/config.h @@ -0,0 +1,24 @@ +/* +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 IGNORE_MOD_TAP_INTERRUPT +#define USB_MAX_POWER_CONSUMPTION 50 diff --git a/layouts/community/planck_mit/guidoism/generate_c.py b/layouts/community/planck_mit/guidoism/generate_c.py @@ -0,0 +1,75 @@ +import itertools +import json +import os.path +import re + +KEYMAP_C = """/* {0} +{1} +*/ +[{2}] = {3}( + {4}) +""" + +README_MD = """## {0} +``` +{1} +``` +""" + +base = os.path.dirname(__file__) + +layer_names = dict(enumerate(['_QWERTY', '_LOWER', '_RAISE', '_MOVEMENT', '_NUMPAD', '_FUNCTION'])) +layer_name = {('MO(%d)' % i): layer_names.get(i).strip('_') for i in layer_names.keys()} + +keys = json.load(open(os.path.join(base, 'keys.json'))) + +d = json.load(open(os.path.join(base, 'guidoism.json'))) + +def surround(s, a, b, c): + return a + b.join(s) + c + +def pattern(cell, table): + return ['─'*cell for i in range(table)] + +top = surround(pattern(5, 12), '┌', '┬', '┐') +mid = surround(pattern(5, 12), '├', '┼', '┤') +bottom = surround(pattern(5, 12), '└', '┴', '┘') + +from more_itertools import chunked, intersperse, interleave_longest + +def uni(k): + return keys.get(k, k).lower().center(5) + +def c_layout(i, definition, template): + c_name = layer_names[i] + pretty_name = c_name.strip('_').capitalize() + layout = d['layout'] + + surround = lambda s: ''.join(interleave_longest(['│']*(len(s)+1), s)) + layer = list(map(uni, definition)) + layer[41] = layer[41].center(11) + layer = chunked(layer, 12) + rows = intersperse(mid, map(surround, layer)) + pretty = '\n'.join(itertools.chain([top], rows, [bottom])) + + surround = lambda s: ', '.join(s) + layer = list(map(lambda k: layer_name.get(k, k), definition)) + layer = chunked(layer, 12) + rows = map(surround, layer) + c_layer = ',\n '.join(itertools.chain([], rows, [])) + + return template.format(pretty_name, pretty, c_name, layout, c_layer) + +start = '// START_REPLACEMENT\n' +end = '// END_REPLACEMENT\n' +replacement = start + ',\n\n'.join(c_layout(i, l, KEYMAP_C) for i, l in enumerate(d['layers'])) + end +keymap = os.path.join(base, 'keymap.c') +existing = open(keymap).read() +r = re.compile(r'// START_REPLACEMENT.*// END_REPLACEMENT', re.DOTALL) +open(keymap, 'w').write(r.sub(replacement, existing)) + +replacement = '## Current Configuration\n\n' + '\n\n'.join(c_layout(i, l, README_MD) for i, l in enumerate(d['layers'])) +keymap = os.path.join(base, 'readme.md') +existing = open(keymap).read() +r = re.compile(r'## Current Configuration.*', re.DOTALL) +open(keymap, 'w').write(r.sub(replacement, existing)) diff --git a/layouts/community/planck_mit/guidoism/guidoism.json b/layouts/community/planck_mit/guidoism/guidoism.json @@ -0,0 +1 @@ +{"keyboard":"planck/rev4","keymap":"guidoism","layout":"LAYOUT_planck_mit","layers":[["KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSPC","KC_LCTL","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_COLN","KC_ENT","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_NO","MO(3)","KC_ESC","KC_LALT","KC_LGUI","MO(1)","LSFT_T(KC_SPC)","MO(2)","KC_RGUI","KC_RALT","KC_SCLN","MO(5)"],["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_NO","KC_NO","KC_UNDO","KC_TRNS","KC_NO","KC_CUT","KC_COPY","KC_PSTE","KC_NO","KC_NO","KC_UNDS","KC_PLUS","KC_DQUO","KC_QUOT","KC_PIPE","KC_CAPS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MNXT","KC_VOLD","KC_VOLU","KC_MPLY"],["KC_GRV","KC_P1","KC_P2","KC_P3","KC_P4","KC_P5","KC_P6","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_LBRC","KC_RBRC","KC_LPRN","KC_RPRN","KC_NO","KC_NO","KC_PMNS","KC_PEQL","KC_NO","KC_NO","KC_BSLS","KC_TRNS","KC_LT","KC_GT","KC_LCBR","KC_RCBR","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["RESET","DEBUG","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PGUP","KC_UP","KC_PGDN","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_HOME","KC_NO","KC_END","KC_NO","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_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PERC","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_DLR","KC_P4","KC_P5","KC_P6","KC_PDOT","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P0","KC_P1","KC_P2","KC_P3","KC_PCMM","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_P0","KC_NO","KC_NO","KC_TRNS"],["KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS"]]}+ \ No newline at end of file diff --git a/layouts/community/planck_mit/guidoism/keymap.c b/layouts/community/planck_mit/guidoism/keymap.c @@ -0,0 +1,183 @@ +#include QMK_KEYBOARD_H + +extern keymap_config_t keymap_config; + +enum planck_layers { + _QWERTY, + _LOWER, + _RAISE, + _MOVEMENT, + _NUMPAD, + _FUNCTION, +}; + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + MOVEMENT, + NUMPAD, +}; + +#define FUNCTION MO(_FUNCTION) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// START_REPLACEMENT +/* Qwerty +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ +[_QWERTY] = LAYOUT_planck_mit( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, + MOVEMENT, KC_ESC, KC_LALT, KC_LGUI, LOWER, LSFT_T(KC_SPC), RAISE, KC_RGUI, KC_RALT, KC_SCLN, FUNCTION) +, + +/* Lower +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ caps│ │ │ │ │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ +[_LOWER] = LAYOUT_planck_mit( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_NO, KC_NO, KC_UNDO, + KC_TRNS, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_DQUO, KC_QUOT, KC_PIPE, + KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY) +, + +/* Raise +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ < │ > │ { │ } │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ +[_RAISE] = LAYOUT_planck_mit( + KC_GRV, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, + KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_PMNS, KC_PEQL, KC_NO, KC_NO, KC_BSLS, + KC_TRNS, KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +, + +/* Movement +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ home│ │ end │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ +[_MOVEMENT] = LAYOUT_planck_mit( + RESET, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_END, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +, + +/* Numpad +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ 0 │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ +[_NUMPAD] = LAYOUT_planck_mit( + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PERC, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DLR, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_P1, KC_P2, KC_P3, KC_PCMM, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_P0, KC_NO, KC_NO, KC_TRNS) +, + +/* Function +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ +[_FUNCTION] = LAYOUT_planck_mit( + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS) +// END_REPLACEMENT + + + + + + + + +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + } else { + layer_off(_RAISE); + } + return false; + break; + case MOVEMENT: + if (record->event.pressed) { + layer_on(_MOVEMENT); + update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); + } else { + layer_off(_MOVEMENT); + update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD); + } + return false; + break; + } + return true; +} diff --git a/layouts/community/planck_mit/guidoism/keys.json b/layouts/community/planck_mit/guidoism/keys.json @@ -0,0 +1,317 @@ +{ + "KC_1": "1", + "SHIFTED_KC_1": "!", + "KC_2": "2", + "SHIFTED_KC_2": "@", + "KC_3": "3", + "SHIFTED_KC_3": "#", + "KC_4": "4", + "SHIFTED_KC_4": "$", + "KC_5": "5", + "SHIFTED_KC_5": "%", + "KC_6": "6", + "SHIFTED_KC_6": "^", + "KC_7": "7", + "SHIFTED_KC_7": "&", + "KC_8": "8", + "SHIFTED_KC_8": "*", + "KC_9": "9", + "SHIFTED_KC_9": "(", + "KC_0": "0", + "SHIFTED_KC_0": ")", + "KC_A": "a", + "SHIFTED_KC_A": "A", + "KC_B": "b", + "SHIFTED_KC_B": "B", + "KC_C": "c", + "SHIFTED_KC_C": "C", + "KC_D": "d", + "SHIFTED_KC_D": "D", + "KC_E": "e", + "SHIFTED_KC_E": "E", + "KC_F": "f", + "SHIFTED_KC_F": "F", + "KC_G": "g", + "SHIFTED_KC_G": "G", + "KC_H": "h", + "SHIFTED_KC_H": "H", + "KC_I": "i", + "SHIFTED_KC_I": "I", + "KC_J": "j", + "SHIFTED_KC_J": "J", + "KC_K": "k", + "SHIFTED_KC_K": "K", + "KC_L": "l", + "SHIFTED_KC_L": "L", + "KC_M": "m", + "SHIFTED_KC_M": "M", + "KC_N": "n", + "SHIFTED_KC_N": "N", + "KC_O": "o", + "SHIFTED_KC_O": "O", + "KC_P": "p", + "SHIFTED_KC_P": "P", + "KC_Q": "q", + "SHIFTED_KC_Q": "Q", + "KC_R": "r", + "SHIFTED_KC_R": "R", + "KC_S": "s", + "SHIFTED_KC_S": "S", + "KC_T": "t", + "SHIFTED_KC_T": "T", + "KC_U": "u", + "SHIFTED_KC_U": "U", + "KC_V": "v", + "SHIFTED_KC_V": "V", + "KC_W": "w", + "SHIFTED_KC_W": "W", + "KC_X": "x", + "SHIFTED_KC_X": "X", + "KC_Y": "y", + "SHIFTED_KC_Y": "Y", + "KC_Z": "z", + "SHIFTED_KC_Z": "Z", + "KC_ENTER": "\u23ce", + "KC_ENT": "\u23ce", + "KC_ESCAPE": "\u238b", + "KC_ESC": "\u238b", + "KC_BSPACE": "\u232b", + "KC_BSPC": "\u232b", + "KC_TAB": "\u21e5", + "KC_SPACE": "", + "KC_SPC": "", + "KC_MINUS": "-", + "KC_MINS": "-", + "KC_EQUAL": "+", + "KC_EQL": "=", + "KC_LBRACKET": "{", + "KC_LBRC": "[", + "KC_RBRACKET": "}", + "KC_RBRC": "]", + "KC_BSLS": "\\", + "KC_BSLASH": "\\", + "KC_SCOLON": ":", + "KC_SCLN": ";", + "KC_QUOTE": "\"", + "KC_QUOT": "'", + "KC_GRAVE": "`", + "KC_GRV": "`", + "KC_COMMA": ",", + "KC_COMM": ",", + "KC_DOT": ".", + "KC_SLASH": "/", + "KC_NUBS": "/", + "KC_NUHS": "#", + "KC_CAPSLOCK": "Caps", + "KC_CAPS": "Caps", + "KC_LCTRL": "Ctrl", + "KC_LCTL": "Ctrl", + "KC_LSHIFT": "\u21e7", + "KC_LSFT": "\u21e7", + "KC_LALT": "\u2325", + "KC_LGUI": "\u2318", + "KC_LCMD": "\u2318", + "KC_RCTRL": "Right Control", + "KC_RCTL": "Right Control", + "KC_RSHIFT": "\u21e7", + "KC_RSFT": "\u21e7", + "KC_RALT": "\u2325", + "KC_RGUI": "\u2318", + "KC_RCMD": "\u2318", + "KC_LOCKING_CAPS": "Locking Caps Lock", + "KC_LCAP": "Locking Caps Lock", + "KC_LOCKING_NUM": "Locking Num Lock", + "KC_LNUM": "Locking Num Lock", + "KC_LOCKING_SCROLL": "Locking Scroll Lock", + "KC_LSCR": "Locking Scroll Lock", + "KC_INT4": "JIS Henkan", + "KC_HENK": "JIS Henkan", + "KC_INT5": "JIS Muhenkan", + "KC_MHEN": "JIS Muhenkan", + "KC_PSCREEN": "Print Screen", + "KC_PSCR": "Print Screen", + "KC_SCROLLLOCK": "Scroll Lock", + "KC_SLCK": "Scroll Lock", + "KC_PAUSE": "Pause", + "KC_PAUS": "Pause", + "KC_INSERT": "Insert", + "KC_INS": "Insert", + "KC_HOME": "Home", + "KC_PGUP": "PgUp", + "KC_DELETE": "\u2326", + "KC_DEL": "\u2326", + "KC_END": "End", + "KC_PGDOWN": "PgDn", + "KC_PGDN": "PgDn", + "KC_RIGHT": "→", + "KC_RGHT": "→", + "KC_LEFT": "←", + "KC_DOWN": "↓", + "KC_UP": "↑", + "KC_APPLICATION": "Application (Windows Menu Key)", + "KC_APP": "Application (Windows Menu Key)", + "KC_POWER": "Deprecated by MS in favor of KC_SYSTEM_POWER.", + "KC_EXECUTE": "Execute", + "KC_HELP": "Help", + "KC_MENU": "Menu", + "KC_SELECT": "Select", + "KC_AGAIN": "Again", + "KC_UNDO": "Undo", + "KC_CUT": "Cut", + "KC_COPY": "Copy", + "KC_PASTE": "Paste", + "KC_FIND": "Find", + "KC_ALT_ERASE": "Alternate Erase", + "KC_SYSREQ": "SysReq/Attention", + "KC_CANCEL": "Cancel", + "KC_CLEAR": "Clear", + "KC_PRIOR": "Prior", + "KC_RETURN": "Return", + "KC_SEPARATOR": "Separator", + "KC_OUT": "Out", + "KC_OPER": "Oper", + "KC_CLEAR_AGAIN": "Clear/Again", + "KC_CRSEL": "CrSel/Props", + "KC_EXSEL": "ExSel", + "KC_SYSTEM_POWER": "System Power Down.", + "KC_PWR": "System Power Down.", + "KC_SYSTEM_SLEEP": "System Sleep", + "KC_SLEP": "System Sleep", + "KC_SYSTEM_WAKE": "System Wake", + "KC_WAKE": "System Wake", + "KC_STOP": "Stop", + "KC__MUTE": "Mute (macOS)", + "KC__VOLUP": "vol+", + "KC__VOLDOWN": "vol-", + "KC_AUDIO_MUTE": "Mute", + "KC_MUTE": "Mute", + "KC_AUDIO_VOL_UP": "vol+", + "KC_VOLU": "vol+", + "KC_AUDIO_VOL_DOWN": "vol-", + "KC_VOLD": "vol-", + "KC_MEDIA_NEXT_TRACK": "next", + "KC_MNXT": "next", + "KC_MEDIA_PREV_TRACK": "Previous Track (Windows)", + "KC_MPRV": "Previous Track (Windows)", + "KC_MEDIA_FAST_FORWARD": "next", + "KC_MFFD": "next", + "KC_MEDIA_REWIND": "Previous Track (macOS)", + "KC_MRWD": "Previous Track (macOS)", + "KC_MEDIA_STOP": "Stop Track", + "KC_MSTP": "Stop Track", + "KC_MEDIA_PLAY_PAUSE": "play", + "KC_MPLY": "play", + "KC_NUMLOCK": "Keypad Num Lock and Clear", + "KC_NLCK": "Keypad Num Lock and Clear", + "KC_SLSH": "/", + "KC_KP_SLASH": "/", + "KC_PSLS": "/", + "KC_KP_ASTERISK": "*", + "KC_PAST": "*", + "KC_KP_MINUS": "-", + "KC_PMNS": "-", + "KC_PPLS": "+", + "KC_KP_ENTER": "Enter", + "KC_PENT": "Enter", + "KC_KP_1": "1", + "KC_KP_2": "2", + "KC_KP_3": "3", + "KC_KP_4": "4", + "KC_KP_5": "5", + "KC_KP_6": "6", + "KC_KP_7": "7", + "KC_KP_8": "8", + "KC_KP_9": "9", + "KC_KP_0": "0", + "KC_F1": "F1", + "KC_F2": "F2", + "KC_F3": "F3", + "KC_F4": "F4", + "KC_F5": "F5", + "KC_F6": "F6", + "KC_F7": "F7", + "KC_F8": "F8", + "KC_F9": "F9", + "KC_F10": "F10", + "KC_F11": "F11", + "KC_F12": "F12", + "_______": "", + "KC_TILDE": "~", + "KC_TILD": "~", + "KC_EXCLAIM": "!", + "KC_EXLM": "!", + "KC_AT": "@", + "KC_HASH": "#", + "KC_DOLLAR": "$", + "KC_DLR": "$", + "KC_PERCENT": "%", + "KC_PERC": "%", + "KC_CIRCUMFLEX": "^", + "KC_CIRC": "^", + "KC_AMPERSAND": "&", + "KC_AMPR": "&", + "KC_ASTERISK": "*", + "KC_ASTR": "*", + "KC_LEFT_PAREN": "(", + "KC_LPRN": "(", + "KC_RIGHT_PAREN": ")", + "KC_RPRN": ")", + "KC_UNDERSCORE": "_", + "KC_UNDS": "_", + "KC_PLUS": "+", + "KC_LEFT_CURLY_BRACE": "{", + "KC_LCBR": "{", + "KC_RIGHT_CURLY_BRACE": "}", + "KC_RCBR": "}", + "KC_PIPE": "|", + "KC_COLON": ":", + "KC_COLN": ":", + "KC_DOUBLE_QUOTE": "\"", + "KC_DQUO": "\"", + "KC_DQT": "\"", + "KC_LEFT_ANGLE_BRACKET": "<", + "KC_LABK": "<", + "KC_LT": "<", + "KC_RIGHT_ANGLE_BRACKET": ">", + "KC_RABK": ">", + "KC_GT": ">", + "KC_QUESTION": "?", + "KC_QUES": "?", + "KC_KP_PLUS": "+", + "LSFT_T(KC_CAPS)": "\u21e7", + + "LGUI(KC_X)": "<i class='fa fa-cut'></i>", + "LGUI(KC_C)": "<i class='fa fa-copy'></i>", + "LGUI(S(LALT(KC_V)))": "<i class='fa fa-paste'></i>", + + "S(KC_NUHS)": "#", + "S(KC_NUBS)": "/", + "MOVEMENT": "\u0394", + "RAISE": "\u2350", + "LOWER": "\u2357", + "LCTL_T(KC_ESC)": "c/e", + "KC_NO": " ", + + "MO(3)": "mov", + "MO(1)": "lower", + "MO(2)": "raise", + "MO(5)": "fn", + "LSFT_T(KC_SPC)": "sp/sh", + "KC_TRNS": "", + "KC_PSTE": "Paste", + + "KC_P1": "1", + "KC_P2": "2", + "KC_P3": "3", + "KC_P4": "4", + "KC_P5": "5", + "KC_P6": "6", + "KC_P7": "7", + "KC_P8": "8", + "KC_P9": "9", + "KC_P0": "0", + + "KC_PCMM": ",", + "KC_PDOT": ".", + "KC_PEQL": "=" +} diff --git a/layouts/community/planck_mit/guidoism/readme.md b/layouts/community/planck_mit/guidoism/readme.md @@ -0,0 +1,107 @@ +# Guido's Planck Keyboard Layout + +I've written a script to convert the json file from the +[QMK Configurator](https://config.qmk.fm) to the C macros +and a pretty form the comments. + +First import the json file in this directory into the configurator, +make any changes, export the file and then run this: + + mv ~/Downloads/guidoism.json layouts/community/ortho_4x12/guidoism/ && python3 layouts/community/ortho_4x12/guidoism/generate_c.py && make planck:guidoism:dfu + +TODO: Move running of generate_c.py to makefile so I just need to run `make planck:guidoism:dfu` + +Note that the pretty forms of the keys are defined in another json +file and are made for my specific board. You made need to update this +file to get the pretty forms to look right. + +* Left palm to the `mov` key gets you the `Move` layer +* Right thumb on the `raise` key gets you the various programming brackets and parens on your left hand +* Left palm on `mov` key and left thumb on `lower` key gets you a numpad on your right hand +* Shift with the spacebar +* Left pinky is control on hold and escape on tap + +## Current Configuration + +## Qwerty +``` +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +``` + + +## Lower +``` +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ caps│ │ │ │ │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +``` + + +## Raise +``` +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ < │ > │ { │ } │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +``` + + +## Movement +``` +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ home│ │ end │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +``` + + +## Numpad +``` +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ 0 │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +``` + + +## Function +``` +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +```