Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Keymap] Add davidrambo lulu keymap #19448

Merged
merged 4 commits into from
Mar 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions keyboards/boardsource/lulu/keymaps/davidrambo/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/* Copyright 2022 Cole Smith <cole@boardsource.xyz>
* Copyright 2022 David Rambo <davidrambo@mailfence.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/>.
*/

#pragma once

#define MASTER_RIGHT
#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
#define CAPS_WORD_IDLE_TIMEOUT 3000 // 3 seconds.

#define TAPPING_TERM 210
/*#define PERMISSIVE_HOLD*/
#define IGNORE_MOD_TAP_INTERRUPT
#define TAPPING_FORCE_HOLD

#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#endif
201 changes: 201 additions & 0 deletions keyboards/boardsource/lulu/keymaps/davidrambo/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
/* Copyright 2022 Cole Smith <cole@boardsource.xyz>
* Copyright 2022 David Rambo <davidrambo@mailfence.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

enum custom_layers {
_COLEMAK,
_GAME,
_SYMBOL,
_NAVIGATION,
_FKEYS,
};

//keycode shorthands
#define SYM MO(2)
#define NAV LT(3, KC_ESC)
#define FKEY MO(4)

//aliases for clarity in layering
#define SftEnt SFT_T(KC_ENT) // Shift when held, Enter when tapped
#define BSCTL LCTL_T(KC_BSPC) // Ctrl when held, Backspace when tapped

//aliases for clarity in layering
#define C_TAB LCTL(KC_TAB)
#define A_TAB LALT(KC_TAB)
#define G_TAB LGUI(KC_TAB) // Mac: switch applications

#define CBSPC LCTL(KC_BSPC) // delete whole word
#define G_LEFT LGUI(KC_LEFT)
#define G_RGHT LGUI(KC_RGHT)
#define CRGHT LCTL(KC_RGHT)
#define CLEFT LCTL(KC_LEFT)

// Left-hand home row mods
#define HOME_A LALT_T(KC_A)
#define HOME_R LGUI_T(KC_R)
#define HOME_S LSFT_T(KC_S)
#define HOME_T LCTL_T(KC_T)

// Right-hand home row mods
#define HOME_N RCTL_T(KC_N)
#define HOME_E RSFT_T(KC_E)
#define HOME_I LGUI_T(KC_I)
#define HOME_O LALT_T(KC_O)

//internet browser tab shortcuts and window swapping
#define CTLPGDN LCTL(KC_PGDN)
#define CTLPGUP LCTL(KC_PGUP)

#define G_GRV LGUI(KC_GRV)
#define SftEnt SFT_T(KC_ENT)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | `~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | F | P | G | | J | L | U | Y | : | BSP |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |EscNAV| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
* |------+------+------+------+------+------| NO | | NO |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |EntSft|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | Del | LGUI | LALT | /LCTL/BS/ \Space \ | SYM | FKEY | RALT |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/

[_COLEMAK] = LAYOUT(
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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
NAV, HOME_A, HOME_R, HOME_S, HOME_T, KC_D, KC_H, HOME_N, HOME_E, HOME_I, HOME_O, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_NO, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt,
MEH_T(KC_DEL), KC_LALT, KC_LGUI, BSCTL, KC_SPC, SYM, FKEY, KC_RALT
),

/* Gaming Layer
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ESC | T | Q | W | E | R | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | TAB | LSFT | S | A | D | F |-------. ,-------| | | | | | |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | LALT | LCTL | Z | X | C | V |-------| |-------| | | | | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | | | | / / \ \ | | | |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/

[_GAME] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0),
KC_ESC , KC_T , KC_Q , KC_W , KC_E , KC_R , _______, _______, _______, _______, _______, _______,
KC_TAB , KC_LSFT, KC_A , KC_S , KC_D , KC_F , _______, _______, _______, _______, _______, _______,
KC_LALT, KC_LCTL, KC_Z , KC_X , KC_C , KC_V , _______, _______, _______, _______, _______, _______, _______, _______,
KC_M, KC_I, KC_B, KC_SPC , _______, _______, _______, _______
),

/* Symbol Layer
* ,-----------------------------------------. ,-----------------------------------------.
* | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | [ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ] |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | \| | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | HOME | END | [ | ] | |-------| |-------| `~ | _ | PGUP | { | } | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | ____ | ____ | ____ | / ____ / \ ____ \ |RAISE | PGDN | ____ |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_SYMBOL] = LAYOUT(
KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC,
KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
_______, KC_HOME, KC_END , KC_LBRC, KC_RBRC, _______, _______, _______, KC_GRV , KC_MINS, KC_PGUP, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_PGDN, _______
),
/* Navigation
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | UP | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | |-------. ,-------| | LEFT | DOWN |RIGHT | | |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | | | | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | | | | / / \ \ | | | |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/

[_NAVIGATION] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_BTN2, KC_MS_U, KC_BTN1, _______, C_TAB , CLEFT , KC_UP , CRGHT , KC_DEL , _______,
_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
_______, _______, _______, KC_WH_U, KC_WH_D, _______, _______, _______, A_TAB , CBSPC , _______, _______, G_GRV , _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* Function Keys
* ,-----------------------------------------. ,-----------------------------------------.
* | BOOT | | | | | | | LALT<-->LGUI| | | | BOOT |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | |BRGHT-| SAT- | HUE- |BRGHT+| | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | |RGBMOD| SAT+ | HUE+ |RGBTOG|-------. ,-------| | | | | | |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | | |VOL UP|VOL DN| PLAY | |-------| | | | | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | | | | / / \ \ | | | |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/

[_FKEYS] = LAYOUT(
QK_BOOT, _______, _______, _______, _______, _______, LAG_SWP, LAG_NRM, _______, _______, _______, QK_BOOT,
_______, _______, RGB_VAD, RGB_SAD, RGB_HUD, RGB_VAI, _______, _______, _______, _______, _______, TO(1) ,
_______, _______, RGB_MOD, RGB_SAI, RGB_HUI, RGB_TOG, _______, _______, _______, _______, _______, TO(0) ,
_______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
// Volume control
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) {
// Page up/Page down
if (clockwise) {
tap_code(KC_WH_U);
} else {
tap_code(KC_WH_D);
}
}
return false;
}
#endif
12 changes: 12 additions & 0 deletions keyboards/boardsource/lulu/keymaps/davidrambo/readme.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#+title: README

This is my configuration for the Lulu received as part of Boardsource's 2022 group buy.
Since I already have a few keyboards configured with QMK, I decided to swap out KMK.
Hopefully this helps others get started.

The base layer is colemak.

I use this keymap on both Linux and MacOS.
To keep muscle memory between the two as similar as possible, it takes advantage of QMK's boot magic keycodes.
The ~_FKEYS~ layer provides access to a Left Alt and GUI switch.
(I use LAlt with yabai on MacOS and GUI with Pop OS's tiling.)
2 changes: 2 additions & 0 deletions keyboards/boardsource/lulu/keymaps/davidrambo/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CAPS_WORD_ENABLE = yes
MOUSEKEY_ENABLE = yes