keyboard-config/atreus/qmk/keymaps/fschl-38/keymap.c

123 lines
5.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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