Merge pull request #5 from t4corun/353-layout

Incorporating Encoders and other things
This commit is contained in:
Victor 2024-04-14 21:43:39 -05:00 committed by GitHub
commit f040351067
Failed to generate hash of commit
14 changed files with 262 additions and 286 deletions

View file

@ -8,14 +8,13 @@ permissions:
jobs:
build:
name: 'QMK Userspace Build'
#uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@main
uses: ./.github/workflows/qmk_userspace_build.yml
uses: t4corun/.github/.github/workflows/qmk_userspace_build.yml@nontree
with:
qmk_repo: qmk/qmk_firmware
qmk_ref: master
publish:
name: 'QMK Userspace Publish'
uses: qmk/.github/.github/workflows/qmk_userspace_publish.yml@main
uses: t4corun/.github/.github/workflows/qmk_userspace_publish.yml@nontree
if: always() && !cancelled()
needs: build

View file

@ -1,113 +0,0 @@
name: Build Non-Tree Keyboard Binaries
on:
workflow_call:
inputs:
qmk_repo:
description: "qmk_firmware repo to build against"
default: "qmk/qmk_firmware"
required: false
type: string
qmk_ref:
description: "qmk_firmware branch to build against"
default: "master"
required: false
type: string
qmk_nontree_json:
description: "json file containing non-tree keyboards"
default: "qmk_nontree.json"
required: false
type: string
permissions:
contents: write
jobs:
build:
name: Build Userspace Firmware
runs-on: ubuntu-latest
container: qmkfm/base_container
steps:
- name: Checkout Userspace
uses: actions/checkout@v3
with:
token: ${{ github.token }}
submodules: recursive
- name: Check if qmk_firmware exists
id: check_files
uses: andstor/file-existence-action@v2
with:
files: qmk_firmware
- name: Checkout QMK Firmware
uses: actions/checkout@v3
if: steps.check_files.outputs.files_exists == 'false'
with:
token: ${{ github.token }}
path: qmk_firmware
repository: ${{ inputs.qmk_repo || 'qmk/qmk_firmware' }}
ref: ${{ inputs.qmk_ref || 'master' }}
submodules: recursive
- name: Install QMK CLI
run: |
python3 -m pip install --upgrade qmk
python3 -m pip install -r qmk_firmware/requirements.txt
- name: Configure QMK CLI
run: |
qmk config userspace_compile.parallel=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
qmk config user.qmk_home=$GITHUB_WORKSPACE/qmk_firmware
qmk config user.overlay_dir=$GITHUB_WORKSPACE
- name: Validate userspace
run: |
qmk userspace-doctor
- name: Check if non-tree keyboard json file exists
id: check_json_files
uses: andstor/file-existence-action@v2
with:
files: ${{ inputs.qmk_nontree_json }}
- name: Read Non-Tree Targets from JSON file
if: steps.check_json_files.outputs.files_exists == 'true'
run: |
{
echo 'COPY_TARGETS<<EOF'
cat $GITHUB_WORKSPACE/${{ inputs.qmk_nontree_json }}
echo
echo 'EOF'
} >> "$GITHUB_ENV"
- name: Copy Non-Tree Keyboard Definitions from Userspace to QMK Firmware
if: steps.check_json_files.outputs.files_exists == 'true'
run: |
for target in ${{ join(fromJson(env.COPY_TARGETS).nontree_targets, ' ') }};
do
echo "Copying keyboard: $target"
cp $GITHUB_WORKSPACE/keyboards/$target $GITHUB_WORKSPACE/qmk_firmware/keyboards -R
done
- name: Build
run: |
qmk userspace-compile -e DUMP_CI_METADATA=yes || touch .failed
# Generate the step summary markdown
./qmk_firmware/util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
# Exit with failure if the compilation stage failed
[ ! -f .failed ] || exit 1
- name: Upload binaries
uses: actions/upload-artifact@v3
if: always() && !cancelled()
continue-on-error: true
with:
name: Firmware
path: |
*.bin
*.hex
*.uf2

View file

@ -10,11 +10,11 @@ The custom layout optimizes for programming (SQL, Powershell, C) and minimizes h
A single keymap layout can be shared with multiple keyboards by using C preprocessor macros. These macros are referenced in the keyboard JSON files, and the build process will expand them into a transient keymap.c file during compile time.
In this userspace, the base split 3x5_2 layout can be adapted for other split keyboards by expanding it with macros. For example, there is a wrapper that will add extra columns to the base layout for a Corne's 42-key 3x6_3 layout.
In this userspace, the base split 3x5_3 layout can be adapted for other split keyboards by expanding it with macros. For example, there is a wrapper that will add extra columns to the base layout for a Corne's 42-key 3x6_3 layout.
### Tri-Layer
Hold both thumb momentary layer keys `NAV` and `SYM` to access the `_NUMBER` layer
Hold both thumb momentary layer keys `NAV` and `SYM` to access the `_SYMBOL` layer
### One Shot Mods
@ -85,6 +85,7 @@ Enables simultaneous pressing of key combinations to get another. Handy when the
This is the keymap designed for split 3x5 layout, two thumb keys on each side, and dual encoders. Emphasis on:
- Releasing all keys always brings you back to base layer
- Outside thumb keys are encoder clicks
- Keeping certain keys consistent on all layers for better muscle memory
- Numbers and function keys are positioned similarly
- Symbols important for powershell / writing are positioned under stronger fingers
@ -99,9 +100,9 @@ Additional keys may be mapped if present. Check each keyboard's `keymap.c` for m
│ a mou│ s │ d │ f │ g │ qwerty │ h │ j │ k │ l │ ' " │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ z │ x │ c │ v │ b │ │ n │ m │ , ( │ . ) │ - _ │
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
│ sym │ mou │ │ spc │ nav │
──────┴──────╯ ╰──────┴──────╯
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
enc: mwheel │ │ num │ mou │ │ spc │ nav │ mute │ enc: volume
╰──────┴──────┴──────╯ ╰──────┴──────┴──────
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
│ q │ w │ f │ p │ b │ │ j │ l │ u │ y │ o │
@ -109,9 +110,10 @@ Additional keys may be mapped if present. Check each keyboard's `keymap.c` for m
│ a mou│ r │ s │ t │ g │ colemak │ m │ n │ e │ i │ ' " │
├──────┼──────┼──────┼──────┼──────┤ dh ├──────┼──────┼──────┼──────┼──────┤
│ z │ x │ c │ d │ v │ │ k │ h │ , ( │ . ) │ - _ │
╰──────┴──────┴──────┼──────┼──────┤ ├──────┼──────┼──────┴──────┴──────╯
│ sym │ mou │ │ spc │ nav │
╰──────┴──────╯ ╰──────┴──────╯
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
enc: mwheel │ │ num │ mou │ │ spc │ nav │ mute │ enc: volume
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
Notes:
- swapped o and repeat on this keymap to keep repeat key in the same position across layers
@ -121,9 +123,9 @@ Notes:
│ gnum │ a │ s │ d │ f │ game │ │ │ │ │ │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ z │ x │ c │ v │ b │ │ │ │ │ │ │
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
│ shft │ spc │ │ spc │ nav │
──────┴──────╯ ╰──────┴──────╯
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
enc: mwheel │ │ shft │ spc │ │ spc │ nav │ mute │ enc: volume
╰──────┴──────┴──────╯ ╰──────┴──────┴──────
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
│ esc │ home │ up │ end │ pgup │ │ ins │ │ app │ │ cfg │
@ -131,9 +133,12 @@ Notes:
│ │ left │ down │ rght │ pgdn │ nav │ bksp │ shft │ ctrl │ alt │ gui │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ undo │ cut │ copy │ pste │ redo │ │ del │ tab │ vol- │ vol+ │ mute │
╰──────┴──────┴──────┼──────┼──────┤ ├──────┼──────┼──────┴──────┴──────╯
│ sym │ ent │ │ │ nav │
╰──────┴──────╯ ╰──────┴──────╯
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┴──────┴──────╯
enc: zoom │ zrst │ num │ ent │ │ │ nav │ │ enc: none
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
Notes:
- zrst - Ctrl + 0 to Zoom Reset
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
│ esc │ snip │ file │ func │ ` ~ │ │ ent │ 7 │ 8 │ 9 │ tab │
@ -142,7 +147,7 @@ Notes:
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ undo │ cut │ copy │ pste │ redo │ │ del │ 1 │ 2 │ 3 │ - _ │
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
│ │ sym │ │ │ spc │ 0 nav│ │
enc: none │ │ sym │ │ │ spc │ 0 nav│ │ enc: ← →
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
@ -151,9 +156,9 @@ Notes:
& │ { {} │ } │ | │ ; : │ symbols │ bksp │ ? │ [ [] │ ] │ ' '' │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ % ^ │ < <> │ > │ \ │ ! │ │ del │ / │ , () │ . ) │ - _ │
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
│ sym │ │ │ │ nav │
──────┴──────╯ ╰──────┴──────╯
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
enc: none │ │ sym │ │ │ │ nav │ │ enc: none
╰──────┴──────┴──────╯ ╰──────┴──────┴──────
Notes:
- tri layer: Activate th the symbol layer by holding down symbol and navigation
@ -164,9 +169,9 @@ Notes:
│ │ │ │ │ scrl │ func │ caps │ F4 │ F5 │ F6 │ F11 │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ │ │ │ │ │ │ paus │ F1 │ F2 │ F3 │ F12 │
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
│ sym │ │ │ mply1│ mrec1│
──────┴──────╯ ╰──────┴──────╯
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
enc: none │ │ sym │ │ │ mply1│ mrec1│ │ enc: ↑ ↓
╰──────┴──────┴──────╯ ╰──────┴──────┴──────
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
│ │ btn5 │ btn4 │ btn3 │ │ │ whup │ │ mouu │ │ │
@ -174,9 +179,9 @@ Notes:
│ mou │ alt │ ctrl │ shft │ │ mouse │ whdn │ moul │ moud │ mour │ │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ │ │ │ drgs │ snip │ │ sdpi │ pdpi │ │ │ │
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
│ btn1 │ btn2 │ │ │ │
──────┴──────╯ ╰──────┴──────╯
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
enc:mwheel │ │ btn1 │ btn2 │ │ │ │ │ enc: none
╰──────┴──────┴──────╯ ╰──────┴──────┴──────
Notes:
- drgs on non Charybdis Nano boards will trigger drag scrolling on Ploopy Nano
@ -189,20 +194,22 @@ Notes:
│ gnum │ 1 │ 2 │ 3 │ 4 │ game │ │ │ │ │ │
├──────┼──────┼──────┼──────┼──────┤ num ├──────┼──────┼──────┼──────┼──────┤
│ │ 5 │ 6 │ 7 │ 8 │ │ │ │ │ │ │
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
│ alt │ ctr │ │ │ nav │
──────┴──────╯ ╰──────┴──────╯
╰──────┴────────────┼──────┼──────┤ ├──────┼──────┼────────────┴──────╯
end: mwheel │ │ alt │ ctr │ │ │ nav │ mute │ enc: volume
╰──────┴──────┴──────╯ ╰──────┴──────┴──────
╭──────┬──────┬──────┬──────┬──────╮ ╭──────┬──────┬──────┬──────┬──────╮
│ │ │ │ │ │ │ eeclr│ rboot│ boot │ │ cfg │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│rgbtog│rgbMod│ │ │ │ config │ │ shft │ ctrl │ alt │ gui │
│rgbtog│rgbMod│ │ │ │ config │ blyr │ shft │ ctrl │ alt │ gui │
├──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┤
│ hue+ │ sat+ │ vib+ │ spd+ │ game │ │ │ │ │ │ │
╰──────┴──────┴──────┼──────┼──────┤ ├──────┼──────┼──────┴──────┴──────╯
│clmkdh│qwerty│ │ │ nav │
╰──────┴──────╯ ╰──────┴──────╯
```
│ hue+ │ sat+ │ vib+ │ spd+ │ │ │ │ │ │ │ │
╰──────┴──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┴──────╯
enc: none │ │ │ │ │ │ nav │ │ enc: none
╰──────┴──────┴──────╯ ╰──────┴──────┴──────╯
notes:
- blyr - toggles between the three base layers: qwerty, colemakdh, game
## Target Keyboards
@ -212,8 +219,9 @@ All boards use my keymaps unless noted
- Bastardkb Charybdis Nano 3x5
- Crkbd 3x6
- Planck Rev6
- Ferris Swoop
- Barbell Rollow (non-tree)
- DZRGB60v2 (coming)
- Ferris Swoop (coming)
- Geist KLOR (coming)
## Links

View file

@ -0,0 +1 @@
#pragma once

View file

@ -2,33 +2,33 @@
#define LAYOUT_rollow_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
#define LAYOUT_3x5_keymap( \
#define LAYOUT_3x5_3_keymap( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k33, k34, k35, k36 \
k32, k33, k34, k35, k36, k37 \
) \
LAYOUT_rollow_wrapper ( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
KC_NO, k33, k34, k35, k36, KC_NO \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k32, k33, k34, k35, k36, k37 \
)
#define ROLLOW(...) LAYOUT_3x5_keymap(__VA_ARGS__)
#define ROLLOW(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1 ] = ROLLOW(LAYER_QWERTY),
[_DEFAULT_LAYER_2 ] = ROLLOW(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3 ] = ROLLOW(LAYER_GAME),
[_NAVIGATION] = ROLLOW(LAYER_NAVIGATION),
[_NUMBER] = ROLLOW(LAYER_NUMBER),
[_SYMBOL] = ROLLOW(LAYER_SYMBOL),
[_FUNCTION] = ROLLOW(LAYER_FUNCTION),
[_MOUSE] = ROLLOW(LAYER_MOUSE),
[_GAME_NUM] = ROLLOW(LAYER_GAME_NUM),
[_CONFIG] = ROLLOW(LAYER_CONFIG)
[_DEFAULT_LAYER_1] = ROLLOW(LAYER_QWERTY),
[_DEFAULT_LAYER_2] = ROLLOW(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3] = ROLLOW(LAYER_GAME),
[_NAVIGATION] = ROLLOW(LAYER_NAVIGATION),
[_NUMBER] = ROLLOW(LAYER_NUMBER),
[_SYMBOL] = ROLLOW(LAYER_SYMBOL),
[_FUNCTION] = ROLLOW(LAYER_FUNCTION),
[_MOUSE] = ROLLOW(LAYER_MOUSE),
[_GAME_NUM] = ROLLOW(LAYER_GAME_NUM),
[_CONFIG] = ROLLOW(LAYER_CONFIG)
};
@ -37,15 +37,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* may have to swap the hands in this array since we do right side master*/
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, //wheel up, wheel down, vol up and down
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, //wheel up, wheel down, vol up and down
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, //wheel up, wheel down, xx,xx
[_NAVIGATION] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(___x___, ___x___) }, //wheel up, wheel down, xx,xx
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }, //xx,xx left and right
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, //xx,xx xx,xx
[_FUNCTION] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_DOWN, KC_UP ) }, //xx,xx up and down
[_MOUSE] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(___x___, ___x___) }, //wheel up, wheel down, ??,??
[_GAME_NUM] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, //wheel up, wheel down, xx,xx
[_CONFIG] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(___x___, ___x___) }, //maybe rgb functionality?
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_NAVIGATION] = { ENCODER_CCW_CW(ZOOMIN, ZOOMOUT), ENCODER_CCW_CW(___x___, ___x___) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
[_FUNCTION] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_DOWN, KC_UP ) },
[_MOUSE] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(___x___, ___x___) },
[_GAME_NUM] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_CONFIG] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
};
#endif

View file

@ -2,11 +2,11 @@
#define LAYOUT_cnano_wrapper(...) LAYOUT_charybdis_3x5(__VA_ARGS__)
#define LAYOUT_3x5_keymap( \
#define LAYOUT_3x5_3_keymap( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k33, k34, k35, k36 \
k32, k33, k34, k35, k36, k37 \
) \
LAYOUT_cnano_wrapper ( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
@ -15,19 +15,19 @@ LAYOUT_cnano_wrapper ( \
TR_BTN1, k33, k34, k35, k36 \
)
#define CNANO(...) LAYOUT_3x5_keymap(__VA_ARGS__)
#define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1 ] = CNANO(LAYER_QWERTY),
[_DEFAULT_LAYER_2 ] = CNANO(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3 ] = CNANO(LAYER_GAME),
[_NAVIGATION] = CNANO(LAYER_NAVIGATION),
[_NUMBER] = CNANO(LAYER_NUMBER),
[_SYMBOL] = CNANO(LAYER_SYMBOL),
[_FUNCTION] = CNANO(LAYER_FUNCTION),
[_MOUSE] = CNANO(LAYER_MOUSE),
[_GAME_NUM] = CNANO(LAYER_GAME_NUM),
[_CONFIG] = CNANO(LAYER_CONFIG)
[_DEFAULT_LAYER_1] = CNANO(LAYER_QWERTY),
[_DEFAULT_LAYER_2] = CNANO(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3] = CNANO(LAYER_GAME),
[_NAVIGATION] = CNANO(LAYER_NAVIGATION),
[_NUMBER] = CNANO(LAYER_NUMBER),
[_SYMBOL] = CNANO(LAYER_SYMBOL),
[_FUNCTION] = CNANO(LAYER_FUNCTION),
[_MOUSE] = CNANO(LAYER_MOUSE),
[_GAME_NUM] = CNANO(LAYER_GAME_NUM),
[_CONFIG] = CNANO(LAYER_CONFIG)
};

View file

@ -2,50 +2,52 @@
#define LAYOUT_swoop_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
#define LAYOUT_3x5_keymap( \
#define LAYOUT_3x5_3_keymap( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k33, k34, k35, k36 \
k32, k33, k34, k35, k36, k37 \
) \
LAYOUT_swoop_wrapper ( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
KC_NO, k33, k34, k35, k36, KC_NO \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k32, k33, k34, k35, k36, k37 \
)
#define SWOOP(...) LAYOUT_3x5_keymap(__VA_ARGS__)
#define SWOOP(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1 ] = SWOOP(LAYER_QWERTY),
[_DEFAULT_LAYER_2 ] = SWOOP(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3 ] = SWOOP(LAYER_GAME),
[_NAVIGATION] = SWOOP(LAYER_NAVIGATION),
[_NUMBER] = SWOOP(LAYER_NUMBER),
[_SYMBOL] = SWOOP(LAYER_SYMBOL),
[_FUNCTION] = SWOOP(LAYER_FUNCTION),
[_MOUSE] = SWOOP(LAYER_MOUSE),
[_GAME_NUM] = SWOOP(LAYER_GAME_NUM),
[_CONFIG] = SWOOP(LAYER_CONFIG)
[_DEFAULT_LAYER_1] = SWOOP(LAYER_QWERTY),
[_DEFAULT_LAYER_2] = SWOOP(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3] = SWOOP(LAYER_GAME),
[_NAVIGATION] = SWOOP(LAYER_NAVIGATION),
[_NUMBER] = SWOOP(LAYER_NUMBER),
[_SYMBOL] = SWOOP(LAYER_SYMBOL),
[_FUNCTION] = SWOOP(LAYER_FUNCTION),
[_MOUSE] = SWOOP(LAYER_MOUSE),
[_GAME_NUM] = SWOOP(LAYER_GAME_NUM),
[_CONFIG] = SWOOP(LAYER_CONFIG)
};
#if defined(ENCODER_MAP_ENABLE)
/* may have to swap the hands in this array since we do right side master*/
/* The encoder presses are handled in the keymap */
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_DEFAULT_LAYER_1 ] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, //wheel up, wheel down, vol up and down
[_DEFAULT_LAYER_2 ] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, //wheel up, wheel down, vol up and down
[_DEFAULT_LAYER_3 ] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, //wheel up, wheel down, xx,xx
[_NAVIGATION] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(___x___, ___x___) }, //wheel up, wheel down, xx,xx
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, //xx,xx left and right
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, //xx,xx xx,xx
[_FUNCTION] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_UP, KC_DOWN) }, //xx,xx up and down
[_MOUSE] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(___x___, ___x___) }, //wheel up, wheel down, ??,??
[_GAME_NUM] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, //wheel up, wheel down, xx,xx
[_CONFIG] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(___x___, ___x___) }, //maybe rgb functionality?
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_NAVIGATION] = { ENCODER_CCW_CW(ZOOMIN, ZOOMOUT), ENCODER_CCW_CW(___x___, ___x___) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
[_FUNCTION] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_DOWN, KC_UP ) },
[_MOUSE] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(___x___, ___x___) },
[_GAME_NUM] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_CONFIG] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
};
#endif

View file

@ -2,11 +2,11 @@
#define LAYOUT_crkbd_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
#define LAYOUT_3x5_keymap( \
#define LAYOUT_3x5_3_keymap( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k33, k34, k35, k36 \
k32, k33, k34, k35, k36, k37 \
) \
LAYOUT_crkbd_wrapper ( \
KC_NO, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, KC_NO, \
@ -15,19 +15,19 @@ LAYOUT_crkbd_wrapper ( \
TR_BTN1, k33, k34, k35, k36, TR_BTN4 \
)
#define CRKBD(...) LAYOUT_3x5_keymap(__VA_ARGS__)
#define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1 ] = CRKBD(LAYER_QWERTY),
[_DEFAULT_LAYER_2 ] = CRKBD(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3 ] = CRKBD(LAYER_GAME),
[_NAVIGATION] = CRKBD(LAYER_NAVIGATION),
[_NUMBER] = CRKBD(LAYER_NUMBER),
[_SYMBOL] = CRKBD(LAYER_SYMBOL),
[_FUNCTION] = CRKBD(LAYER_FUNCTION),
[_MOUSE] = CRKBD(LAYER_MOUSE),
[_GAME_NUM] = CRKBD(LAYER_GAME_NUM),
[_CONFIG] = CRKBD(LAYER_CONFIG)
[_DEFAULT_LAYER_1] = CRKBD(LAYER_QWERTY),
[_DEFAULT_LAYER_2] = CRKBD(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3] = CRKBD(LAYER_GAME),
[_NAVIGATION] = CRKBD(LAYER_NAVIGATION),
[_NUMBER] = CRKBD(LAYER_NUMBER),
[_SYMBOL] = CRKBD(LAYER_SYMBOL),
[_FUNCTION] = CRKBD(LAYER_FUNCTION),
[_MOUSE] = CRKBD(LAYER_MOUSE),
[_GAME_NUM] = CRKBD(LAYER_GAME_NUM),
[_CONFIG] = CRKBD(LAYER_CONFIG)
};

View file

@ -6,28 +6,28 @@
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k33, k34, k35, k36 \
k32, k33, k34, k35, k36, k37 \
) \
LAYOUT_planck_wrapper ( \
k00, k01, k02, k03, k04, KC_NO, KC_NO, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, KC_NO, KC_NO, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, KC_NO, KC_NO, k25, k26, k27, k28, k29, \
KC_NO, KC_NO, KC_NO, KC_NO, k33, k34, k35, k36, KC_NO, KC_NO, KC_NO, KC_ESC \
k00, k01, k02, k03, k04, KC_NO, KC_NO, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, KC_NO, KC_NO, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, KC_NO, KC_NO, k25, k26, k27, k28, k29, \
KC_NO, KC_NO, KC_NO, k32, k33, k34, k35, k36, k37, KC_NO, KC_NO, KC_ESC \
)
#define PLANCK(...) LAYOUT_3x5_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1 ] = PLANCK(LAYER_QWERTY),
[_DEFAULT_LAYER_2 ] = PLANCK(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3 ] = PLANCK(LAYER_GAME),
[_NAVIGATION] = PLANCK(LAYER_NAVIGATION),
[_NUMBER] = PLANCK(LAYER_NUMBER),
[_SYMBOL] = PLANCK(LAYER_SYMBOL),
[_FUNCTION] = PLANCK(LAYER_FUNCTION),
[_MOUSE] = PLANCK(LAYER_MOUSE),
[_GAME_NUM] = PLANCK(LAYER_GAME_NUM),
[_CONFIG] = PLANCK(LAYER_CONFIG)
[_DEFAULT_LAYER_1] = PLANCK(LAYER_QWERTY),
[_DEFAULT_LAYER_2] = PLANCK(LAYER_COLEMAK_DH),
[_DEFAULT_LAYER_3] = PLANCK(LAYER_GAME),
[_NAVIGATION] = PLANCK(LAYER_NAVIGATION),
[_NUMBER] = PLANCK(LAYER_NUMBER),
[_SYMBOL] = PLANCK(LAYER_SYMBOL),
[_FUNCTION] = PLANCK(LAYER_FUNCTION),
[_MOUSE] = PLANCK(LAYER_MOUSE),
[_GAME_NUM] = PLANCK(LAYER_GAME_NUM),
[_CONFIG] = PLANCK(LAYER_CONFIG)
};

View file

@ -1,6 +1,5 @@
{
"nontree_targets": [
"barbellboards",
"planck"
"barbellboards"
]
}

View file

@ -30,7 +30,7 @@ https://docs.qmk.fm/#/one_shot_keys
#define TAPPING_TERM 200
#define TAPPING_TERM_PER_KEY
#define QUICK_TAP_TERM 100
#define QUICK_TAP_TERM 135
#define QUICK_TAP_TERM_PER_KEY
#define ONESHOT_TAP_TOGGLE 3

View file

@ -1,14 +1,16 @@
#include "oled.h"
void render_crkbd_logo(void) {
static const char PROGMEM crkbd_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
0};
oled_write_P(crkbd_logo, false);
}
void render_rollow_logo(void) {
oled_write_raw_P(rollow_logo, sizeof(rollow_logo));
}
void render_qmk_logo(void) {
oled_write_raw_P(qmk_logo, sizeof(qmk_logo));
}
void render_default_layer_state(void) {
oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
@ -89,7 +91,13 @@ bool oled_task_user(void) {
if (is_keyboard_master()) {
render_oled_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
#if defined( KEYBOARD_barbellboards_rollow )
render_rollow_logo();
#elif defined( KEYBOARD_crkbd )
render_crkbd_logo();
#else
render_qmk_logo();
#endif
}
return false;
}

View file

@ -30,4 +30,75 @@ void render_keylock_status(void);
void render_mod_status(void);
void render_oled_main(void);
bool oled_task_user(void);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
static const char PROGMEM crkbd_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
0
};
// copied from Drashna
static const char PROGMEM qmk_logo[] = { // 128x24
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8,
0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00,
0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF,
0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E,
0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E,
0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70,
0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E,
0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F,
0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const char PROGMEM rollow_logo[] = { // 128x32
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xe0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe0, 0x00, 0x00, 0xf0, 0xf0, 0x00,
0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff,
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xe0, 0x80, 0x80, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0xf0, 0xf8, 0xf8,
0xf8, 0x3c, 0xfc, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0xf8, 0xf8, 0xf8, 0xf0,
0xc0, 0x08, 0xf8, 0xf8, 0xf8, 0xf8, 0x00, 0xf8, 0xf8, 0xf8, 0xf8, 0xe0, 0xe0, 0xf8, 0xf8, 0xf8,
0xf8, 0x00, 0x00, 0x80, 0x80, 0xe0, 0xe0, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00,
0x00, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff,
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x07, 0x07, 0x01, 0x01, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff,
0x7f, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x01, 0x01, 0x07, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00,
0x00, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03,
0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01,
0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x07, 0x00, 0x00, 0x0f, 0x0f, 0x00,
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

View file

@ -43,7 +43,8 @@ enum keycodes {
#define ___x___ KC_NO
// momentary layer
#define NAV LT(_NAVIGATION, KC_0)
#define NAV MO(_NAVIGATION)
#define NAV_0 LT(_NAVIGATION, KC_0)
#define NUM MO(_NUMBER)
#define CONFIG MO(_CONFIG)
#define FUNC MO(_FUNCTION)
@ -58,10 +59,10 @@ enum keycodes {
#define SC_SNIP LGUI(LSFT(KC_S))
#define SC_FILE LGUI(KC_E)
// Visual Studio Code
#define VS_FOLD LCTL(LSFT(KC_7))
#define VS_UFLD LCTL(LSFT(KC_9))
// Zoom
#define ZOOMIN LCTL(LSFT(KC_EQL))
#define ZOOMOUT LCTL(KC_MINS)
#define ZOOMRST LCTL(KC_0)
/*
- Any keycodes with prefix TR has behavior dependent on if the feature is enabled.
@ -84,12 +85,12 @@ enum keycodes {
#define TR_SQUO LT(_DEFAULT_LAYER_1, TH_SQUO)
#define TR_DQUO LT(_DEFAULT_LAYER_1, TH_DQUO)
#define TR_LPRN LT(_DEFAULT_LAYER_1, TH_LPRN) // custom behavior0'
#define TR_LPRN LT(_DEFAULT_LAYER_1, TH_LPRN) // custom behavior
#define TR_COMM LT(_DEFAULT_LAYER_1, TH_COMM)
#define TR_DOT LT(_DEFAULT_LAYER_1, TH_DOT)
#define TR_PERC LT(_DEFAULT_LAYER_1, TH_PERC)
#define TR_EQL LT(_DEFAULT_LAYER_1, TH_EQL) // auto shift
#define TR_EQL LT(_DEFAULT_LAYER_1, TH_EQL) // basically auto shift
#define TR_MINS LT(_DEFAULT_LAYER_1, TH_MINS)
#define TR_GRV LT(_DEFAULT_LAYER_1, TH_GRV)
#define TR_SCLN LT(_DEFAULT_LAYER_1, TH_SCLN)
@ -113,6 +114,8 @@ enum keycodes {
# define TR_BTN4 KC_BTN4
# define TR_BTN5 KC_BTN5
# define TR_NUM1 LT(_NUMBER, KC_BTN1)
# if defined(KEYBOARD_bastardkb_charybdis_3x5)
//these codes are defined in charybdis.h
# define TR_SNIP SNIPING
@ -148,6 +151,7 @@ enum keycodes {
# define TR_SDPI ___x___
# define TR_PDPI ___x___
# define TR_NUM1 MO(_NUMBER)
#endif //MOUSEKEY_ENABLE
@ -181,9 +185,6 @@ enum keycodes {
#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
@ -196,10 +197,9 @@ enum keycodes {
#define _SCAG_MODS________________________ TR_LSFT, TR_LCTL, TR_LALT, TR_LGUI
#define _UCCPR_L___________________________________ SC_UNDO, SC_CUT, SC_COPY, SC_PAST, SC_REDO
#define _BASE_L4________ NUM, TR_LSFT
#define _BASE_R4________ KC_SPC, NAV
#define _LAYER_TRANS_L__ _______, ___x___
#define _LAYER_TRANS_R__ ___x___, _______
#define _BASE_L4_________________ ___x___, TR_NUM1, TR_LSFT
#define _BASE_R4_________________ KC_SPC, NAV, KC_MUTE
#define _LAYER_TRANS_____________ ___x___, _______, ___x___
//___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___,
@ -208,74 +208,74 @@ enum keycodes {
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
KC_ESC, KC_LSFT, KC_SPC, KC_ENT
KC_TAB, KC_ESC, KC_LSFT, KC_SPC, KC_ENT, KC_MUTE
#define LAYER_QWERTY \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
TR_MOUA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TR_QUOT, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TR_COMM, TR_DOT, TR_MINS, \
_BASE_L4________, _BASE_R4________
_BASE_L4_________________, _BASE_R4_________________
#define LAYER_COLEMAK_DH \
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TR_QUOT, \
TR_MOUA, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, TR_COMM, TR_DOT, TR_MINS, \
_BASE_L4________, _BASE_R4________
_BASE_L4_________________, _BASE_R4_________________
#define LAYER_GAME \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, _NONE_5____________________________________, \
GAMENUM, KC_A, KC_S, KC_D, KC_F, _NONE_5____________________________________, \
KC_Z, KC_X, KC_C, KC_V, KC_B, _NONE_5____________________________________, \
KC_LSFT, KC_SPC, _BASE_R4________
___x___, KC_LSFT, KC_SPC, _BASE_R4_________________
#define LAYER_NAVIGATION \
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_INS, VS_FOLD, KC_APP, VS_UFLD, CONFIG, \
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_INS, ___x___, KC_APP, ___x___, CONFIG, \
___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \
_UCCPR_L___________________________________, KC_DEL, KC_TAB, KC_VOLD, KC_VOLU, KC_MUTE, \
_______, KC_ENT, _LAYER_TRANS_R__
ZOOMRST, NUM, KC_ENT, _LAYER_TRANS_____________
#define LAYER_NUMBER \
KC_ESC, SC_SNIP, SC_FILE, FUNC, TR_GRV, KC_ENT, KC_7, KC_8, KC_9, KC_TAB, \
_GACS_MODS________________________, TR_SCLN, KC_BSPC, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, KC_DEL, KC_1, KC_2, KC_3, TR_MINS, \
_LAYER_TRANS_L__, _BASE_R4________
_LAYER_TRANS_____________, KC_SPC, NAV_0, ___x___
#define LAYER_SYMBOL \
KC_ESC, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \
KC_AMPR, TR_LCBR, KC_RCBR, KC_PIPE, TR_SCLN, KC_BSPC, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
TR_PERC, TR_LABK, KC_RABK, KC_BSLS, KC_EXLM, KC_DEL, KC_SLSH, TR_LPRN, TR_DOT, TR_MINS, \
_LAYER_TRANS_L__, _LAYER_TRANS_R__
_LAYER_TRANS_____________, _LAYER_TRANS_____________
#define LAYER_FUNCTION \
TR_DMP2, TR_DMR2, ___x___, _______, ___x___, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, \
___x___, ___x___, ___x___, ___x___, KC_SCRL, KC_CAPS, KC_F4, KC_F5, KC_F6, KC_F11, \
TR_DMP2, TR_DMR2, ___x___, _______, KC_SCRL, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, \
_NONE_5____________________________________, KC_CAPS, KC_F4, KC_F5, KC_F6, KC_F11, \
_NONE_5____________________________________, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, \
_LAYER_TRANS_L__, TR_DMP1, TR_DMR1
_LAYER_TRANS_____________, TR_DMP1, TR_DMR1, ___x___
#define LAYER_MOUSE \
___x___, TR_BTN5, TR_BTN4, TR_BTN3, ___x___, TR_MWHU, ___x___, TR_MOUU, ___x___, ___x___, \
_______, _GACS_MOUSE_MODS_________, ___x___, TR_MWHD, TR_MOUL, TR_MOUD, TR_MOUR, ___x___, \
___x___, ___x___, ___x___, TR_DRGS, TR_SNIP, TR_SDPI, TR_PDPI, ___x___, ___x___, ___x___, \
TR_BTN1, TR_BTN2, ___x___, ___x___
_NONE_3__________________, TR_DRGS, TR_SNIP, TR_SDPI, TR_PDPI, ___x___, ___x___, ___x___, \
___x___, TR_BTN1, TR_BTN2, _NONE_3__________________
#define LAYER_GAME_NUM \
___x___, KC_ESC, KC_TILD, KC_G, KC_T, _NONE_5____________________________________, \
_______, KC_1, KC_2, KC_3, KC_4, _NONE_5____________________________________, \
___x___, KC_5, KC_6, KC_7, KC_8, _NONE_5____________________________________, \
KC_LALT, KC_LCTL, _LAYER_TRANS_R__
___x___, KC_LALT, KC_LCTL, _LAYER_TRANS_____________
#define LAYER_CONFIG \
___x___, ___x___, ___x___, ___x___, ___x___, EE_CLR, QK_RBT, QK_BOOT, ___x___, _______, \
TR_RTOG, TR_RMOD, ___x___, ___x___, ___x___, BASELYR, _SCAG_MODS________________________, \
_NONE_5____________________________________, EE_CLR, QK_RBT, QK_BOOT, ___x___, _______, \
TR_RTOG, TR_RMOD, _NONE_3__________________, BASELYR, _SCAG_MODS________________________, \
TR_RHUI, TR_RSAI, TR_RVAI, TR_RSPI, ___x___, _NONE_5____________________________________, \
___x___, ___x___, _LAYER_TRANS_R__
_NONE_3__________________, _LAYER_TRANS_____________