From 3eb651dc3a46f48b7f8a2f796dac2ab9dec36e67 Mon Sep 17 00:00:00 2001 From: wholteza Date: Sun, 20 Jul 2025 12:29:44 +0200 Subject: [PATCH] Added handwired/planck wholteza layout --- keyboards/handwired/planck/keyboard.json | 77 ++++++++++++ .../handwired/planck/keymaps/default/keymap.c | 50 ++++++++ .../planck/keymaps/default/readme.md | 3 + .../wholteza/keyboard-layout-editor.json | 111 ++++++++++++++++++ .../planck/keymaps/wholteza/keymap.c | 52 ++++++++ .../planck/keymaps/wholteza/readme.md | 7 ++ keyboards/handwired/planck/readme.md | 21 ++++ 7 files changed, 321 insertions(+) create mode 100644 keyboards/handwired/planck/keyboard.json create mode 100644 keyboards/handwired/planck/keymaps/default/keymap.c create mode 100644 keyboards/handwired/planck/keymaps/default/readme.md create mode 100644 keyboards/handwired/planck/keymaps/wholteza/keyboard-layout-editor.json create mode 100644 keyboards/handwired/planck/keymaps/wholteza/keymap.c create mode 100644 keyboards/handwired/planck/keymaps/wholteza/readme.md create mode 100644 keyboards/handwired/planck/readme.md diff --git a/keyboards/handwired/planck/keyboard.json b/keyboards/handwired/planck/keyboard.json new file mode 100644 index 00000000..9da6b6ec --- /dev/null +++ b/keyboards/handwired/planck/keyboard.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "Planck", + "maintainer": "Wholteza ", + "manufacturer": "OLKB", + "url": "https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/", + "bootloader": "halfkay", + "processor": "atmega32u4", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C7", "D6", "D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["E6", "B3", "B7", "D0"] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x1234", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + ] + } + } +} diff --git a/keyboards/handwired/planck/keymaps/default/keymap.c b/keyboards/handwired/planck/keymaps/default/keymap.c new file mode 100644 index 00000000..b89d50b2 --- /dev/null +++ b/keyboards/handwired/planck/keymaps/default/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2025 Zackarias Montell @Wholteza + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _NUM, + _SYM, + _EXTRAS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [_NUM] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_SYM] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [_EXTRAS] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, 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/handwired/planck/keymaps/default/readme.md b/keyboards/handwired/planck/keymaps/default/readme.md new file mode 100644 index 00000000..fdfa831d --- /dev/null +++ b/keyboards/handwired/planck/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The Default Planck Layout + +Maintained by [Wholteza](https://github.com/wholteza). diff --git a/keyboards/handwired/planck/keymaps/wholteza/keyboard-layout-editor.json b/keyboards/handwired/planck/keymaps/wholteza/keyboard-layout-editor.json new file mode 100644 index 00000000..a3423a6b --- /dev/null +++ b/keyboards/handwired/planck/keymaps/wholteza/keyboard-layout-editor.json @@ -0,0 +1,111 @@ +[ + [ + { + "c": "#ff0000", + "a": 5 + }, + "Tab\nDel\n\n\n\n\nESC", + { + "c": "#cccccc" + }, + "1\n!\n\n\n\n\nQ", + "2\n@\n\n\n\n\nW", + "3\n$\n\n\n\n\nF", + "4\n~\n\n\n\n\nP", + "5\n^\n\n\n\n\nG", + "6\n{\n\n\n\n\nJ", + "7\n[\n\n\n\n\nL", + "8\n]\n\n\n\n\nU", + "9\n}\n\n\n\n\nY", + "0\n<\n\n\n\n\nÖ", + "+\n\n\n\n\n\nÅ" + ], + [ + { + "c": "#ff0000", + "a": 7 + }, + "Backsp\n\n\n\nReset", + { + "c": "#cccccc" + }, + "A", + { + "a": 5 + }, + "Left\n\"\n\n\n\n\nR", + "Up\n#\n\n\n\n\nS", + "Down\n%\n\n\n\n\nT", + "Right\n'\n\n\n\n\nD", + "Home\n/\n\n\n\n\nH", + "End\n(\n\n\n\n\nN", + "Pgdn\n)\n\n\n\n\nE", + "Pgup\n=\n\n\n\n\nI", + "\n>\n\n\n\n\nO", + "F12\n\n\n\n\n\nÄ" + ], + [ + { + "c": "#969696", + "a": 7 + }, + "Shift", + { + "c": "#cccccc", + "a": 5 + }, + "F1\n\n\n\n\n\nZ", + "F2\n\n\n\n\n\nX", + "F3\n\n\n\n\n\nC", + "F4\n\n\n\n\n\nV", + "F5\n*\n\n\n\n\nB", + "F6\n\\\n\n\n\n\nK", + "F7\n`\n\n\n\n\nM", + "F8\n\n\n\n\n\n,", + "F9\n\n\n\n\n\n.", + "F10\n\n\n\n\n\n-", + { + "c": "#969696" + }, + "F11\n&\n\n\n\n\nShift" + ], + [ + { + "a": 7 + }, + "Ctrl", + "Ctr+Sh", + "Win", + "Alt", + { + "c": "#ff0000" + }, + "Numers", + { + "c": "#000000", + "t": "#ffffff", + "w": 2 + }, + "Space", + { + "c": "#ff0000", + "t": "#000000", + "a": 5 + }, + "Extras\n\n\n\n\n\nSymbols", + { + "c": "#0075ff", + "a": 7 + }, + "Enter", + { + "c": "#969696" + }, + "Win", + "Ctr+Sh", + { + "a": 5 + }, + "\n|\n\n\n\n\nCtrl" + ] +] \ No newline at end of file diff --git a/keyboards/handwired/planck/keymaps/wholteza/keymap.c b/keyboards/handwired/planck/keymaps/wholteza/keymap.c new file mode 100644 index 00000000..94e0d9b9 --- /dev/null +++ b/keyboards/handwired/planck/keymaps/wholteza/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2025 Zackarias Montell @Wholteza + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "keymap_swedish.h" + +enum layer_names { + _BASE, + _NUM, + _SYM, + _EXTRAS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, SE_Q, SE_W, SE_F, SE_P, SE_G, SE_J, SE_L, SE_U, SE_Y, SE_ODIA, SE_ARNG, + KC_BSPC, SE_A, SE_R, SE_S, SE_T, SE_D, SE_H, SE_N, SE_E, SE_I, SE_O, SE_ADIA, + KC_LSFT, SE_Z, SE_X, SE_C, SE_V, SE_B, SE_K, SE_M, SE_COMM, SE_DOT, SE_MINS, KC_LSFT, + KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, MO(1), KC_SPC, MO(2), KC_ENT, KC_LGUI, LCTL(KC_LSFT), KC_LCTL + ), + [_NUM] = LAYOUT( + KC_TAB, SE_1, SE_2, SE_3, SE_4, SE_5, SE_6, SE_7, SE_8, SE_9, SE_0, SE_PLUS, + KC_TRNS, KC_TRNS, KC_LEFT , KC_UP, KC_DOWN, KC_RIGHT, KC_HOME, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, KC_F12, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_SYM] = LAYOUT( + KC_DEL, SE_EXLM, SE_AT, SE_DLR, SE_TILD, SE_CIRC, SE_LCBR, SE_LBRC, SE_RBRC, SE_RCBR, SE_LABK, KC_TRNS, + KC_TRNS, KC_TRNS, SE_DQUO, SE_HASH, SE_PERC, SE_QUOT, SE_SLSH, SE_LPRN, SE_RPRN, SE_EQL, SE_RABK, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, SE_ASTR, SE_BSLS, SE_GRV, KC_TRNS, KC_TRNS, KC_TRNS, SE_AMPR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, SE_PIPE + ), + [_EXTRAS] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, 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/handwired/planck/keymaps/wholteza/readme.md b/keyboards/handwired/planck/keymaps/wholteza/readme.md new file mode 100644 index 00000000..d812ec00 --- /dev/null +++ b/keyboards/handwired/planck/keymaps/wholteza/readme.md @@ -0,0 +1,7 @@ +[Wholteza](https://github.com/wholteza)'s handwired planck layout + +![keyboard-layout-editor.com layout](https://i.imgur.com/7kJDaVS.png) + +This is a swedish layout using [colemak-se](https://github.com/motform/colemak-se) and a symbols layer tailored towards developers. + +In addition to using colemak-se it also has backspace in place of caps lock to reduce the need of moving your hands. diff --git a/keyboards/handwired/planck/readme.md b/keyboards/handwired/planck/readme.md new file mode 100644 index 00000000..86b1902f --- /dev/null +++ b/keyboards/handwired/planck/readme.md @@ -0,0 +1,21 @@ +# Plank Handwired + +![plank handwired](https://i.imgur.com/khseWs7.jpeg) + +A compact 40% (12x4) ortholinear keyboard kit sold by OLKB before they developed the rev1 PCB. + +Keyboard Maintainer: [Wholteza](https://github.com/wholteza) +Hardware Supported: [Teensy 2.0](https://www.pjrc.com/store/teensy.html) + +## Compile and Flash + +Make example for this keyboard (after setting up your build environment): + + qmk compile --keyboard handwired/planck --keymap default + +To flash the keyaboard, use the Teensy Loader application provided by [PJRC](https://www.pjrc.com/teensy/loader.html). + +## Pinout + +The pinout can be found in the `keyboard.json` and looking at your keyboards wiring (flipped with the keycaps facing down) column and row 0 is **top left**. +