[Keymap] adding my Levinson keymap (#5177)

* [keymap] adding my Levinson keymap

pretty self explanatory, added the readme, just in case

tested it just now, seems to work fine for my needs

* Update keymap.c

removing the deprecated persistent layer function as Drashna kindly reminded me

* Apply suggestions from code review

incorporated the suggestions, and thanks again for taking care of me with my silly changes :)

Co-Authored-By: OMGVee <mateescu.victor@gmail.com>

* Fix up audio calls
This commit is contained in:
VM 2019-02-26 00:30:26 -05:00 committed by Drashna Jaelre
parent 7a89b39aad
commit 80ddb34415
4 changed files with 243 additions and 0 deletions

View file

@ -0,0 +1,26 @@
#pragma once
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define TAPPING_TERM 150
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#undef PRODUCT
#define PRODUCT "Vee's hotswappable LEVINSON purely ortholinear keeb"

View file

@ -0,0 +1,185 @@
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
#define _FN3 5
#define _FN4 6
#define _ADJUST 16
enum custom_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
LOWER,
RAISE,
FN3,
FN4,
ADJUST,
};
#define KC_ KC_TRNS
#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
#define KC_X0 MT(MOD_LCTL, KC_ESC)
#define KC_SCAP SFT_T(KC_CAPS)
#define KC_LOW LOWER
#define KC_RAIS RAISE
#define KC_X3 LT(_FN3, KC_GRV)
#define KC_SENT MT(MOD_LSFT, KC_ENT)
#define KC_X5 BL_STEP
#define KC_CTB CTL_T(KC_TAB)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
GESC, Q , W , E , R , T , Y , U , I , O , P ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
SCAP, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CTB, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,SENT,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
X3 ,LCTL,LALT,LGUI,LOW ,ENT , SPC,RAIS,RALT, , ,
//`----+----+----+----+----+----' `----+----+----+----+----+----'
),
[_LOWER] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
SCAP, NO ,HOME,PGDN,PGUP, END, LEFT,DOWN, UP ,RGHT, INS, DEL,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CTB , F1 , F2 , F3 , F4 , F5 , F6, F7 , F8 , F9 , F10, F11,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , , F12
//`----+----+----+----+----+----' `----+----+----+----+----+----'
),
[_RAISE] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
TAB, EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, DEL,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
SCAP, , , , , , MINS, EQL, ,LBRC,RBRC,BSLS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CTB, , , , , , UNDS,PLUS,VOLD,VOLU,MUTE,SENT,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , , NO
//`----+----+----+----+----+----' `----+----+----+----+----+----'
),
[_COLEMAK] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
GESC, Q , W , F , P , G , J , L , U , Y ,SCLN,MINS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
SCAP, A , R , S , T , D , H , N , E , I , O ,QUOT,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CTB, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,SENT,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , ,
//`----+----+----+----+----+----' `----+----+----+----+----+----'
),
[_DVORAK] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
X0 , A , O , E , U , I , D , H , T , N , S ,SLSH,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
LSFT,SCLN, Q , J , K , X , B , M , W , V , Z ,SENT,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
X3 ,LCTL,LALT,LGUI, LOW, ENT, SPC,RAIS,RALT, , ,
//`----+----+----+----+----+----' `----+----+----+----+----+----'
),
[_FN3] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , MS_L,MS_D,MS_U,MS_R,WH_L,WH_R,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , BTN1,WH_D,WH_U,BTN2, , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , , , , ,
//`----+----+----+----+----+----' `----+----+----+----+----+----'
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT( \
RESET, QWERTY, COLEMAK, DVORAK, _______, EEP_RST, KC_MNXT, KC_MPRV, KC_MFFD, KC_MRWD, DVORAK, KC_EJCT, \
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_PGUP, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CK_UP, CK_DOWN, \
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_PGDN, KC_END, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, \
BL_TOGG, BL_INC, BL_DEC, BL_BRTG, _______, _______, CK_RST, _______, CK_TOGG, MU_MOD, MU_TOG, AU_TOG \
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
return false;
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
}
return true;
}

View file

@ -0,0 +1,21 @@
# What I want from my LEVINSON (Let's Split on steroids) keymap
====================================================================================================
![My indigo Levinson keeb](https://i.imgur.com/sPfzSTk.jpg)
- media keys and media controls, including Eject, for however rare those computers with OSX *and* bloody optical drives might be
- in-switch LED intensity controls (+/-)
- underglow RGB hue/color controls
- underglow RGB intensity controls
- familiar key arrangement with Enter and symbols on the usual keys (to the right hand side, on some layer, pref RAISE for one-handed operation)
- navigation keys should be the vim ones really;
- arrow keys on one layer(most likely on the ADJUST one, but also on LOWER, as per my usual other split keebs)
- mouse keys too
- hardware reset for the ProMicro to put it bootloader mode, sounds, eeprom reset, backlights and rgb controls reset, etc.
See keymap.c for layouts
See config.h for various toggles and flags
P.S> this is my first fully and purely ortholinear keyboard, as opposed to my [Iris](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/iris/keymaps/omgvee "Vee's Iris keeb"), [Helidox](https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd/keymaps/omgvee "Vee's beloved Helidox keeb"), MiniDox, etc., which are mildly staggered, but on the vertical side, which seems better imho than this... but we'll see how I get on with it over time...

View file

@ -0,0 +1,11 @@
EXTRAFLAGS += -flto
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = yes
MOUSEKEY_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
TAP_DANCE_ENABLE = no
NKRO_ENABLE = yes
LEADER_ENABLE = no
UNICODE_ENABLE = yes
AUDIO_ENABLE = yes