.. | ||
config.h | ||
keymap.c | ||
readme.md | ||
rules.mk |
AceVice One's Keymap for Kyria
Introduction
This is my first personal keymap for Kyria with a little bunch of steroids.
The hardware build implements 2 rotatory encoders and 2 OLED displays.
Features
These are some of the generic features built in:
- Two alternative default character distributions (QWERTY, COLEMAK) with Spanish layout.
- Layer selection on some keys (Esc, Lower, Space, Enter, Raise).
- Multiple selectable layers:
- Symbols: Numbers on top row, common programming symbols (curly, square and angle brackets, parentheses, at and hash) on bottom row with symmetric distribution (open on left, close on right).
- Function/Numpad: Function keys on left side, Number Pad on right side.
- Navigation: Mouse keys on left side, Navigation keys on right side.
- Git commands: The most common and useful Git commands at your fingertips.
- Settings: Select default distribution, Media keys, RGB settings.
- Symmetric design -left/right side- for modifiers (Shift, Ctrl, Alt and GUI).
- Arrows/Modifiers on same keys (right side).
- Tab/Caps Lock key.
- Backspace/Delete with Insert/Overwrite selectable mode on same key.
- Single/Double Quote (
' "
) on same key as English layouts. - Handedness set by EEPROM.
- Mouse Keys has been disabled by default for space saving (Pro Micro controller limit).
Some of the more specific features are described below:
Tap Dance
- Use of
ACTION_TAP_DANCE_DOUBLE()
for Tab/Caps Lock key. - Implementation of new
ACTION_TAP_DANCE_FN_ADVANCED_USER()
function:- Any user data can be sent to personalized functions.
- Generalized design makes action reuse easy.
- User can tap a keycode and/or layer selection (single tap, single hold, double tap) depending on modifiers (None, Shift, Ctrl).
OLEDs
Master-side OLED displays dynamic data:
- Current layer.
- Modifiers state (lock mode included).
- Caps Lock state.
- Insert/Overwrite state.
Slave-side OLED displays horizontal scrolling Kyria logo.
Rotary Encoders
Encoders click buttons for mode changing. Supported modes are:
- Character Left / Right, Line Up / Down.
- Word Left / Right, Page Up / Down.
- Tabbing Left / Right (Navigator, Editor).
- Volume Up / Down.
TODO list
- Show modifiers in OLED when triggered as One Shot keys
- Manage Backspace key with dual funcion (Delete when shifted)
- OLED modifier status bar one line down
- Show INS/OWR Mode in right OLED
- Show RGB Led Settings on OLED when Settings layer on
- Show Locked Modifiers (Shift, Control, Alt, GUI)
- Arrow keys on right modifier keys
- Improve Esc/Layer Symbol: Tap -> Keycode, Hold -> Momentary Layer, Double Tap -> Toggler Layer
- Check transparent keys on all layers (avoid collateral effects)
- Add "Print Screen" / "Scroll Lock" / "Pause Break" keys on Navigation layer
- Add Basic characters layers: COLEMAK (ES)
- Create custom keycode with quotes (single/double) for ES layout
- Add Tap-Dance actions for keycodes (Tab, Space, Enter) and layer selection
- Add Git commands to some layer
- Disable Mouse Keys (saving space)
- Settings Layer not accesible
- Layer buttons with double/triple function (Normal/Shift/Control mode)
- Tab/Caps Lock on same key (single/double tap)
- Backspace/Delete/Insert on same key (Normal/Shift/Ctrl)
- Separate default layer from RGB settings rendering for conditional compiling
- Encoders: Improve with more functionality (modes)
- Encoders: Add mode for navigation through windows (applications)
- Show more info about RGB Led Settings (On/Off, Animation, ...)
- Activate "Nums Lock" when Fn/NumPad layer locked
- Show status indicator when locked layer
- Set RGB Led Color by selected Layer (activable)
- Add more uses for left OLED
- Something strange returning from One Shot hold
Acknowledgements
Thanks to the entire QMK community for your invaluable help.