aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ.Flanagan <jrfhoutx@comcast.net>2019-10-05 12:44:55 -0500
committerDrashna Jaelre <drashna@live.com>2019-10-05 10:44:55 -0700
commit19b60c273ab63c250db748e5eead6baba88cd0d8 (patch)
tree72a0fa65515e4d25e099c3ae68250ed0a8e39184
parentdbce3f648b342418f79de977068f2005d534cff7 (diff)
downloadqmk_firmware-19b60c273ab63c250db748e5eead6baba88cd0d8.tar.gz
qmk_firmware-19b60c273ab63c250db748e5eead6baba88cd0d8.zip
[Keyboard] Add OSA keyboard (#6849)
* initial commit restart of osa development * minor changes Minor changes mostly changing naming and comment out rgb modes * initial commit restart of osa development * minor changes Minor changes mostly changing naming and comment out rgb modes * more minor changes comment out some functions correct some spelling errors change some of the descriptive text * Minor Changes Minor changers per PR requests * Minor Changes Minor changes per PR suggestions * Major Changes Per PR suggestion from noroadsleft: - changed macro to LAYOUT_all in info.json, dualsplit/keymap.c and ocm/keymap.c, and osa.h - added osa.h macros for other layouts per suggestion and used suggested naming - changed naming of layout macros to correspond to macros and naming in default/keymap.c, dualsplit/keymap.c, ocm/keymap.c, splitbs/keymap.c, and splitrs/keymap.c - removed duplicate layers from all keymaps and edited per suggestions - compiled each keymap to check for and correct any potential errors. all compiled with no errors * Minor Change - fixed imgur image link in readme.md to be correct format * Minor Changes changes to macro layouts in osa.h changes to dualsplit/keymap.c - added arrows to layer 1 * Changes - Made changes to info.json to match osa.h - changes to osa.c enabling indicator LEDs - changed "dualsplit" directory name to "all" to match keymap naming in osa.h, info.json, and keymap.c - minor changes to all/keymap.c * Update keyboards/sck/osa/rules.mk Co-Authored-By: fauxpark <fauxpark@gmail.com> * Update keyboards/sck/osa/readme.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Changes to info.json - revert to info.json from version in b3b49c3 per requested changes
-rw-r--r--keyboards/sck/osa/config.h251
-rw-r--r--keyboards/sck/osa/info.json25
-rw-r--r--keyboards/sck/osa/keymaps/all/config.h19
-rw-r--r--keyboards/sck/osa/keymaps/all/keymap.c103
-rw-r--r--keyboards/sck/osa/keymaps/all/readme.md1
-rw-r--r--keyboards/sck/osa/keymaps/default/config.h19
-rw-r--r--keyboards/sck/osa/keymaps/default/keymap.c103
-rw-r--r--keyboards/sck/osa/keymaps/default/readme.md1
-rw-r--r--keyboards/sck/osa/keymaps/ocm/config.h19
-rw-r--r--keyboards/sck/osa/keymaps/ocm/keymap.c123
-rw-r--r--keyboards/sck/osa/keymaps/ocm/readme.md1
-rw-r--r--keyboards/sck/osa/keymaps/splitbs/config.h19
-rw-r--r--keyboards/sck/osa/keymaps/splitbs/keymap.c103
-rw-r--r--keyboards/sck/osa/keymaps/splitbs/readme.md1
-rw-r--r--keyboards/sck/osa/keymaps/splitrs/config.h19
-rw-r--r--keyboards/sck/osa/keymaps/splitrs/keymap.c103
-rw-r--r--keyboards/sck/osa/keymaps/splitrs/readme.md1
-rw-r--r--keyboards/sck/osa/osa.c73
-rw-r--r--keyboards/sck/osa/osa.h117
-rw-r--r--keyboards/sck/osa/readme.md19
-rw-r--r--keyboards/sck/osa/rules.mk37
21 files changed, 1157 insertions, 0 deletions
diff --git a/keyboards/sck/osa/config.h b/keyboards/sck/osa/config.h
new file mode 100644
index 000000000..1b574a099
--- /dev/null
+++ b/keyboards/sck/osa/config.h
@@ -0,0 +1,251 @@
1/*
2Copyright 2019 jrfhoutx
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x0000
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Space City Keyboards
27#define PRODUCT OSA
28#define DESCRIPTION PCB for the OSA (A no longer open source version of the TGR Alice)
29
30/* key matrix size */
31#define MATRIX_ROWS 10
32#define MATRIX_COLS 8
33
34/*
35 * Keyboard Matrix Assignments
36 *
37 * Change this to how you wired your keyboard
38 * COLS: AVR pins used for columns, left to right
39 * ROWS: AVR pins used for rows, top to bottom
40 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
41 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42 *
43*/
44#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, B0, B1, B2, B3, B7 }
45#define MATRIX_COL_PINS { B4, D7, D5, D3, D2, D0, D1, B5 }
46#define UNUSED_PINS
47
48/* COL2ROW, ROW2COL*/
49#define DIODE_DIRECTION COL2ROW
50
51/*
52 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
53 */
54//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
55
56// #define BACKLIGHT_PIN B7
57// #define BACKLIGHT_BREATHING
58// #define BACKLIGHT_LEVELS 3
59
60 #define RGB_DI_PIN D4
61 #ifdef RGB_DI_PIN
62 #define RGBLED_NUM 9
63 #define RGBLIGHT_HUE_STEP 10
64 #define RGBLIGHT_SAT_STEP 17
65 #define RGBLIGHT_VAL_STEP 17
66 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
67 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
68 /*== all animations enable ==*/
69 // #define RGBLIGHT_ANIMATIONS
70 /*== or choose animations ==*/
71 //#define RGBLIGHT_EFFECT_BREATHING
72 // #define RGBLIGHT_EFFECT_RAINBOW_MOOD
73 // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
74 // #define RGBLIGHT_EFFECT_SNAKE
75 // #define RGBLIGHT_EFFECT_KNIGHT
76 // #define RGBLIGHT_EFFECT_CHRISTMAS
77 // #define RGBLIGHT_EFFECT_STATIC_GRADIENT
78 // #define RGBLIGHT_EFFECT_RGB_TEST
79// #define RGBLIGHT_EFFECT_ALTERNATING
80 /*== customize breathing effect ==*/
81 /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
82 // #define RGBLIGHT_BREATHE_TABLE_SIZE 128 // 256(default) or 128 or 64
83 /*==== use exp() and sin() ====*/
84 // #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
85 // #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
86 #endif
87
88/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
89#define DEBOUNCE 5
90
91/* define if matrix has ghost (lacks anti-ghosting diodes) */
92//#define MATRIX_HAS_GHOST
93
94/* number of backlight levels */
95
96/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
97//#define LOCKING_SUPPORT_ENABLE
98/* Locking resynchronize hack */
99//#define LOCKING_RESYNC_ENABLE
100
101/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
102 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
103 */
104// #define GRAVE_ESC_CTRL_OVERRIDE
105
106/*
107 * Force NKRO
108 *
109 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
110 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
111 * makefile for this to work.)
112 *
113 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
114 * until the next keyboard reset.
115 *
116 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
117 * fully operational during normal computer usage.
118 *
119 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
120 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
121 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
122 * power-up.
123 *
124 */
125//#define FORCE_NKRO
126
127/*
128 * Magic Key Options
129 *
130 * Magic keys are hotkey commands that allow control over firmware functions of
131 * the keyboard. They are best used in combination with the HID Listen program,
132 * found here: https://www.pjrc.com/teensy/hid_listen.html
133 *
134 * The options below allow the magic key functionality to be changed. This is
135 * useful if your keyboard/keypad is missing keys and you want magic key support.
136 *
137 */
138
139/* key combination for magic key command */
140/* defined by default; to change, uncomment and set to the combination you want */
141// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
142
143/* control how magic key switches layers */
144//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
145//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
147
148/* override magic key keymap */
149//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
150//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
151//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
152//#define MAGIC_KEY_HELP H
153//#define MAGIC_KEY_HELP_ALT SLASH
154//#define MAGIC_KEY_DEBUG D
155//#define MAGIC_KEY_DEBUG_MATRIX X
156//#define MAGIC_KEY_DEBUG_KBD K
157//#define MAGIC_KEY_DEBUG_MOUSE M
158//#define MAGIC_KEY_VERSION V
159//#define MAGIC_KEY_STATUS S
160//#define MAGIC_KEY_CONSOLE C
161//#define MAGIC_KEY_LAYER0 0
162//#define MAGIC_KEY_LAYER0_ALT GRAVE
163//#define MAGIC_KEY_LAYER1 1
164//#define MAGIC_KEY_LAYER2 2
165//#define MAGIC_KEY_LAYER3 3
166//#define MAGIC_KEY_LAYER4 4
167//#define MAGIC_KEY_LAYER5 5
168//#define MAGIC_KEY_LAYER6 6
169//#define MAGIC_KEY_LAYER7 7
170//#define MAGIC_KEY_LAYER8 8
171//#define MAGIC_KEY_LAYER9 9
172//#define MAGIC_KEY_BOOTLOADER B
173//#define MAGIC_KEY_BOOTLOADER_ALT ESC
174//#define MAGIC_KEY_LOCK CAPS
175//#define MAGIC_KEY_EEPROM E
176//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
177//#define MAGIC_KEY_NKRO N
178//#define MAGIC_KEY_SLEEP_LED Z
179
180/*
181 * Feature disable options
182 * These options are also useful to firmware size reduction.
183 */
184
185/* disable debug print */
186//#define NO_DEBUG
187
188/* disable print */
189//#define NO_PRINT
190
191/* disable action features */
192//#define NO_ACTION_LAYER
193//#define NO_ACTION_TAPPING
194//#define NO_ACTION_ONESHOT
195//#define NO_ACTION_MACRO
196//#define NO_ACTION_FUNCTION
197
198/*
199 * MIDI options
200 */
201
202/* Prevent use of disabled MIDI features in the keymap */
203//#define MIDI_ENABLE_STRICT 1
204
205/* enable basic MIDI features:
206 - MIDI notes can be sent when in Music mode is on
207*/
208//#define MIDI_BASIC
209
210/* enable advanced MIDI features:
211 - MIDI notes can be added to the keymap
212 - Octave shift and transpose
213 - Virtual sustain, portamento, and modulation wheel
214 - etc.
215*/
216//#define MIDI_ADVANCED
217
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */
250//#define BOOTMAGIC_LITE_ROW 0
251//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/sck/osa/info.json b/keyboards/sck/osa/info.json
new file mode 100644
index 000000000..64ed057e4
--- /dev/null
+++ b/keyboards/sck/osa/info.json
@@ -0,0 +1,25 @@
1{
2 "keyboard_name": "OSA",
3 "url": "",
4 "maintainer": "qmk",
5 "width": 18.25,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_default_ansi": {
9 "key_count": 64,
10 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":10.25, "y":0}, {"label":"*", "x":11.25, "y":0}, {"label":"(", "x":12.25, "y":0}, {"label":")", "x":13.25, "y":0}, {"label":"_", "x":14.25, "y":0}, {"label":"+", "x":15.25, "y":0}, {"label":"Backspace", "x":16.25, "y":0, "w":2}, {"label":"Page Up", "x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":9.75, "y":1}, {"label":"U", "x":10.75, "y":1}, {"label":"I", "x":11.75, "y":1}, {"label":"O", "x":12.75, "y":1}, {"label":"P", "x":13.75, "y":1}, {"label":"{", "x":14.75, "y":1}, {"label":"}", "x":15.75, "y":1}, {"label":"|", "x":16.75, "y":1, "w":1.5}, {"label":"Page Down", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":10, "y":2}, {"label":"J", "x":11, "y":2}, {"label":"K", "x":12, "y":2}, {"label":"L", "x":13, "y":2}, {"label":":", "x":14, "y":2}, {"label":"\"", "x":15, "y":2}, {"label":"Enter", "x":16, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":9.5, "y":3}, {"label":"N", "x":10.5, "y":3}, {"label":"M", "x":11.5, "y":3}, {"label":"<", "x":12.5, "y":3}, {"label":">", "x":13.5, "y":3}, {"label":"?", "x":14.5, "y":3}, {"label":"Shift", "x":15.5, "y":3, "w":2.75}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.5}, {"label":"Win", "x":4.25, "y":4, "w":1.5}, {"x":5.75, "y":4, "w":2.25}, {"label":"Fn", "x":8, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.5}, {"label":"Ctrl", "x":16.75, "y":4, "w":1.5}]
11 },
12 "LAYOUT_split_backspace": {
13 "key_count": 65,
14 "layout": [{"label":"Delete", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":10.25, "y":0}, {"label":"*", "x":11.25, "y":0}, {"label":"(", "x":12.25, "y":0}, {"label":")", "x":13.25, "y":0}, {"label":"_", "x":14.25, "y":0}, {"label":"+", "x":15.25, "y":0}, {"label":"~", "x":16.25, "y":0}, {"label":"|", "x":17.25, "y":0}, {"label":"Page Up", "x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":9.75, "y":1}, {"label":"U", "x":10.75, "y":1}, {"label":"I", "x":11.75, "y":1}, {"label":"O", "x":12.75, "y":1}, {"label":"P", "x":13.75, "y":1}, {"label":"{", "x":14.75, "y":1}, {"label":"}", "x":15.75, "y":1}, {"label":"Backspace", "x":16.75, "y":1, "w":1.5}, {"label":"Page Down", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":10, "y":2}, {"label":"J", "x":11, "y":2}, {"label":"K", "x":12, "y":2}, {"label":"L", "x":13, "y":2}, {"label":":", "x":14, "y":2}, {"label":"\"", "x":15, "y":2}, {"label":"Enter", "x":16, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":9.5, "y":3}, {"label":"N", "x":10.5, "y":3}, {"label":"M", "x":11.5, "y":3}, {"label":"<", "x":12.5, "y":3}, {"label":">", "x":13.5, "y":3}, {"label":"?", "x":14.5, "y":3}, {"label":"Shift", "x":15.5, "y":3, "w":2.75}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.5}, {"label":"Win", "x":4.25, "y":4, "w":1.5}, {"x":5.75, "y":4, "w":2.25}, {"label":"Fn", "x":8, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.5}, {"label":"Ctrl", "x":16.75, "y":4, "w":1.5}]
15 },
16 "LAYOUT_split_right_shift": {
17 "key_count": 65,
18 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":10.25, "y":0}, {"label":"*", "x":11.25, "y":0}, {"label":"(", "x":12.25, "y":0}, {"label":")", "x":13.25, "y":0}, {"label":"_", "x":14.25, "y":0}, {"label":"+", "x":15.25, "y":0}, {"label":"Backspace", "x":16.25, "y":0, "w":2}, {"label":"Page Up", "x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":9.75, "y":1}, {"label":"U", "x":10.75, "y":1}, {"label":"I", "x":11.75, "y":1}, {"label":"O", "x":12.75, "y":1}, {"label":"P", "x":13.75, "y":1}, {"label":"{", "x":14.75, "y":1}, {"label":"}", "x":15.75, "y":1}, {"label":"|", "x":16.75, "y":1, "w":1.5}, {"label":"Page Down", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":10, "y":2}, {"label":"J", "x":11, "y":2}, {"label":"K", "x":12, "y":2}, {"label":"L", "x":13, "y":2}, {"label":":", "x":14, "y":2}, {"label":"\"", "x":15, "y":2}, {"label":"Enter", "x":16, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":9.5, "y":3}, {"label":"N", "x":10.5, "y":3}, {"label":"M", "x":11.5, "y":3}, {"label":"<", "x":12.5, "y":3}, {"label":">", "x":13.5, "y":3}, {"label":"?", "x":14.5, "y":3}, {"label":"Shift", "x":15.5, "y":3, "w":1.75}, {"label":"Fn", "x":17.25, "y":3}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.5}, {"label":"Win", "x":4.25, "y":4, "w":1.5}, {"x":5.75, "y":4, "w":2.25}, {"label":"Fn", "x":8, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.5}, {"label":"Ctrl", "x":16.75, "y":4, "w":1.5}]
19 },
20 "LAYOUT_all": {
21 "key_count": 66,
22 "layout": [{"label":"Delete", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":10.25, "y":0}, {"label":"*", "x":11.25, "y":0}, {"label":"(", "x":12.25, "y":0}, {"label":")", "x":13.25, "y":0}, {"label":"_", "x":14.25, "y":0}, {"label":"+", "x":15.25, "y":0}, {"label":"~", "x":16.25, "y":0}, {"label":"|", "x":17.25, "y":0}, {"label":"Page Up", "x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":9.75, "y":1}, {"label":"U", "x":10.75, "y":1}, {"label":"I", "x":11.75, "y":1}, {"label":"O", "x":12.75, "y":1}, {"label":"P", "x":13.75, "y":1}, {"label":"{", "x":14.75, "y":1}, {"label":"}", "x":15.75, "y":1}, {"label":"Backspace", "x":16.75, "y":1, "w":1.5}, {"label":"Page Down", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":10, "y":2}, {"label":"J", "x":11, "y":2}, {"label":"K", "x":12, "y":2}, {"label":"L", "x":13, "y":2}, {"label":":", "x":14, "y":2}, {"label":"\"", "x":15, "y":2}, {"label":"Enter", "x":16, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":9.5, "y":3}, {"label":"N", "x":10.5, "y":3}, {"label":"M", "x":11.5, "y":3}, {"label":"<", "x":12.5, "y":3}, {"label":">", "x":13.5, "y":3}, {"label":"?", "x":14.5, "y":3}, {"label":"Shift", "x":15.5, "y":3, "w":1.75}, {"label":"Fn", "x":17.25, "y":3}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.5}, {"label":"Win", "x":4.25, "y":4, "w":1.5}, {"x":5.75, "y":4, "w":2.25}, {"label":"Fn", "x":8, "y":4}, {"x":9.5, "y":4, "w":2.75}, {"label":"Alt", "x":12.25, "y":4, "w":1.5}, {"label":"Ctrl", "x":16.75, "y":4, "w":1.5}]
23 }
24 }
25}
diff --git a/keyboards/sck/osa/keymaps/all/config.h b/keyboards/sck/osa/keymaps/all/config.h
new file mode 100644
index 000000000..499a4753f
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/all/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
diff --git a/keyboards/sck/osa/keymaps/all/keymap.c b/keyboards/sck/osa/keymaps/all/keymap.c
new file mode 100644
index 000000000..378f8ed58
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/all/keymap.c
@@ -0,0 +1,103 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19//enum custom_keycodes {
20// QMKBEST = SAFE_RANGE,
21// QMKURL
22//};
23
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 /* Keymap BASE: (Base Layer) Default Layer
27 * .----.,----------------------------------------------------------------------.
28 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
29 * |----||----------------------------------------------------------------------|
30 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
31 * |----||----------------------------------------------------------------------|
32 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
33 * `----'|----------------------------------------------------------------------|
34 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
35 * |----------------------------------------------------------------------|
36 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
37 * `----------------------------------------------------------------------'
38 */
39[0] = LAYOUT_all( /* OSA Base */
40 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
41 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
42 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
43 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
44 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
45 ),
46/* Keymap BASE: (Base Layer) Default Layer
47 * .----.,----------------------------------------------------------------------.
48 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
49 * |----||----------------------------------------------------------------------|
50 * | M2 ||Tab | Q| UP| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
51 * |----||----------------------------------------------------------------------|
52 * | M3 ||Ctrl |LFT| DN|RGHT| F| G| |LFT|DN| UP |RGHT| ;| '|Return |
53 * `----'|----------------------------------------------------------------------|
54 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
55 * |----------------------------------------------------------------------|
56 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
57 * `----------------------------------------------------------------------'
58 */
59[1] = LAYOUT_all( /* OSA Layer 1 */
60 KC_SLCK, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
61 KC_NLCK, KC_TAB, KC_Q, KC_UP, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
62 KC_CLCK, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_F, KC_G, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT, KC_ENT,
63 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
64 KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL
65 ),
66};
67
68
69
70
71//bool process_record_user(uint16_t keycode, keyrecord_t *record) {
72// switch (keycode) {
73// case QMKBEST:
74// if (record->event.pressed) {
75// // when keycode QMKBEST is pressed
76// SEND_STRING("QMK is the best thing ever!");
77// } else {
78// // when keycode QMKBEST is released
79// }
80// break;
81// case QMKURL:
82// if (record->event.pressed) {
83// // when keycode QMKURL is pressed
84// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
85// } else {
86// // when keycode QMKURL is released
87// }
88// break;
89// }
90// return true;
91//}
92
93void matrix_init_user(void) {
94
95}
96
97void matrix_scan_user(void) {
98
99}
100
101void led_set_user(uint8_t usb_led) {
102
103}
diff --git a/keyboards/sck/osa/keymaps/all/readme.md b/keyboards/sck/osa/keymaps/all/readme.md
new file mode 100644
index 000000000..03a0b5463
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/all/readme.md
@@ -0,0 +1 @@
# The split backspace and split right shift keymap for osa
diff --git a/keyboards/sck/osa/keymaps/default/config.h b/keyboards/sck/osa/keymaps/default/config.h
new file mode 100644
index 000000000..499a4753f
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/default/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
diff --git a/keyboards/sck/osa/keymaps/default/keymap.c b/keyboards/sck/osa/keymaps/default/keymap.c
new file mode 100644
index 000000000..d6cfddc46
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/default/keymap.c
@@ -0,0 +1,103 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19//enum custom_keycodes {
20// QMKBEST = SAFE_RANGE,
21// QMKURL
22//};
23
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 /* Keymap BASE: (Base Layer) Default Layer
27 * .----.,----------------------------------------------------------------------.
28 * | M1 || ~ | 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =|Backsp |
29 * |----||----------------------------------------------------------------------|
30 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] | \ |
31 * |----||----------------------------------------------------------------------|
32 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
33 * `----'|----------------------------------------------------------------------|
34 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift |
35 * |----------------------------------------------------------------------|
36 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
37 * `----------------------------------------------------------------------'
38 */
39 [0] = LAYOUT_default_ansi( /* Base */
40 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
41 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
42 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
43 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
44 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
45 ),
46/* Keymap BASE: (Base Layer) Default Layer
47 * .--------.,----------------------------------------------------------------------.
48 * |RGB_TOG || ~ | 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =|Backsp |
49 * |--------||----------------------------------------------------------------------|
50 * |RGB_MOD ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] | \ |
51 * |--------||----------------------------------------------------------------------|
52 * |RGB_RMOD||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
53 * `--------'|----------------------------------------------------------------------|
54 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift |
55 * |----------------------------------------------------------------------|
56 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
57 * `----------------------------------------------------------------------'
58 */
59 [1] = LAYOUT_default_ansi( /* OSA Layer 1 */
60 RGB_TOG, RGB_M_T, RGB_VAI, RGB_VAD, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
61 RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
62 RGB_RMOD, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
63 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
64 KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL
65 ),
66};
67
68
69
70
71//bool process_record_user(uint16_t keycode, keyrecord_t *record) {
72// switch (keycode) {
73// case QMKBEST:
74// if (record->event.pressed) {
75// // when keycode QMKBEST is pressed
76// SEND_STRING("QMK is the best thing ever!");
77// } else {
78// // when keycode QMKBEST is released
79// }
80// break;
81// case QMKURL:
82// if (record->event.pressed) {
83// // when keycode QMKURL is pressed
84// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
85// } else {
86// // when keycode QMKURL is released
87// }
88// break;
89// }
90// return true;
91//}
92
93void matrix_init_user(void) {
94
95}
96
97void matrix_scan_user(void) {
98
99}
100
101//void led_set_user(uint16_t usb_led) {
102//
103//}
diff --git a/keyboards/sck/osa/keymaps/default/readme.md b/keyboards/sck/osa/keymaps/default/readme.md
new file mode 100644
index 000000000..982042494
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default ANSI keymap for OSA
diff --git a/keyboards/sck/osa/keymaps/ocm/config.h b/keyboards/sck/osa/keymaps/ocm/config.h
new file mode 100644
index 000000000..499a4753f
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/ocm/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
diff --git a/keyboards/sck/osa/keymaps/ocm/keymap.c b/keyboards/sck/osa/keymaps/ocm/keymap.c
new file mode 100644
index 000000000..cd48b5729
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/ocm/keymap.c
@@ -0,0 +1,123 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19//enum custom_keycodes {
20// QMKBEST = SAFE_RANGE,
21// QMKURL
22//};
23
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 /* Keymap BASE: (Base Layer) Default Layer
27 * .----.,----------------------------------------------------------------------.
28 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
29 * |----||----------------------------------------------------------------------|
30 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
31 * |----||----------------------------------------------------------------------|
32 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
33 * `----'|----------------------------------------------------------------------|
34 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
35 * |----------------------------------------------------------------------|
36 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
37 * `----------------------------------------------------------------------'
38 */
39[0] = LAYOUT_all( /* OSA Base */
40 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
41 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
42 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
43 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
44 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
45 ),
46/* Keymap BASE: (Base Layer) Default Layer
47 * .----.,----------------------------------------------------------------------.
48 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
49 * |----||----------------------------------------------------------------------|
50 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
51 * |----||----------------------------------------------------------------------|
52 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
53 * `----'|----------------------------------------------------------------------|
54 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
55 * |----------------------------------------------------------------------|
56 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
57 * `----------------------------------------------------------------------'
58 */
59[1] = LAYOUT_all( /* OSA Layer 1 */
60 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
61 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
62 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
63 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
64 KC_LCTL, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL
65 ),
66/* Keymap BASE: (Base Layer) Default Layer
67 * .----.,----------------------------------------------------------------------.
68 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
69 * |----||----------------------------------------------------------------------|
70 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
71 * |----||----------------------------------------------------------------------|
72 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
73 * `----'|----------------------------------------------------------------------|
74 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
75 * |----------------------------------------------------------------------|
76 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
77 * `----------------------------------------------------------------------'
78 */
79[2] = LAYOUT_all( /* OSA Layer 2 */
80 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
81 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
82 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
83 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
84 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
85 ),
86};
87
88
89
90
91//bool process_record_user(uint16_t keycode, keyrecord_t *record) {
92// switch (keycode) {
93// case QMKBEST:
94// if (record->event.pressed) {
95// // when keycode QMKBEST is pressed
96// SEND_STRING("QMK is the best thing ever!");
97// } else {
98// // when keycode QMKBEST is released
99// }
100// break;
101// case QMKURL:
102// if (record->event.pressed) {
103// // when keycode QMKURL is pressed
104// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
105// } else {
106// // when keycode QMKURL is released
107// }
108// break;
109// }
110// return true;
111//}
112
113void matrix_init_user(void) {
114
115}
116
117void matrix_scan_user(void) {
118
119}
120
121void led_set_user(uint8_t usb_led) {
122
123}
diff --git a/keyboards/sck/osa/keymaps/ocm/readme.md b/keyboards/sck/osa/keymaps/ocm/readme.md
new file mode 100644
index 000000000..3624b1078
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/ocm/readme.md
@@ -0,0 +1 @@
# OneCreativeMind's keymap for OSA
diff --git a/keyboards/sck/osa/keymaps/splitbs/config.h b/keyboards/sck/osa/keymaps/splitbs/config.h
new file mode 100644
index 000000000..499a4753f
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/splitbs/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
diff --git a/keyboards/sck/osa/keymaps/splitbs/keymap.c b/keyboards/sck/osa/keymaps/splitbs/keymap.c
new file mode 100644
index 000000000..528e45329
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/splitbs/keymap.c
@@ -0,0 +1,103 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19//enum custom_keycodes {
20// QMKBEST = SAFE_RANGE,
21// QMKURL
22//};
23
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 /* Keymap BASE: (Base Layer) Default Layer
27 * .----.,----------------------------------------------------------------------.
28 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
29 * |----||----------------------------------------------------------------------|
30 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
31 * |----||----------------------------------------------------------------------|
32 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
33 * `----'|----------------------------------------------------------------------|
34 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift |
35 * |----------------------------------------------------------------------|
36 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
37 * `----------------------------------------------------------------------'
38 */
39[0] = LAYOUT_split_backspace( /* OSA Base */
40 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
41 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
42 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
43 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
44 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
45 ),
46/* Keymap BASE: (Base Layer) Default Layer
47 * .----.,----------------------------------------------------------------------.
48 * | M1 ||Esc| 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| ~ | \ |
49 * |----||----------------------------------------------------------------------|
50 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] |BkSpc|
51 * |----||----------------------------------------------------------------------|
52 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
53 * `----'|----------------------------------------------------------------------|
54 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift |
55 * |----------------------------------------------------------------------|
56 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
57 * `----------------------------------------------------------------------'
58 */
59[1] = LAYOUT_split_backspace( /* OSA Layer 1 */
60 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS,
61 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
62 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
63 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
64 KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL
65 ),
66};
67
68
69
70
71//bool process_record_user(uint16_t keycode, keyrecord_t *record) {
72// switch (keycode) {
73// case QMKBEST:
74// if (record->event.pressed) {
75// // when keycode QMKBEST is pressed
76// SEND_STRING("QMK is the best thing ever!");
77// } else {
78// // when keycode QMKBEST is released
79// }
80// break;
81// case QMKURL:
82// if (record->event.pressed) {
83// // when keycode QMKURL is pressed
84// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
85// } else {
86// // when keycode QMKURL is released
87// }
88// break;
89// }
90// return true;
91//}
92
93void matrix_init_user(void) {
94
95}
96
97void matrix_scan_user(void) {
98
99}
100
101void led_set_user(uint8_t usb_led) {
102
103}
diff --git a/keyboards/sck/osa/keymaps/splitbs/readme.md b/keyboards/sck/osa/keymaps/splitbs/readme.md
new file mode 100644
index 000000000..33fb31b33
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/splitbs/readme.md
@@ -0,0 +1 @@
# The split backspace keymap for osa
diff --git a/keyboards/sck/osa/keymaps/splitrs/config.h b/keyboards/sck/osa/keymaps/splitrs/config.h
new file mode 100644
index 000000000..499a4753f
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/splitrs/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19// place overrides here
diff --git a/keyboards/sck/osa/keymaps/splitrs/keymap.c b/keyboards/sck/osa/keymaps/splitrs/keymap.c
new file mode 100644
index 000000000..a59b66334
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/splitrs/keymap.c
@@ -0,0 +1,103 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19//enum custom_keycodes {
20// QMKBEST = SAFE_RANGE,
21// QMKURL
22//};
23
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 /* Keymap BASE: (Base Layer) Default Layer
27 * .----.,----------------------------------------------------------------------.
28 * | M1 || ~ | 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =|Backsp |
29 * |----||----------------------------------------------------------------------|
30 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] | \ |
31 * |----||----------------------------------------------------------------------|
32 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
33 * `----'|----------------------------------------------------------------------|
34 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
35 * |----------------------------------------------------------------------|
36 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
37 * `----------------------------------------------------------------------'
38 */
39[0] = LAYOUT_split_right_shift( /* OSA Base */
40 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
41 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
42 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
43 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
44 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL
45 ),
46/* Keymap BASE: (Base Layer) Default Layer
47 * .----.,----------------------------------------------------------------------.
48 * | M1 || ~ | 1 | 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =|Backsp |
49 * |----||----------------------------------------------------------------------|
50 * | M2 ||Tab | Q| W| E| R| T| | Y| U| I| O| P| [ | ] | \ |
51 * |----||----------------------------------------------------------------------|
52 * | M3 ||Ctrl | A| S| D| F| G| | H| J| K| L| ;| '|Return |
53 * `----'|----------------------------------------------------------------------|
54 * |Shift | Z| X| C| V| B| | B| N| M| ,| .| /|Shift | Fn |
55 * |----------------------------------------------------------------------|
56 * |CAPS| | Alt | Space | Fn | | Space | Alt | | Ctrl|
57 * `----------------------------------------------------------------------'
58 */
59[1] = LAYOUT_split_right_shift( /* OSA Layer 1 */
60 KC_DEL, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
61 KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
62 KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
63 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_HOME,
64 KC_LCTL, KC_LALT, KC_SPC, _______, KC_SPC, KC_RALT, KC_RCTL
65 ),
66};
67
68
69
70
71//bool process_record_user(uint16_t keycode, keyrecord_t *record) {
72// switch (keycode) {
73// case QMKBEST:
74// if (record->event.pressed) {
75// // when keycode QMKBEST is pressed
76// SEND_STRING("QMK is the best thing ever!");
77// } else {
78// // when keycode QMKBEST is released
79// }
80// break;
81// case QMKURL:
82// if (record->event.pressed) {
83// // when keycode QMKURL is pressed
84// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
85// } else {
86// // when keycode QMKURL is released
87// }
88// break;
89// }
90// return true;
91//}
92
93void matrix_init_user(void) {
94
95}
96
97void matrix_scan_user(void) {
98
99}
100
101void led_set_user(uint8_t usb_led) {
102
103}
diff --git a/keyboards/sck/osa/keymaps/splitrs/readme.md b/keyboards/sck/osa/keymaps/splitrs/readme.md
new file mode 100644
index 000000000..9f2315c2a
--- /dev/null
+++ b/keyboards/sck/osa/keymaps/splitrs/readme.md
@@ -0,0 +1 @@
# The split right shift keymap for osa
diff --git a/keyboards/sck/osa/osa.c b/keyboards/sck/osa/osa.c
new file mode 100644
index 000000000..138a28893
--- /dev/null
+++ b/keyboards/sck/osa/osa.c
@@ -0,0 +1,73 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "osa.h"
17
18
19// Optional override functions below.
20// You can leave any or all of these undefined.
21// These are only required if you want to perform custom actions.
22
23/*
24
25void matrix_init_kb(void) {
26 // put your keyboard start-up code here
27 // runs once when the firmware starts up
28
29 matrix_init_user();
30}
31
32void matrix_scan_kb(void) {
33 // put your looping keyboard code here
34 // runs every cycle (a lot)
35
36 matrix_scan_user();
37}
38
39bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
40 // put your per-action keyboard code here
41 // runs for every action, just before processing by the firmware
42
43 return process_record_user(keycode, record);
44}
45*/
46
47void matrix_init_board(void){
48 setPinOutput(C7);
49 setPinOutput(C6);
50 setPinOutput(B6);
51}
52
53void led_set_kb(uint8_t usb_led) {
54 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
55
56 if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
57 writePinHigh(C7);
58 } else {
59 writePinLow(C7);
60 }
61 if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
62 writePinHigh(C6);
63 } else {
64 writePinLow(C6);
65 }
66 if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
67 writePinHigh(B6);
68 } else {
69 writePinLow(B6);
70 }
71 led_set_user(usb_led);
72}
73
diff --git a/keyboards/sck/osa/osa.h b/keyboards/sck/osa/osa.h
new file mode 100644
index 000000000..46cb3cd85
--- /dev/null
+++ b/keyboards/sck/osa/osa.h
@@ -0,0 +1,117 @@
1/* Copyright 2019 jrfhoutx
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#include "quantum.h"
19
20/* This a shortcut to help you visually see your layout.
21 *
22 * The first section contains all of the arguments representing the physical
23 * layout of the board and position of the keys.
24 *
25 * The second converts the arguments into a two-dimensional array which
26 * represents the switch matrix.
27 */
28
29/* LAYOUT
30 * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐┌────────┐
31 * │10 │ │00 │01 │02 │03 │04 │05 │06 │ │56 │55 │54 │53 │52 │51 │50 │57 ││57 │
32 * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤└────────┘
33 * │20 │ │11 │12 │13 │14 │15 │16 │ │66 │65 │64 │63 │62 │61 │60 │67 │
34 * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
35 * │30 │ │21 │22 │23 │24 │25 │26 │ │76 │75 │74 │73 │72 │71 │77 │
36 * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤┌──────────┐
37 * │31 │32 │33 │34 │35 │36 │ │86 │85 │84 │83 │82 │81 │80 │87 ││87 │
38 * ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐ ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤└──────────┘
39 * │41 │ │43 │45 │46 │ │95 │93 │ │90 │
40 * └─────┘ └─────┴───────┴────┘ └──────────┴─────┘ └─────┘
41 */
42#define LAYOUT_default_ansi( \
43 K10, K00, K01, K02, K03, K04, K05, K06, K56, K55, K54, K53, K52, K51, K57, \
44 K20, K11, K12, K13, K14, K15, K16, K66, K65, K64, K63, K62, K61, K60, K67, \
45 K30, K21, K22, K23, K24, K25, K26, K76, K75, K74, K73, K72, K71, K77, \
46 K31, K32, K33, K34, K35, K36, K86, K85, K84, K83, K82, K81, K87, \
47 K41, K43, K45, K46, K95, K93, K90 \
48) \
49{ \
50 { K00, K01, K02, K03, K04, K05, K06, KC_NO }, \
51 { K10, K11, K12, K13, K14, K15, K16, KC_NO }, \
52 { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \
53 { K30, K31, K32, K33, K34, K35, K36, KC_NO }, \
54 { KC_NO, K41, KC_NO, K43, KC_NO, K45, K46, KC_NO }, \
55 { KC_NO, K51, K52, K53, K54, K55, K56, K57 }, \
56 { K60, K61, K62, K63, K64, K65, K66, K67 }, \
57 { KC_NO, K71, K72, K73, K74, K75, K76, K77 }, \
58 { KC_NO, K81, K82, K83, K84, K85, K86, K87 }, \
59 { K90, KC_NO, KC_NO, K93, KC_NO, K95, KC_NO, KC_NO } \
60}
61#define LAYOUT_split_backspace( \
62 K10, K00, K01, K02, K03, K04, K05, K06, K56, K55, K54, K53, K52, K51, K50, K57, \
63 K20, K11, K12, K13, K14, K15, K16, K66, K65, K64, K63, K62, K61, K60, K67, \
64 K30, K21, K22, K23, K24, K25, K26, K76, K75, K74, K73, K72, K71, K77, \
65 K31, K32, K33, K34, K35, K36, K86, K85, K84, K83, K82, K81, K87, \
66 K41, K43, K45, K46, K95, K93, K90 \
67) \
68{ \
69 { K00, K01, K02, K03, K04, K05, K06, KC_NO }, \
70 { K10, K11, K12, K13, K14, K15, K16, KC_NO }, \
71 { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \
72 { K30, K31, K32, K33, K34, K35, K36, KC_NO }, \
73 { KC_NO, K41, KC_NO, K43, KC_NO, K45, K46, KC_NO }, \
74 { K50, K51, K52, K53, K54, K55, K56, K57 }, \
75 { K60, K61, K62, K63, K64, K65, K66, K67 }, \
76 { KC_NO, K71, K72, K73, K74, K75, K76, K77 }, \
77 { KC_NO, K81, K82, K83, K84, K85, K86, K87 }, \
78 { K90, KC_NO, KC_NO, K93, KC_NO, K95, KC_NO, KC_NO } \
79}
80#define LAYOUT_split_right_shift( \
81 K10, K00, K01, K02, K03, K04, K05, K06, K56, K55, K54, K53, K52, K51, K57, \
82 K20, K11, K12, K13, K14, K15, K16, K66, K65, K64, K63, K62, K61, K60, K67, \
83 K30, K21, K22, K23, K24, K25, K26, K76, K75, K74, K73, K72, K71, K77, \
84 K31, K32, K33, K34, K35, K36, K86, K85, K84, K83, K82, K81, K80, K87, \
85 K41, K43, K45, K46, K95, K93, K90 \
86) \
87{ \
88 { K00, K01, K02, K03, K04, K05, K06, KC_NO }, \
89 { K10, K11, K12, K13, K14, K15, K16, KC_NO }, \
90 { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \
91 { K30, K31, K32, K33, K34, K35, K36, KC_NO }, \
92 { KC_NO, K41, KC_NO, K43, KC_NO, K45, K46, KC_NO }, \
93 { KC_NO, K51, K52, K53, K54, K55, K56, K57 }, \
94 { K60, K61, K62, K63, K64, K65, K66, K67 }, \
95 { KC_NO, K71, K72, K73, K74, K75, K76, K77 }, \
96 { K80, K81, K82, K83, K84, K85, K86, K87 }, \
97 { K90, KC_NO, KC_NO, K93, KC_NO, K95, KC_NO, KC_NO } \
98}
99#define LAYOUT_all( \
100 K10, K00, K01, K02, K03, K04, K05, K06, K56, K55, K54, K53, K52, K51, K50, K57, \
101 K20, K11, K12, K13, K14, K15, K16, K66, K65, K64, K63, K62, K61, K60, K67, \
102 K30, K21, K22, K23, K24, K25, K26, K76, K75, K74, K73, K72, K71, K77, \
103 K31, K32, K33, K34, K35, K36, K86, K85, K84, K83, K82, K81, K80, K87, \
104 K41, K43, K45, K46, K95, K93, K90 \
105) \
106{ \
107 { K00, K01, K02, K03, K04, K05, K06, KC_NO }, \
108 { K10, K11, K12, K13, K14, K15, K16, KC_NO }, \
109 { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \
110 { K30, K31, K32, K33, K34, K35, K36, KC_NO }, \
111 { KC_NO, K41, KC_NO, K43, KC_NO, K45, K46, KC_NO }, \
112 { K50, K51, K52, K53, K54, K55, K56, K57 }, \
113 { K60, K61, K62, K63, K64, K65, K66, K67 }, \
114 { KC_NO, K71, K72, K73, K74, K75, K76, K77 }, \
115 { K80, K81, K82, K83, K84, K85, K86, K87 }, \
116 { K90, KC_NO, KC_NO, K93, KC_NO, K95, KC_NO, KC_NO } \
117}
diff --git a/keyboards/sck/osa/readme.md b/keyboards/sck/osa/readme.md
new file mode 100644
index 000000000..024df5cee
--- /dev/null
+++ b/keyboards/sck/osa/readme.md
@@ -0,0 +1,19 @@
1# osa
2
3![osa](https://i.imgur.com/U2x7TQ8.jpg)
4
5About the OSA:
6
7The OSA was run as a private group buy of 20 units. It is an Alice layout keyboard based on the Open Source Alice files, altered by BlindAssassin111 based on input from the private group buy members.
8All case and other design files have been either reworked or created from scratch by BlindAssassin111. PCB was designed from scratch by BlindAssassin111.
9The OSA PCB is an ATMega32u4 powered, USB Type C, Alice compatible PCB and was created specifically for the OSA case, but with considerations to make it compatible with the Lubrigante acrylic cases (except for the Type C connector it should also be compatible with original TGR Alice cases).
10
11Keyboard Maintainer: [jrfhoutx](https://github.com/jrfhoutx)
12Hardware Supported: OSA PCB by BlindAssassin111, ATMEGA32u4
13Hardware Availability: Currently unavailable outside of the private group buy
14
15Make example for this keyboard (after setting up your build environment):
16
17 make sck/osa:default
18
19See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/sck/osa/rules.mk b/keyboards/sck/osa/rules.mk
new file mode 100644
index 000000000..3538c25ba
--- /dev/null
+++ b/keyboards/sck/osa/rules.mk
@@ -0,0 +1,37 @@
1# MCU name
2MCU = atmega32u4
3
4
5
6# Bootloader selection
7# Teensy halfkay
8# Pro Micro caterina
9# Atmel DFU atmel-dfu
10# LUFA DFU lufa-dfu
11# QMK DFU qmk-dfu
12# ATmega32A bootloadHID
13# ATmega328P USBasp
14BOOTLOADER = atmel-dfu
15
16
17
18# Build Options
19# change yes to no to disable
20#
21BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
22MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
23EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
24CONSOLE_ENABLE = yes # Console for debug(+400)
25COMMAND_ENABLE = yes # Commands for debug and configuration
26# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
27SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
28# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
29NKRO_ENABLE = yes # USB Nkey Rollover
30BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
31RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
32MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
33UNICODE_ENABLE = no # Unicode
34BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
35AUDIO_ENABLE = no # Audio output on port C6
36FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
37HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)