citadel: new keymap for pegasushoof (#3146)
[citadel] Markdown syntax: Added double spaces for line breaking [citadel] Added line breaks for keyboard layout, fixed headings.master
parent
e08139b79c
commit
300cf977c9
|
@ -0,0 +1,14 @@
|
||||||
|
#ifndef CONFIG_USER_H
|
||||||
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
|
#include "../../config.h"
|
||||||
|
|
||||||
|
/* overridden settings: */
|
||||||
|
|
||||||
|
#undef PRODUCT
|
||||||
|
#define PRODUCT Pegasus Hoof Citadel
|
||||||
|
|
||||||
|
/* necessary option for this keymap, because CAPS is redefined in Layer 0 */
|
||||||
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,128 @@
|
||||||
|
/* 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 "pegasushoof.h"
|
||||||
|
|
||||||
|
/* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */
|
||||||
|
#define G(kc) RALT(KC_##kc)
|
||||||
|
#define A(kc) LALT(KC_##kc)
|
||||||
|
#define C(kc) LCTL(KC_##kc)
|
||||||
|
#undef S /* Original shortcut (quantum_keycodes.h) takes full-sized keycodes: too long! */
|
||||||
|
#define S(kc) LSFT(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] = KEYMAP( \
|
||||||
|
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_SLCK,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] = KEYMAP( \
|
||||||
|
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_SLCK,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] = KEYMAP( \
|
||||||
|
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
|
_______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______, \
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \
|
||||||
|
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______),
|
||||||
|
};
|
||||||
|
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
/* Tap once: nothing. Tap twice: Alt+F4 */
|
||||||
|
[AF4] = ACTION_TAP_DANCE_DOUBLE(XXXXXXX,A(F4)),
|
||||||
|
};
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
||||||
|
ph_caps_led_on();
|
||||||
|
} else {
|
||||||
|
ph_caps_led_off();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
||||||
|
ph_sclk_led_on();
|
||||||
|
} else {
|
||||||
|
ph_sclk_led_off();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
# 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`
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
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. Do not enable this with audio at the same time.
|
||||||
|
TAP_DANCE_ENABLE = yes # see https://docs.qmk.fm/#/feature_tap_dance (+1000)
|
||||||
|
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR
|
||||||
|
include ../../../../Makefile
|
||||||
|
endif
|
Loading…
Reference in New Issue