diff --git a/README.org b/README.org index 08c7a48..0b4cc98 100644 --- a/README.org +++ b/README.org @@ -33,6 +33,14 @@ edge of each hand. Tapped they are TAB and Enter, on hold they act as Ctrl keys Instructions see [[./atreus/README.org]] +** TODO Atreus with QMK [0/1] + +- Three outer keys on bottom row removed, only leaving three thumb keys +- moved to HomeRowMods +- [ ] introduce a smart shift key, to avoid slowdowns caused by having + to wait for home-row shift to activate, especially when typing + longer texts + ** Chocofi 36 with QMK According to this issue [[https://github.com/pashutk/chocofi/issues/6][pashutk/chocofi#6 firmware?]] one should use ~crkbd~ config. diff --git a/atreus/README.org b/atreus/README.org index 5ac88c6..4f04ed2 100644 --- a/atreus/README.org +++ b/atreus/README.org @@ -26,10 +26,37 @@ from keyboard.io flashed with Kaleidoscope firmware (by the lovely keyboardio fo - ~export KALEIDOSCOPE_DIR=${HOME}/projects/Kaleidoscope~ - ~cd ./colemak-dhm/ && make flash~ +*** QMK + +#+begin_quote +Bootloader mode: while you can put the board in bootloader mode by +simply plugging it in while holding ESC down (being ESC the left +button corner key), you will need to click the RESET button to be able +to flash the board with arvdude or QMK Toolbox (there’s an hole in the +middle of the back of the board). EDIT: at least this is in my +experience, but in theory you should be able to flash the board +without using the RESET button, simply putting it in bootloader mode. +#+end_quote +https://www.reddit.com/r/olkb/comments/jaxhkk/keyboardio_atreus_how_tos_custom_layout_via_qmk/ + +- follow https://docs.qmk.fm/newbs_getting_started +- ./qmk/keymaps/fschl-38/ should be symlinked into =~/git/qmk_firmware/keyboards/keyboardio/atreus/keymaps/= +- =qmk compile -kb keyboardio/atreus -km fschl-38= +- https://atreus.technomancy.us/flash +- open with chrome to do a factory reset: + https://www.reddit.com/r/olkb/comments/jaxhkk/keyboardio_atreus_how_tos_custom_layout_via_qmk/ + ** The Layout [[./keyboard-layout-colemak-DHm.png]] +*** TODO + +- smart shift on a thumb key, to avoid weird situations with home-row-shift +- smart num, to avoid weird taps for the num layer when typing commas and dots +- tapdance or sth similar for ß, € +https://github.com/urob/zmk-config + *** Adjusted QWERTY Layer for gaming [[./keyboard-layout-GW-gaming_draft.png]] diff --git a/atreus/qmk/keymaps/fschl-38/config.h b/atreus/qmk/keymaps/fschl-38/config.h new file mode 100644 index 0000000..5269455 --- /dev/null +++ b/atreus/qmk/keymaps/fschl-38/config.h @@ -0,0 +1,52 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +//#define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +//#define QUICK_TAP_TERM 0 +#define TAPPING_TERM 170 + +// https://docs.qmk.fm/features/caps_word#caps-word +#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_TWINKLE + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif diff --git a/atreus/qmk/keymaps/fschl-38/keymap.c b/atreus/qmk/keymaps/fschl-38/keymap.c new file mode 100644 index 0000000..fef58a1 --- /dev/null +++ b/atreus/qmk/keymaps/fschl-38/keymap.c @@ -0,0 +1,122 @@ +// Copyright (C) 2019, 2020 Keyboard.io, Inc +// +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + +enum layer_names { + COLEMAK, + NUM_SYM, + NAV_FUN, + MOUSEMO, +}; + +/* + * About Layer switching: + * https://docs.qmk.fm/feature_layers#switching-and-toggling-layers + * + */ + +/* + * TODOs + - Umlauts ä+ö on pinky hold (remove homerow GUI, currently using it on left thumb anyway) + - Umlauts ü on holding u + - thumb6 is shift on hold, to ease typing acronyms + - use caps-word feature!?!! + - could be bad to have space, enter and shift on the same thumb exclusively + - maybe move DEL to right thumb and have shift only on left thumb? + - optionally make DEL, BSPC as combos on top/bottom row (reachable and + effortless to combine with HRM + + */ + +// Left-hand thumb keys +#define THUMB1 KC_LSFT // activates CAPS_WORD on double tap (see below) +#define THUMB2 LT(NAV_FUN, KC_ESC) +#define THUMB3 LSFT_T(KC_TAB) + +// right-hand thumb keys +#define THUMB4 CTL_T(KC_SPC) +#define THUMB5 LT(NUM_SYM, KC_ENT) +#define THUMB6 LT(NAV_FUN, KC_BSPC) + + +// Left-hand home row mods +#define HGUI_A LGUI_T(KC_A) +#define HALT_R LALT_T(KC_R) +#define HSFT_S LSFT_T(KC_S) +#define HCTL_T LCTL_T(KC_T) + +#define HGUI_AT LGUI_T(KC_AT) +#define HALT_F4 LALT_T(KC_F4) +#define HSFT_F5 LSFT_T(KC_F5) +#define HCTL_F6 LCTL_T(KC_F6) + +// Right-hand home row mods +#define HCTL_N RCTL_T(KC_N) +#define HSFT_E RSFT_T(KC_E) +#define HALT_I LALT_T(KC_I) +#define HGUI_O RGUI_T(KC_O) + +// MOUSEMO on right hand index M +#define HMOU_M LT(MOUSEMO, KC_M) +#define HMOU_LEFT LT(MOUSEMO, KC_LEFT) + +// https://docs.qmk.fm/features/key_overrides +const key_override_t *key_overrides[] = { + &ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL), // S-BSP ≡ DEL + // Emacs got me used to these, so let's convince other programs that + // we are in fact sending the correct keys. + &ko_make_basic(MOD_MASK_CTRL, KC_I, KC_TAB), // C-i ≡ Tab + &ko_make_basic(MOD_MASK_CTRL, KC_M, KC_ENT), // C-m ≡ Return +}; + +// default bottom row +/* KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT ), */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [COLEMAK] = LAYOUT( /* Colema-DH */ + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Z, KC_BSPC, + HGUI_A, HALT_R, HSFT_S, HCTL_T, KC_G, HMOU_M, HCTL_N, HSFT_E, HALT_I, HGUI_O, + KC_Y, KC_X, KC_C, KC_D, KC_V, KC_GRV, KC_BSLS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , + XXXXXXX, XXXXXXX, XXXXXXX, THUMB1, THUMB2, THUMB3, THUMB4, THUMB5, THUMB6, XXXXXXX, XXXXXXX, XXXXXXX), + + /* + * Improve: use https://docs.qmk.fm/features/layer_lock to quickly insert one key from this layer + * and have the option to lock into it, when inserting longer numbers/math expressions. This + * also makes two right thumb keys available. + * ! " § $ % || / (\) 7 8 9 + + * < { ( [ ' || * 4 5 6 - (_) + * > } ) ] @ LOCK || , . 1 2 3 = + * | ~ & || ^ LAYER 0 + */ + [NUM_SYM] = LAYOUT + ( + DE_EXLM, DE_DQUO, DE_QUES, DE_PERC, DE_DLR, DE_SLSH, KC_7, KC_8, KC_9, DE_PLUS, + DE_LABK, DE_LCBR, DE_LPRN, DE_LBRC, DE_QUOT, DE_ASTR, KC_4, KC_5, KC_6, DE_MINS, + DE_RABK, DE_RCBR, DE_RPRN, DE_RBRC, DE_AT, QK_LLCK, KC_COMM, KC_DOT, KC_1, KC_2, KC_3, DE_EQL, + XXXXXXX, XXXXXXX, XXXXXXX, DE_PIPE, DE_TILD, DE_AMPR, KC_CIRC, _______, DE_0, XXXXXXX, XXXXXXX, XXXXXXX), + + /* + * ´ F7 F8 F9 F10 || INS HOME UP END PgUp + * ` F4 F5 F6 F11 || Left Down Up Right PgDown + * F1 F2 F3 F12 LOCK || VolUp Prev Stop Pause Play Next + * XXXXX _____ pause || VolDown Print XXXXX + */ + [NAV_FUN] = LAYOUT( /* */ + DE_BSLS, KC_F7, KC_F8, KC_F9, KC_F10, LCTL(KC_F), KC_HOME, KC_END, RCS(KC_F), KC_BSPC, + HGUI_AT, HALT_F4, HSFT_F5, HCTL_F6, KC_F11, HMOU_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_DEL, + DE_AT, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX, XXXXXXX, LCTL(KC_H), KC_PGDN, KC_PGUP, RCS(KC_H), LCTL(KC_P), + KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(COLEMAK), KC_PSCR, KC_SCRL, KC_PAUS), + + + [MOUSEMO] = LAYOUT( + XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_UDIA, XXXXXXX, XXXXXXX, + DE_ADIA, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN3, _______, KC_VOLD, KC_MUTE, KC_VOLU, DE_ODIA, + XXXXXXX, KC_WH_L, XXXXXXX, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, XXXXXXX, + _______, _______, _______, _______, KC_BTN1, KC_WH_D, KC_WH_U, KC_BTN2, _______, _______, _______, _______) +}; + +// https://docs.qmk.fm/features/combo#combos diff --git a/atreus/qmk/keymaps/fschl-38/rules.mk b/atreus/qmk/keymaps/fschl-38/rules.mk new file mode 100644 index 0000000..365e786 --- /dev/null +++ b/atreus/qmk/keymaps/fschl-38/rules.mk @@ -0,0 +1,11 @@ +LAYER_LOCK_ENABLE = yes +MOUSEKEY_ENABLE = yes # Mouse keys + +# https://docs.qmk.fm/features/key_overrides +KEY_OVERRIDE_ENABLE = yes + +# https://docs.qmk.fm/features/combo +# COMBO_ENABLE = yes + +# https://docs.qmk.fm/features/caps_word#caps-word +CAPS_WORD_ENABLE = yes