Remove obvious user keymaps, keyboards/{b,c}* edition. (#22693)

This commit is contained in:
Nick Brassel
2023-12-18 16:05:50 +11:00
committed by GitHub
parent f25226453f
commit d235352504
621 changed files with 0 additions and 40804 deletions

View File

@@ -1,3 +0,0 @@
#pragma once
#define PERMISSIVE_HOLD

View File

@@ -1,56 +0,0 @@
/* Copyright 2017 Mathias Andersson <wraul@dbox.se>: Phantom Layout
* Copyright 2018 bakageta <amo@bakageta.com>: HID Liberation layouts
*
* 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/>.
*/
#include QMK_KEYBOARD_H
// Helpful defines
#define FN_CAPS LT(_FL, KC_CAPS)
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _BL 0 // Base Layer
#define _GL 1 // Gaming Layer
#define _FL 2 // Function Layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BL] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_BRK,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, TT(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[_GL] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_FL] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, TO(_BL), TO(_GL), _______, _______, _______, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, KC_VOLD, KC_MSTP, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, KC_MNXT, KC_MPLY, KC_MNXT,
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______,
_______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______
),
};

View File

@@ -1,58 +0,0 @@
# bakageta's Keymap for the HID Liberation Device
A personal keymap intended for the HID Liberation Device.
See [keymap.c](keymap.c) for details.
## Layers
This keymap has a base layer with combined Fn/Caps, Fn replacing APP, and an otherwise standard ANSI layout. The gaming layer blocks LGUI, and reverts caps back to a regular key for games that bind something to it. The function layer adds media keys to the nav cluster and a virtual numpad, with 1 and 2 selecting between Base and Gaming respectively.
### Layer 1: Base Layer
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------.
|~ | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins|Hom|PgU|
|-----------------------------------------------------------| |-----------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD|
|-----------------------------------------------------------| '-----------'
|Fn/Cps| A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------| ,---.
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | |Up |
|-----------------------------------------------------------| ,-----------.
|Ctl|Gui|Alt| Space |Alt|Gui|Fn |Ctl| |Lef|Dow|Rig|
`-----------------------------------------------------------' `-----------'
### Layer 2: Gaming Layer
,---. ,---------------. ,---------------. ,---------------. ,-----------.
| | | | | | | | | | | | | | | | | | | | |
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------.
| | | | | | | | | | | | | | | | | | |
|-----------------------------------------------------------| |-----------|
| | | | | | | | | | | | | | | | | | |
|-----------------------------------------------------------| '-----------'
| Caps | | | | | | | | | | | | |
|-----------------------------------------------------------| ,---.
| | | | | | | | | | | | | | |
|-----------------------------------------------------------| ,-----------.
| |XXX| | | | | | | | | | |
`-----------------------------------------------------------' `-----------'
### Layer 3: Function Layer
,---. ,---------------. ,---------------. ,---------------. ,-----------.
| | | | | | | | | | | | | | | | | | | | |
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------.
| | BL| GL| | | | | | | | | | | | |Vo-|Stp|Vo+|
|-----------------------------------------------------------| |-----------|
| | | | | | | | | | | | | | | |Prv|Ply|Nxt|
|-----------------------------------------------------------| '-----------'
| | | | | | | | | | | | | |
|-----------------------------------------------------------| ,---.
| | | | | | | | | | | | | | |
|-----------------------------------------------------------| ,-----------.
| | | | | | | | | | | | |
`-----------------------------------------------------------' `-----------'

View File

@@ -1,33 +0,0 @@
# Copyright 2013 Jun Wako <wakojun@gmail.com>
#
# 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/>.
# QMK Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View File

@@ -1,31 +0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#undef MOUSEKEY_MOVE_MAX
#define MOUSEKEY_MOVE_MAX 127
#undef MOUSEKEY_WHEEL_MAX
#define MOUSEKEY_WHEEL_MAX 110
#undef MOUSEKEY_MOVE_DELTA
#define MOUSEKEY_MOVE_DELTA 5
#undef MOUSEKEY_WHEEL_DELTA
#define MOUSEKEY_WHEEL_DELTA 1
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 50
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 20
#undef MOUSEKEY_MAX_SPEED
#define MOUSEKEY_MAX_SPEED 4
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 30
#undef MOUSEKEY_WHEEL_MAX_SPEED
#define MOUSEKEY_WHEEL_MAX_SPEED 3
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
#undef ONESHOT_TIMEOUT
#define ONESHOT_TIMEOUT 500
#undef TAPPING_TOGGLE
#define TAPPING_TOGGLE 2
#endif

View File

@@ -1,177 +0,0 @@
#include QMK_KEYBOARD_H
#define MEDAPP LT(MEDIA, KC_APP)
enum layers {
DEFAULT,
PROG1,
PROG2,
MEDIA,
MOUSE1,
MOUSE2,
MISC,
};
enum custom_keycodes {
LSHFT_PAREN = SAFE_RANGE,
RSHFT_PAREN,
LCTRL_BRACKET,
RCTRL_BRACKET,
LALT_CURLY,
RALT_CURLY,
CTRL_CLICK,
M_GRV,
M_CFLEX
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DEFAULT] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SCRL,KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NUM,KC_PSLS,KC_PAST,KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS,
TT(MOUSE1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
LSHFT_PAREN,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, RSHFT_PAREN, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT,
LCTRL_BRACKET,KC_LGUI, LALT_CURLY, LT(MISC, KC_SPC), RALT_CURLY,TT(PROG1), MEDAPP, RCTRL_BRACKET, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT),
/* Layer 1: Programming Layer 1, emulating US l ayout */
[PROG1] = LAYOUT(
KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
M_GRV,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,S(KC_0),_______, _______,_______,_______, _______,_______,_______,_______,
_______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______,ALGR(KC_8),ALGR(KC_9),ALGR(KC_MINS), _______,_______,_______, _______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,S(KC_COMM),S(KC_BSLS), _______, _______,_______,_______,
MO(PROG2),_______, KC_Y,_______,_______,_______,_______,_______,_______,_______,_______, S(KC_7), MO(PROG2), _______, _______,_______,_______,_______,
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
/* Layer 2: programming layer 2
all keys that are not FN keys are sent as LSFT+key on this layer
*/
[PROG2] = LAYOUT(
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
ALGR(KC_RBRC),_______, ALGR(KC_Q),KC_BSLS,_______,_______,M_CFLEX, S(KC_6),S(KC_RBRC), S(KC_8),S(KC_9),S(KC_SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, ALGR(KC_7),ALGR(KC_0),ALGR(KC_NUBS), _______,_______,_______, _______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, S(KC_DOT), S(KC_2), _______, _______,_______,_______,
_______,S(KC_NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(KC_NUBS),S(KC_MINS), _______, _______, _______,_______,_______,_______,
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
/* Layer 3: media layer */
[MEDIA] = LAYOUT(
KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX),
/* Layer 4: Mouse layer */
[MOUSE1] = LAYOUT(
TO(DEFAULT),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______,
_______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(KC_Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______,
_______,KC_BTN5,KC_MS_L,KC_MS_D,KC_MS_R, CTRL_CLICK,KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,_______,_______, _______, _______,_______,_______,
MO(MOUSE2),_______,C(KC_Y),C(KC_X),C(KC_C),C(KC_V),_______,KC_BTN2,KC_BTN3,C(KC_PGUP),C(KC_PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______,
KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______),
/* Layer 5: Mouse layer 2*/
[MOUSE2] = LAYOUT(
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______,
_______,_______,KC_BTN2,KC_WH_U,KC_BTN3,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______,
_______,_______,KC_WH_L,KC_WH_D,KC_WH_R,_______,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,_______,_______, _______, _______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______,
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
/* Layer 6: Misc layer */
[MISC] = LAYOUT(
_______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______,
_______,KC_SLCT, C(KC_W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______,
_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_HOME,KC_PGDN,KC_PGUP,_______,_______,_______, _______, _______,_______,_______,
KC_LSFT,_______,C(KC_Y),C(KC_X),C(KC_C),C(KC_V), KC_SPC, KC_END,_______,C(KC_PGUP),C(KC_PGDN),_______, _______, _______, _______,_______,_______,_______,
_______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______),
};
void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) {
if (record->event.pressed) {
if (record->tap.count > 0 && !record->tap.interrupted) {
if (record->tap.interrupted) {
register_mods(MOD_BIT(orig_mod));
}
} else {
register_mods(MOD_BIT(orig_mod));
}
} else {
if (record->tap.count > 0 && !(record->tap.interrupted)) {
add_weak_mods(MOD_BIT(macro_mod));
send_keyboard_report();
register_code(macro_kc);
unregister_code(macro_kc);
del_weak_mods(MOD_BIT(macro_mod));
send_keyboard_report();
record->tap.count = 0; // ad hoc: cancel tap
} else {
unregister_mods(MOD_BIT(orig_mod));
}
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
uint8_t layer;
layer = get_highest_layer(layer_state);
if (layer == PROG2) {
if (keycode >= KC_A && keycode <= KC_EXSEL && \
!( // do not send LSFT + these keycodes, they are needed for emulating the US layout
keycode == KC_NUBS ||
keycode == KC_RBRC ||
keycode == KC_BSLS ||
keycode == KC_GRV
)) {
// LSFT is the modifier for this layer, so we set LSFT for every key to get the expected behavior
if (record->event.pressed) {
register_mods(MOD_LSFT);
} else {
unregister_mods(MOD_LSFT);
}
}
}
switch (keycode) {
case LCTRL_BRACKET:
tap_helper(record, KC_LCTL, KC_RALT, KC_8);
return false;
case RCTRL_BRACKET:
tap_helper(record, KC_RCTL, KC_RALT, KC_9);
return false;
case LALT_CURLY:
tap_helper(record, KC_LALT, KC_RALT, KC_7);
return false;
case RALT_CURLY:
tap_helper(record, KC_RALT, KC_RALT, KC_0);
return false;
case LSHFT_PAREN:
tap_helper(record, KC_LSFT, KC_LSFT, KC_8);
return false;
case RSHFT_PAREN:
tap_helper(record, KC_RSFT, KC_LSFT, KC_9);
return false;
case CTRL_CLICK:
if (record->event.pressed) {
mousekey_clear();
register_mods(MOD_BIT(KC_LCTL));
send_keyboard_report();
wait_ms(5);
mousekey_on(KC_BTN1);
mousekey_send();
wait_ms(10);
mousekey_off(KC_BTN1);
mousekey_send();
wait_ms(5);
unregister_mods(MOD_BIT(KC_LCTL));
send_keyboard_report();
}
return false;
case M_GRV:
tap_code16(S(KC_EQL));
tap_code(KC_SPC);
return false;
case M_CFLEX:
tap_code(KC_GRV);
tap_code(KC_SPC);
return false;
}
return true;
}

View File

@@ -1,18 +0,0 @@
# My personal keymap for the Kitten Paw controller
This keymap only works correctly when you have your OS configured with a German keymap. Use the keymap however you like. It's most likely a living thing that will never be quite finished.
## Description of the layers
Layer 0 (DEFAULT) works just like you would expect a keyboard to work, mostly, except:
Caps Lock switches to the mouse layer, RGUI and APP are switches to the programming layer and media layer.
Mouse and programming layer switches can be held or double-tapped to lock.
Holding space switches to the MISC layer where I currently accumulate useful shortcuts.
Tapping left and right Shift, Ctrl and Alt will send (), [] and {} respectively.
Layers 1 and 2 (PROG1 and PROG2) emulate the US layout while still using a German OS keymap setting. I was annoyed of having to change the OS settings every time I wanted to use the US layout for coding, so I made these layers to behave just like the US layout even though the OS still uses German. The shift keys were a bit tricky, I had to use them as MO(PROG2) switches, so to get the actual expected behavior I enable LSFT for almost every keypress on PROG2 in ```process_record_user```. Since the shift keys are MO() function keys, they do not print () at the moment, which sucks. I'm working on it.
Layer 3 (MEDIA) just has a couple of media keys on it, mainly around the cursor keys and nav key cluster.
Layers 4 and 5 (MOUSE1 and MOUSE2) are mouse layers. Move the cursor using ESDF, scroll using HJKL, Space for left click, N and M for right and middle click. There's more, look at the keymap.
Layer 6 is a layer I don't have a good name for, so I call it MISC. You'll find cursor keys at ESDF, other navigation keys around the HJKL cluster and F12 to F24 on the F-keys. For now.

View File

@@ -1,105 +0,0 @@
/*
Copyright 2016 Daniel Svensson <dsvensson@gmail.com>
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/>.
*/
#include QMK_KEYBOARD_H
/* Swedish keys */
#define SE_HALF KC_GRV
#define SE_PLUS KC_MINS
#define SE_ACUT KC_EQL
#define SE_AO KC_LBRC
#define SE_CIRC KC_RBRC
#define SE_QUOT KC_BSLS
#define SE_ODIA KC_SCLN
#define SE_ADIA KC_QUOT
#define SE_MINS KC_SLSH
#define SE_LTGT KC_NUBS
#define SE_LCBR RALT(KC_7)
#define SE_LBRC RALT(KC_8)
#define SE_RBRC RALT(KC_9)
#define SE_RCBR RALT(KC_0)
#define SE_PIPE RALT(SE_LTGT)
#define SE_BSLS RALT(SE_PLUS)
#define KM_BLOWRAK 0
#define KM_QWERTY 1
#define KM_MEDIA 2
#define KM_HAXHAX 3
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Blowrak ISO layer, a Swedish take on Dvorak */
[KM_BLOWRAK] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SCRL,KC_PAUS,
SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP,
KC_TAB, SE_AO, SE_ADIA,SE_ODIA,KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN,
KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_H, KC_D, KC_T, KC_N, KC_S, SE_MINS, KC_ENT,
KC_LSFT, SE_LTGT,KC_DOT, KC_Q, KC_J, KC_K, KC_B, KC_X, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP,
MO(KM_MEDIA),KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,TG(KM_QWERTY), KC_LEFT,KC_DOWN,KC_RGHT),
/* Layer 1: Standard ISO layer */
[KM_QWERTY] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SCRL,KC_PAUS,
SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AO, SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_ODIA,SE_ADIA, KC_ENT,
KC_LSFT, SE_LTGT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, SE_MINS, KC_RSFT, KC_UP,
MO(KM_MEDIA),KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,TG(KM_QWERTY), KC_LEFT,KC_DOWN,KC_RGHT),
/* Layer 2: Media layer */
[KM_MEDIA] = LAYOUT(
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_MUTE,_______,KC_VOLD,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_MPLY,
_______,_______,_______, _______, _______,_______,QK_BOOT,_______, KC_MPRV,KC_MSTP,KC_MNXT),
/* Layer 3: Programming layer */
[KM_HAXHAX] = LAYOUT(
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,SE_LCBR,SE_PIPE,SE_RCBR,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,SE_LBRC,SE_BSLS,SE_RBRC,_______,_______,_______,_______,_______,_______,_______,_______, _______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______,
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______),
};
void matrix_scan_user(void)
{
uint8_t layer = get_highest_layer(layer_state);
switch (layer) {
case KM_BLOWRAK:
writePin(LED_CAPS_LOCK_PIN, LED_PIN_ON_STATE);
writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
break;
case KM_QWERTY:
writePin(LED_CAPS_LOCK_PIN, !LED_PIN_ON_STATE);
writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
break;
}
}
/* Mixes in KM_HAXHAX via RALT modifier without shadowing the RALT key combinations. */
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
uint8_t modifiers = get_mods();
if (modifiers & MOD_BIT(KC_RALT) && record->event.pressed) {
uint16_t kc = keymap_key_to_keycode(KM_HAXHAX, record->event.key);
if (kc != KC_TRNS) {
register_code(kc);
unregister_code(kc);
return false;
}
}
return true;
}

View File

@@ -1,17 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.

View File

@@ -1,6 +0,0 @@
#pragma once
/* overridden settings: */
#undef PRODUCT
#define PRODUCT "Pegasus Hoof Citadel"

View File

@@ -1,118 +0,0 @@
/* Copyright 2018 Daniel Rose <droseger@protonmail.com>
*
* 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/>.
*/
#include QMK_KEYBOARD_H
/* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */
/* Original shortcuts (quantum_keycodes.h) take full-sized keycodes: too long! */
#undef C
#undef S
#undef A
#undef G
#define C(kc) LCTL(KC_##kc)
#define S(kc) LSFT(KC_##kc)
#define A(kc) LALT(KC_##kc)
#define G(kc) RALT(KC_##kc)
#define CTALDEL LCTL(LALT(KC_DEL))
enum layers {
DEF,
FUN,
RES,
};
enum tap_dance {
AF4,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: default layer (ISO-DE)
* .----. .-------------------. .-------------------. .-------------------. .--------------.
* |Esc | |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10 |F11 |F12 | |PrSc|SLck|2Tp:|
* | | | | | | | | | | | | | | | | | |SyRq| |A+F4|
* '----' '-------------------' '-------------------' '-------------------' '--------------'
* .------------------------------------------------------------------------. .--------------.
* |° |! |" |§ |$ |% |& |/ |( |) |= |? |` |Backspa| |Ins |Home|PgUp|
* |^ |1 |2 ²|3 ³|4 |5 |6 |7 {|8 [|9 ]|0 }|ß \|´ | | | | | |
* |------------------------------------------------------------------------| |--------------|
* |Tab |Q |W |E |R |T |Z |U |I |O |P |Ü |* | E | |Del |End |PgDn|
* | | | | €| | | | | | | | |+ ~| n | | | | |
* |------------------------------------------------------------------\ t | '--------------'
* |Fn: |A |S |D |F |G |H |J |K |L |Ö |Ä |' | e |
* |Layer 2| | | | | | | | | | | |# | r |
* |------------------------------------------------------------------------| .----.
* |Shift|> |Y |X |C |V |B |N |M |; |: |_ |Shift | |Up |
* | |< ¦| | | | | | | µ|, |. |- | | | |
* |------------------------------------------------------------------------| .--------------.
* |Ctrl |Super|Alt | |AltGr|Alt |Fn: |Ctrl | |Left|Down|Righ|
* | | | | | | |Lay 2| | | | | |
* '------------------------------------------------------------------------' '--------------'
* NUHS = true position of KC_NUHS
*/
[DEF] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SCRL,TD(AF4),
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS, KC_HOME,KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_NUHS, KC_DEL, KC_END, KC_PGDN,
MO(FUN),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,/*NUHS*/KC_ENT,
KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_LALT,MO(FUN),KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT),
/* Layer 1: function layer
* .----. .-------------------. .-------------------. .-------------------. .--------------.
* |Ctl+| |My |WWW:|Calc|Medi| |Mus:|Mus:|Mus:|Mus:| |Vol:|Vol:|Vol:|See:| | | |Paus|
* |A+De| |Comp|Home| |Play| |Prev|Next|Paus|Stop| |Mute|Down|Up |[3] | | | |Brea|
* '----' '-------------------' '-------------------' '-------------------' '--------------'
* .------------------------------------------------------------------------. .--------------.
* | | | | | | | | | | | | | | | | | |Mou:|
* | | | | | | | |{ |[ |] |} |\ | | | | | |WhUp|
* |------------------------------------------------------------------------| |--------------|
* | | | | | | | | | | | | |~ | | | | |Mou:|
* | | | | | | | | | | | | | | | | | |WhDn|
* |------------------------------------------------------------------\ | '--------------'
* |CapsLck|Mou:|Mou:| | | | | | | | | | | |
* | |Fast|Slow| | | | | | | | | | | |
* |------------------------------------------------------------------------| .----.
* | | | | | | | | |µ | | | | | |Mou:|
* | | | | | | | | | | | | | | |Up |
* |------------------------------------------------------------------------| .--------------.
* |Mous:|Mous:| | | |Super|App | | |Mou:|Mou:|Mou:|
* |Bttn2|Bttn1| | | | | | | |Left|Down|Righ|
* '------------------------------------------------------------------------' '--------------'
*
*/
[FUN] = LAYOUT(
CTALDEL, KC_MYCM,KC_WHOM,KC_CALC,KC_MSEL,KC_MPRV,KC_MNXT,KC_MPLY,KC_MSTP,KC_MUTE,KC_VOLD,KC_VOLU,MO(RES), _______,KC_SCRL,KC_PAUS,
_______,_______,_______,_______,_______,_______,_______,G(7), G(8), G(9), G(0), G(MINS),_______,_______, _______,_______,KC_WH_U,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,G(RBRC),_______, _______,_______,KC_WH_D,
KC_CAPS,KC_ACL2,KC_ACL0,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______,
_______,_______,_______,_______,_______,_______,_______,_______,G(M), _______,_______,_______, _______, KC_MS_U,
KC_BTN2,KC_BTN1,_______, _______, _______,KC_RGUI,KC_APP ,_______, KC_MS_L,KC_MS_D,KC_MS_R),
/* Layer 3: Reset layer (prevents accidental resets) */
[RES] = LAYOUT(
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,_______,_______,_______,QK_BOOT, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______,
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______),
};
tap_dance_action_t tap_dance_actions[] = {
/* Tap once: nothing. Tap twice: Alt+F4 */
[AF4] = ACTION_TAP_DANCE_DOUBLE(XXXXXXX,A(F4)),
};

View File

@@ -1,75 +0,0 @@
# Citadel keymap for pegasushoof
Designed for ISO-DE and similar ISO layouts.
The central idea of this keymap is to avoid unergonomic key combos that force the user to either press
multiple keys with one hand or to use the left hand for right-sided keys. For instance, ISO-DE users
have to press `AltGr`+`7` to type _{_. The keymap allows ergonomic access to the right-sided keys of the
German AltGr-layer by turning `Caps Lock` into a hybrid Fn/AltGr-key. It can easily be adapted for other
ISO layouts.
The _Function_ layer also offers mouse emulation and function/media keys in the F-Row.
`Pause/Break` is used as a safe _close key_: A _single tap_ does nothing, a _double tap_ executes ALT+F4.
Named after the homonymous space station from _Mass Effect_. Made by [Daniel Rose](https://github.com/droseger/).
## [1] Layers
### Layer 1 (Default)
.----. .-------------------. .-------------------. .-------------------. .--------------.
|Esc | |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10 |F11 |F12 | |PrSc|SLck|2Tp:|
| | | | | | | | | | | | | | | | | |SyRq| |A+F4|
'----' '-------------------' '-------------------' '-------------------' '--------------'
.------------------------------------------------------------------------. .--------------.
|° |! |" |§ |$ |% |& |/ |( |) |= |? |` |Backspa| |Ins |Home|PgUp|
|^ |1 |2 ²|3 ³|4 |5 |6 |7 {|8 [|9 ]|0 }|ß \|´ | | | | | |
|------------------------------------------------------------------------| |--------------|
|Tab |Q |W |E |R |T |Z |U |I |O |P |Ü |* | E | |Del |End |PgDn|
| | | | €| | | | | | | | |+ ~| n | | | | |
|------------------------------------------------------------------\ t | '--------------'
|Fn: |A |S |D |F |G |H |J |K |L |Ö |Ä |' | e |
|Layer 2| | | | | | | | | | | |# | r |
|------------------------------------------------------------------------| .----.
|Shift|> |Y |X |C |V |B |N |M |; |: |_ |Shift | |Up |
| |< ¦| | | | | | | µ|, |. |- | | | |
|------------------------------------------------------------------------| .--------------.
|Ctrl |Super|Alt | |AltGr|Alt |Fn: |Ctrl | |Left|Down|Righ|
| | | | | | |Lay 2| | | | | |
'------------------------------------------------------------------------' '--------------'
### Layer 2 (Function)
.----. .-------------------. .-------------------. .-------------------. .--------------.
|Ctl+| |My |WWW:|Calc|Medi| |Mus:|Mus:|Mus:|Mus:| |Vol:|Vol:|Vol:|See:| | | |Paus|
|A+De| |Comp|Home| |Play| |Prev|Next|Paus|Stop| |Mute|Down|Up |[3] | | | |Brea|
'----' '-------------------' '-------------------' '-------------------' '--------------'
.------------------------------------------------------------------------. .--------------.
| | | | | | | | | | | | | | | | | |Mou:|
| | | | | | | |{ |[ |] |} |\ | | | | | |WhUp|
|------------------------------------------------------------------------| |--------------|
| | | | | | | | | | | | |~ | | | | |Mou:|
| | | | | | | | | | | | | | | | | |WhDn|
|------------------------------------------------------------------\ | '--------------'
|CapsLck|Mou:|Mou:| | | | | | | | | | | |
| |Fast|Slow| | | | | | | | | | | |
|------------------------------------------------------------------------| .----.
| | | | | | | | |µ | | | | | |Mou:|
| | | | | | | | | | | | | | |Up |
|------------------------------------------------------------------------| .--------------.
|Mous:|Mous:| | | |Super|App | | |Mou:|Mou:|Mou:|
|Bttn2|Bttn1| | | | | | | |Left|Down|Righ|
'------------------------------------------------------------------------' '--------------'
Layer 3 exists solely to prevent users from accidentally activating boot mode: `R` is redefined
as `RESET` key [3].
## [2] How to build and install
1) Prerequisite: install the necessary [build tools](https://docs.qmk.fm/#/getting_started_build_tools)
such as [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer).
- You might need to [add udev rules](https://docs.qmk.fm/#/faq_build?id=can39t-program-on-linux) under Linux.
2) To test if the keymap compiles, simply run `make pegasushoof:citadel`
3) Enter the `qmk_firmware` root directory and run `make pegasushoof:citadel:dfu`
4) Reset controller to _Boot mode_ by pressing the `RESET` key or by using a magnet.
## [3] How to access Boot mode after install
Press `Fn+F12+R`

View File

@@ -1,17 +0,0 @@
# Build Options
# change to "no" to disable the options
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
TAP_DANCE_ENABLE = yes # see https://docs.qmk.fm/#/feature_tap_dance (+1000)