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

add scotto community layouts and userspace #21097

Merged
merged 27 commits into from
Jul 7, 2023
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
776f8e9
add `scotto` community layout
dunk2k May 31, 2023
71b972c
Add colemak and qwerty variants
joe-scotto May 31, 2023
107eb91
add to `LAYOUT_ortho_4x10`
dunk2k May 31, 2023
2cefe80
add `scotto` userspace
dunk2k Jun 1, 2023
4df243f
add tap_dance files
dunk2k Jun 1, 2023
f3460db
change `scotto-qwerty` to `scotto`
dunk2k Jun 1, 2023
ebc62a3
add wrappers
dunk2k Jun 1, 2023
2c2c457
adjustments made to tap dance files
dunk2k Jun 1, 2023
3996758
swapped scotto to colemak
dunk2k Jun 1, 2023
2178b5c
further changes to tap_dance files
dunk2k Jun 1, 2023
525123d
more changes to tap_dance files
dunk2k Jun 1, 2023
ce28275
more tapdance admendments
dunk2k Jun 1, 2023
9477462
tap_dance 'bool error' fixed
dunk2k Jun 1, 2023
b35fc9c
build fixes for `scotto`
dunk2k Jun 1, 2023
2262669
corrections added
dunk2k Jun 1, 2023
b861272
corrections to `scotto` ortho_4x10
dunk2k Jun 1, 2023
3701f49
fixed 2 extra arguments error
dunk2k Jun 2, 2023
66f0f8e
fixed `ortho_4x10`
dunk2k Jun 2, 2023
ce2f1fe
completed keymap tranformation code
dunk2k Jun 2, 2023
e8ddfdf
add readme.md
dunk2k Jun 2, 2023
84f3ec5
Update users/scotto/config.h
dunk2k Jun 2, 2023
573cbf8
Update users/scotto/readme.md
dunk2k Jun 2, 2023
a250ec3
Update readme.md
joe-scotto Jun 2, 2023
f456abb
Update layouts/community/ortho_4x10/scotto/keymap.c
dunk2k Jun 6, 2023
ebf5bec
Update users/scotto/config.h
dunk2k Jun 6, 2023
b34abd7
Update users/scotto/rules.mk
dunk2k Jun 6, 2023
7f8a444
Update users/scotto/tap_dance.c
dunk2k Jun 11, 2023
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
74 changes: 74 additions & 0 deletions layouts/community/ortho_4x10/scotto/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/*
Copyright 2023 Joe Scotto
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 "scotto.h"

#define LAYOUT_ortho_4x10_wrapper(...) LAYOUT_ortho_4x10(__VA_ARGS__)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x10_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3a_________________,
KC_NO, KC_NO, _______THUMB6_1_______, KC_NO, KC_NO
),
[1] = LAYOUT_ortho_4x10_wrapper(
______________SYM_MEDIA_NAV1______________,
______________SYM_MEDIA_NAV2______________,
______________SYM_MEDIA_NAV3______________,
KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
),
[2] = LAYOUT_ortho_4x10_wrapper(
_________________NUM_SYM1_________________,
_________________NUM_SYM2_________________,
_________________NUM_SYM3a________________,
KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
),
[3] = LAYOUT_ortho_4x10_wrapper(
________________FUNC_SYS1a________________,
________________FUNC_SYS2_________________,
________________FUNC_SYS3_________________,
KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
),
[4] = LAYOUT_ortho_4x10_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3a_________________,
KC_NO, KC_NO, _______THUMB6_4_______, KC_NO, KC_NO
),
[5] = LAYOUT_ortho_4x10_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3b_________________,
KC_NO, KC_NO, _______THUMB6_5_______, KC_NO, KC_NO
),
[6] = LAYOUT_ortho_4x10_wrapper(
______________SYM_MEDIA_NAV1______________,
______________SYM_MEDIA_NAV2______________,
______________SYM_MEDIA_NAV3______________,
KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
),
[7] = LAYOUT_ortho_4x10_wrapper(
_________________NUM_SYM1_________________,
_________________NUM_SYM2_________________,
_________________NUM_SYM3b________________,
KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
),
[8] = LAYOUT_ortho_4x10_wrapper(
________________FUNC_SYS1b________________,
________________FUNC_SYS2_________________,
________________FUNC_SYS3_________________,
KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
)
};
78 changes: 78 additions & 0 deletions layouts/community/split_3x5_2/scotto/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/*
Copyright 2023 Joe Scotto

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
#include "scotto.h"

#define LAYOUT_split_3x5_2_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x5_2_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3a_________________,
_______THUMB4_1_______
),
[1] = LAYOUT_split_3x5_2_wrapper(
______________SYM_MEDIA_NAV1______________,
______________SYM_MEDIA_NAV2______________,
______________SYM_MEDIA_NAV3______________,
_____THUMB4_TRNS______
),
[2] = LAYOUT_split_3x5_2_wrapper(
_________________NUM_SYM1_________________,
_________________NUM_SYM2_________________,
_________________NUM_SYM3a________________,
_____THUMB4_TRNS______
),
[3] = LAYOUT_split_3x5_2_wrapper(
________________FUNC_SYS1a________________,
________________FUNC_SYS2_________________,
________________FUNC_SYS3_________________,
_____THUMB4_TRNS______
),
[4] = LAYOUT_split_3x5_2_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3a_________________,
_______THUMB4_4_______
),
[5] = LAYOUT_split_3x5_2_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3b_________________,
_______THUMB4_5_______
),
[6] = LAYOUT_split_3x5_2_wrapper(
______________SYM_MEDIA_NAV1______________,
______________SYM_MEDIA_NAV2______________,
______________SYM_MEDIA_NAV3______________,
_____THUMB4_TRNS______
),
[7] = LAYOUT_split_3x5_2_wrapper(
_________________NUM_SYM1_________________,
_________________NUM_SYM2_________________,
_________________NUM_SYM3b________________,
_____THUMB4_TRNS______
),
[8] = LAYOUT_split_3x5_2_wrapper(
________________FUNC_SYS1b________________,
________________FUNC_SYS2_________________,
________________FUNC_SYS3_________________,
_____THUMB4_TRNS______
)
};
75 changes: 75 additions & 0 deletions layouts/community/split_3x5_3/scotto/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
/*
Copyright 2023 Joe Scotto
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
#include "scotto.h"

#define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x5_3_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3a_________________,
_______THUMB6_1_______
),
[1] = LAYOUT_split_3x5_3_wrapper(
______________SYM_MEDIA_NAV1______________,
______________SYM_MEDIA_NAV2______________,
______________SYM_MEDIA_NAV3______________,
_____THUMB6_TRNS______
),
[2] = LAYOUT_split_3x5_3_wrapper(
_________________NUM_SYM1_________________,
_________________NUM_SYM2_________________,
_________________NUM_SYM3a________________,
_____THUMB6_TRNS______
),
[3] = LAYOUT_split_3x5_3_wrapper(
________________FUNC_SYS1a________________,
________________FUNC_SYS2_________________,
________________FUNC_SYS3_________________,
_____THUMB6_TRNS______
),
[4] = LAYOUT_split_3x5_3_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3a_________________,
_______THUMB6_4_______
),
[5] = LAYOUT_split_3x5_3_wrapper(
_________________KEYMAP1__________________,
_________________KEYMAP2__________________,
_________________KEYMAP3b_________________,
_______THUMB6_5_______
),
[6] = LAYOUT_split_3x5_3_wrapper(
______________SYM_MEDIA_NAV1______________,
______________SYM_MEDIA_NAV2______________,
______________SYM_MEDIA_NAV3______________,
_____THUMB6_TRNS______
),
[7] = LAYOUT_split_3x5_3_wrapper(
_________________NUM_SYM1_________________,
_________________NUM_SYM2_________________,
_________________NUM_SYM3b________________,
_____THUMB6_TRNS______
),
[8] = LAYOUT_split_3x5_3_wrapper(
________________FUNC_SYS1b________________,
________________FUNC_SYS2_________________,
________________FUNC_SYS3_________________,
_____THUMB6_TRNS______
)
};
25 changes: 25 additions & 0 deletions users/scotto/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
Copyright 2023 Joe Scotto
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

// config added when Tap Dance is enabled
#ifdef TAP_DANCE_ENABLE
# ifdef TAPPING_TERM
# undef TAPPING_TERM
# define TAPPING_TERM 135
# endif
# define TAPPING_TERM_PER_KEY
# define PERMISSIVE_HOLD
#endif
17 changes: 17 additions & 0 deletions users/scotto/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Scotto

Applies to layouts:
- LAYOUT_ortho_4x10
- LAYOUT_split_3x5_2
- LAYOUT_split_3x5_3

### QWERTY

Scotto's default functional layout is Colemak. To compile this layout in QWERTY (US English), append compile command with `KEYMAP=QWERTY` environment variable.
```
qmk compile -kb <keyboardName> -km scotto -e KEYMAP=QWERTY
```
Example for [Scotto34](/keyboards/scottokeebs/scotto34):
```
qmk compile -kb scottokeebs/scotto34 -km scotto -e KEYMAP=QWERTY
```
11 changes: 11 additions & 0 deletions users/scotto/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
SRC += scotto.c

TAP_DANCE_ENABLE = yes

ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += tap_dance.c
endif

ifneq ($(strip $(KEYMAP)),)
OPT_DEFS += -DKEYMAP_$(KEYMAP)
endif
15 changes: 15 additions & 0 deletions users/scotto/scotto.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
Copyright 2023 Joe Scotto
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 "scotto.h"
69 changes: 69 additions & 0 deletions users/scotto/scotto.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
Copyright 2023 Joe Scotto
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

#include QMK_KEYBOARD_H

#ifdef TAP_DANCE_ENABLE
#include "tap_dance.h"
#endif

// Assign rows of keycodes to a single def each
#define __QWERTY1__ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P
#define __QWERTY2__ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC
#define __QWERTY3a_ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
#define __QWERTY3b_ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH

#define __COLEMAK1__ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC
#define __COLEMAK2__ KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O
#define __COLEMAK3a_ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
#define __COLEMAK3b_ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH

#define ______________SYM_MEDIA_NAV1______________ KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL
#define ______________SYM_MEDIA_NAV2______________ KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT
#define ______________SYM_MEDIA_NAV3______________ LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILD, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS)

#define _________________NUM_SYM1_________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC
#define _________________NUM_SYM2_________________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0
#define _________________NUM_SYM3a________________ KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
#define _________________NUM_SYM3b________________ KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)

#define ________________FUNC_SYS1a________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5), TO(4)
#define ________________FUNC_SYS1b________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0)
#define ________________FUNC_SYS2_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define ________________FUNC_SYS3_________________ KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12

#define _______THUMB6_1_______ TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
#define _______THUMB6_4_______ TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LALT, LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
#define _______THUMB6_5_______ TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
#define _____THUMB6_TRNS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS

#define _______THUMB4_1_______ TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
#define _______THUMB4_4_______ TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT)
#define _______THUMB4_5_______ KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT)
#define _____THUMB4_TRNS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS

// set functional layout
#if defined (KEYMAP_QWERTY)
#define _________________KEYMAP1__________________ __QWERTY1__
#define _________________KEYMAP2__________________ __QWERTY2__
#define _________________KEYMAP3a_________________ __QWERTY3a_
#define _________________KEYMAP3b_________________ __QWERTY3b_
#else
#define _________________KEYMAP1__________________ __COLEMAK1__
#define _________________KEYMAP2__________________ __COLEMAK2__
#define _________________KEYMAP3a_________________ __COLEMAK3a_
#define _________________KEYMAP3b_________________ __COLEMAK3b_
#endif
Loading