aboutsummaryrefslogtreecommitdiff
path: root/keyboards/silverbullet44
diff options
context:
space:
mode:
authorswanmatch <swan_match@yahoo.co.jp>2020-02-21 14:59:36 +0900
committerGitHub <noreply@github.com>2020-02-21 16:59:36 +1100
commit81423cc8178e760a641655ec8d82ebf78c41c9ef (patch)
tree6cd3aa1bfe176f1dfdb01dbedd4eaa536976876a /keyboards/silverbullet44
parent7707724dc4864cb4ede738ee9e2c3568df99ced2 (diff)
downloadqmk_firmware-81423cc8178e760a641655ec8d82ebf78c41c9ef.tar.gz
qmk_firmware-81423cc8178e760a641655ec8d82ebf78c41c9ef.zip
[New keyboard]silverbullet44 (#7950)
* make silverbullet44 * comment edit * venderID * Fix parentheses in macros, and in general clean up quantum.h (#5021) * Fix up GPIO macros * Fix up send string macros `string` arguments must not be parenthesized * Fix up miscellaneous macros * Make indentation uniform (4 spaces) * Make #ifdef vs #if defined usage consistent * Reorder standard includes * Revert indentation changes as per review comments * Revert #if defined(__AVR__) → #ifdef __AVR__ change * Change 2 space indent to 4 spaces on a couple of lines * Replace include guard with #pragma once * alt+tab * copy from master:silverbullet44 * adjust for pull request * clang-format * create info.json * Delete new_project.sh * Update keyboards/silverbullet44/keymaps/default/config.h Co-Authored-By: Max Rumpf <max.rumpf1998@gmail.com> * Update keyboards/silverbullet44/silverbullet44.c Co-Authored-By: Max Rumpf <max.rumpf1998@gmail.com> * Update keyboards/silverbullet44/silverbullet44.h Co-Authored-By: Max Rumpf <max.rumpf1998@gmail.com> * Apply suggestions from Maxr1998 * format default keymap * Apply suggestions from Maxr1998 (#2) * Apply suggestions from fauxpark * fix readme.md * Apply suggestion from Maxr1998. (custom_keycode to MO(_ADJUST)) * I became a tricky! Hahaha!! * Add original keymap made by FKML * deleated at config.h * Changed Copyright * Delete // Defines the keycodes used by our macros in process_record_user //enum custom_keycodes { // QMKBEST = SAFE_RANGE, // QMKURL //}; * Delete bool alt_pressed = false; * Delete ADJUST * Delete / * Delete void matrix_scan_user(void) { } void led_set_user(uint8_t usb_led) { } * Change Copyright's year. * Delete adjust * Delete adjust * Delete adjust * 列挙型に変更 * Enclose keymap with ```. * Delete #define _______ KC_TRNS #define XXXXXXX KC_NO * Fix indentation. * Delete some rows. * Aligned columns of ''readme.md''. * I got god's keymap...hahaha:) * Update keyboards/silverbullet44/readme.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * Update keyboards/silverbullet44/rules.mk Co-Authored-By: fauxpark <fauxpark@gmail.com> Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com> Co-authored-by: Max Rumpf <max.rumpf1998@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/silverbullet44')
-rw-r--r--keyboards/silverbullet44/config.h294
-rw-r--r--keyboards/silverbullet44/info.json64
-rw-r--r--keyboards/silverbullet44/keymaps/FKML/keymap.c144
-rw-r--r--keyboards/silverbullet44/keymaps/FKML/readme.md47
-rw-r--r--keyboards/silverbullet44/keymaps/default/keymap.c203
-rw-r--r--keyboards/silverbullet44/keymaps/default/readme.md51
-rw-r--r--keyboards/silverbullet44/readme.md18
-rw-r--r--keyboards/silverbullet44/rules.mk36
-rw-r--r--keyboards/silverbullet44/silverbullet44.c45
-rw-r--r--keyboards/silverbullet44/silverbullet44.h43
10 files changed, 945 insertions, 0 deletions
diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h
new file mode 100644
index 000000000..6872f5fb4
--- /dev/null
+++ b/keyboards/silverbullet44/config.h
@@ -0,0 +1,294 @@
1/*
2Copyright 2019 SwanMatch
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 0x16C0
24#define PRODUCT_ID 0x27DB
25#define DEVICE_VER 0x0001
26#define MANUFACTURER SwanMatch
27#define PRODUCT SilverBullet44
28#define DESCRIPTION Metalical Keyboard
29
30/* key matrix size */
31#define MATRIX_ROWS 8
32#define MATRIX_COLS 6
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 { D4, C6, D7, E6 }
45#define MATRIX_COL_PINS { B3, B1, F7, F6, F5, F4 }
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 D2 // or D1, D2, D3, E6
55#define MASTER_RIGHT
56
57// #define BACKLIGHT_PIN B7
58// #define BACKLIGHT_BREATHING
59// #define BACKLIGHT_LEVELS 3
60
61#define RGB_DI_PIN D3
62#ifdef RGB_DI_PIN
63 //#define RGBLIGHT_SPLIT
64 #define RGBLED_SPLIT {26, 26}
65 #define RGBLED_NUM 52
66 #ifdef RGB_MATRIX_ENABLE
67 #define DRIVER_LED_TOTAL 52
68 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
69
70 #define RGB_MATRIX_HUE_STEP 8
71 #define RGB_MATRIX_SAT_STEP 8
72 #define RGB_MATRIX_VAL_STEP 8
73 #define RGB_MATRIX_SPD_STEP 8
74
75 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
76
77 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
78
79 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_TYPING_HEATMAP
80 #else
81 #define RGBLIGHT_LED_MAP { 0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,3,4,5,6, \
82 26,27,28,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,29,30,31,32 }
83 #define RGBLIGHT_HUE_STEP 8
84 #define RGBLIGHT_SAT_STEP 8
85 #define RGBLIGHT_VAL_STEP 8
86 #define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level */
87 //#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
88/*== all animations enable ==*/
89// #define RGBLIGHT_ANIMATIONS
90/*== or choose animations ==*/
91 #define RGBLIGHT_EFFECT_BREATHING
92 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
93 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
94 #define RGBLIGHT_EFFECT_SNAKE
95// #define RGBLIGHT_EFFECT_KNIGHT
96// #define RGBLIGHT_EFFECT_CHRISTMAS
97// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
98// #define RGBLIGHT_EFFECT_RGB_TEST
99// #define RGBLIGHT_EFFECT_ALTERNATING
100/*== customize breathing effect ==*/
101 /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
102 #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
103 /*==== use exp() and sin() ====*/
104 #define RGBLIGHT_EFFECT_BREATHE_CENTER 2 // 1 to 2.7
105 #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
106/*== customize snake effect ==*/
107 #define RGBLIGHT_EFFECT_SNAKE_LENGTH RGBLED_NUM
108/*== customize knight effect ==*/
109 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 6
110 #endif
111#endif
112
113/* Audio */
114#ifdef AUDIO_ENABLE
115 #define B6_AUDIO
116 #define STARTUP_SONG SONG(STARTUP_SOUND)
117 #define AUDIO_CLICKY
118 #define AUDIO_CLICKY_FREQ_RANDOMNESS 1.0f
119#endif
120
121/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
122#define DEBOUNCE 10
123
124//#define RETRO_TAPPING
125
126#ifdef MOUSEKEY_ENABLE
127 #define MOUSEKEY_INTERVAL 20
128 #define MOUSEKEY_MAX_SPEED 5
129 #define MOUSEKEY_TIME_TO_MAX 60
130#endif
131
132/* define if matrix has ghost (lacks anti-ghosting diodes) */
133//#define MATRIX_HAS_GHOST
134
135/* number of backlight levels */
136
137/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
138//#define LOCKING_SUPPORT_ENABLE
139/* Locking resynchronize hack */
140//#define LOCKING_RESYNC_ENABLE
141
142/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
143 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
144 */
145// #define GRAVE_ESC_CTRL_OVERRIDE
146
147/*
148 * Force NKRO
149 *
150 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
151 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
152 * makefile for this to work.)
153 *
154 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
155 * until the next keyboard reset.
156 *
157 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
158 * fully operational during normal computer usage.
159 *
160 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
161 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
162 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
163 * power-up.
164 *
165 */
166//#define FORCE_NKRO
167
168/*
169 * Magic Key Options
170 *
171 * Magic keys are hotkey commands that allow control over firmware functions of
172 * the keyboard. They are best used in combination with the HID Listen program,
173 * found here: https://www.pjrc.com/teensy/hid_listen.html
174 *
175 * The options below allow the magic key functionality to be changed. This is
176 * useful if your keyboard/keypad is missing keys and you want magic key support.
177 *
178 */
179
180/* key combination for magic key command */
181/* defined by default; to change, uncomment and set to the combination you want */
182// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
183
184/* control how magic key switches layers */
185//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
186//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
187//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
188
189/* override magic key keymap */
190//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
191//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
192//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
193//#define MAGIC_KEY_HELP H
194//#define MAGIC_KEY_HELP_ALT SLASH
195//#define MAGIC_KEY_DEBUG D
196//#define MAGIC_KEY_DEBUG_MATRIX X
197//#define MAGIC_KEY_DEBUG_KBD K
198//#define MAGIC_KEY_DEBUG_MOUSE M
199//#define MAGIC_KEY_VERSION V
200//#define MAGIC_KEY_STATUS S
201//#define MAGIC_KEY_CONSOLE C
202//#define MAGIC_KEY_LAYER0 0
203//#define MAGIC_KEY_LAYER0_ALT GRAVE
204//#define MAGIC_KEY_LAYER1 1
205//#define MAGIC_KEY_LAYER2 2
206//#define MAGIC_KEY_LAYER3 3
207//#define MAGIC_KEY_LAYER4 4
208//#define MAGIC_KEY_LAYER5 5
209//#define MAGIC_KEY_LAYER6 6
210//#define MAGIC_KEY_LAYER7 7
211//#define MAGIC_KEY_LAYER8 8
212//#define MAGIC_KEY_LAYER9 9
213//#define MAGIC_KEY_BOOTLOADER B
214//#define MAGIC_KEY_BOOTLOADER_ALT ESC
215//#define MAGIC_KEY_LOCK CAPS
216//#define MAGIC_KEY_EEPROM E
217//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
218//#define MAGIC_KEY_NKRO N
219//#define MAGIC_KEY_SLEEP_LED Z
220
221/*
222 * Feature disable options
223 * These options are also useful to firmware size reduction.
224 */
225
226/* disable debug print */
227//#define NO_DEBUG
228
229/* disable print */
230//#define NO_PRINT
231
232/* disable action features */
233//#define NO_ACTION_LAYER
234//#define NO_ACTION_TAPPING
235//#define NO_ACTION_ONESHOT
236#ifndef LINK_TIME_OPTIMIZATION_ENABLE
237# define NO_ACTION_MACRO
238# define NO_ACTION_FUNCTION
239#endif
240
241/*
242 * MIDI options
243 */
244
245/* Prevent use of disabled MIDI features in the keymap */
246//#define MIDI_ENABLE_STRICT 1
247
248/* enable basic MIDI features:
249 - MIDI notes can be sent when in Music mode is on
250*/
251//#define MIDI_BASIC
252
253/* enable advanced MIDI features:
254 - MIDI notes can be added to the keymap
255 - Octave shift and transpose
256 - Virtual sustain, portamento, and modulation wheel
257 - etc.
258*/
259//#define MIDI_ADVANCED
260
261/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
262//#define MIDI_TONE_KEYCODE_OCTAVES 1
263
264/*
265 * HD44780 LCD Display Configuration
266 */
267/*
268#define LCD_LINES 2 //< number of visible lines of the display
269#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
270
271#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
272
273#if LCD_IO_MODE
274#define LCD_PORT PORTB //< port for the LCD lines
275#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
276#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
277#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
278#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
279#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
280#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
281#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
282#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
283#define LCD_RS_PORT LCD_PORT //< port for RS line
284#define LCD_RS_PIN 3 //< pin for RS line
285#define LCD_RW_PORT LCD_PORT //< port for RW line
286#define LCD_RW_PIN 2 //< pin for RW line
287#define LCD_E_PORT LCD_PORT //< port for Enable line
288#define LCD_E_PIN 1 //< pin for Enable line
289#endif
290*/
291
292/* Bootmagic Lite key configuration */
293// #define BOOTMAGIC_LITE_ROW 0
294// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/silverbullet44/info.json b/keyboards/silverbullet44/info.json
new file mode 100644
index 000000000..65c54e538
--- /dev/null
+++ b/keyboards/silverbullet44/info.json
@@ -0,0 +1,64 @@
1{
2 "keyboard_name": "SilverBullet44",
3 "url": "https://swanmatch.booth.pm/items/1561270",
4 "maintainer": "swanmatch",
5 "width": 18,
6 "height": 4.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Tab", "x":0, "y":1.375},
11 {"label":"Q", "x":1, "y":0.75},
12 {"label":"W", "x":2, "y":0.25},
13 {"label":"E", "x":3, "y":0},
14 {"label":"R", "x":4, "y":0.25},
15 {"label":"T", "x":5, "y":0.5},
16
17 {"label":"Y", "x":12, "y":0.5},
18 {"label":"U", "x":13, "y":0.25},
19 {"label":"I", "x":14, "y":0},
20 {"label":"O", "x":15, "y":0.25},
21 {"label":"P", "x":16, "y":0.75},
22 {"label":"=", "x":17, "y":1.375},
23
24 {"label":"Shift", "x":0, "y":2.375},
25 {"label":"A", "x":1, "y":1.75},
26 {"label":"S", "x":2, "y":1.25},
27 {"label":"D", "x":3, "y":1},
28 {"label":"F", "x":4, "y":1.25},
29 {"label":"G", "x":5, "y":1.5},
30
31 {"label":"H", "x":12, "y":1.5},
32 {"label":"J", "x":13, "y":1.25},
33 {"label":"K", "x":14, "y":1},
34 {"label":"L", "x":15, "y":1.25},
35 {"label":":", "x":16, "y":1.75},
36 {"label":"'", "x":17, "y":2.375},
37
38 {"label":"N", "x":12, "y":2.5},
39 {"label":"M", "x":13, "y":2.25},
40 {"label":"<", "x":14, "y":2},
41 {"label":">", "x":15, "y":2.25},
42 {"label":"?", "x":16, "y":2.75},
43 {"label":"-", "x":17, "y":3.375},
44
45 {"label":"Ctrl", "x":0, "y":3.375},
46 {"label":"Z", "x":1, "y":2.75},
47 {"label":"X", "x":2, "y":2.25},
48 {"label":"C", "x":3, "y":2},
49 {"label":"V", "x":4, "y":2.25},
50 {"label":"B", "x":5, "y":2.5},
51
52 {"label":"Alt", "x":4, "y":3.25, "h":1.25},
53 {"label":"BS", "x":5, "y":3.5},
54 {"label":"Space", "x":-0.5, "y":3.5, "h":1.5},
55 {"label":"Num", "x":7, "y":3.25, "h":1.5},
56
57 {"label":"Cursol", "x":-3.0, "y":3.5, "h":1.5},
58 {"label":"Enter", "x":-2, "y":3.5, "h":1.5},
59 {"label":"Del", "x":12, "y":3.5},
60 {"label":"Win", "x":13, "y":3.25, "w":1.25}
61 ]
62 }
63 }
64} \ No newline at end of file
diff --git a/keyboards/silverbullet44/keymaps/FKML/keymap.c b/keyboards/silverbullet44/keymaps/FKML/keymap.c
new file mode 100644
index 000000000..5b6be1813
--- /dev/null
+++ b/keyboards/silverbullet44/keymaps/FKML/keymap.c
@@ -0,0 +1,144 @@
1/* Copyright 2020 FKML
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
18enum layer {
19 _QWERTY,
20 _LOWER,
21 _RAISE,
22 _ADJUST,
23};
24
25enum custom_keycodes {
26 QWERTY = SAFE_RANGE,
27 LOWER,
28 RAISE,
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33/* QWERTY
34 * ,-----------------------------------------. ,-----------------------------------------.
35 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | = |
36 * |------+------+------+------+------+------| |------+------+------+------+------+------|
37 * |Shift | A | S | D | F | G | | H | J | K | L | ; | ' |
38 * |------+------+------+------+------+------| |------+------+------+------+------+------|
39 * | CMD | Z | X | C | V | B |-------.-------. ,---------------| N | M | , | . | / | - |
40 * `-----------------------------------------/ / / \ \ \-----------------------------------------'
41 * | CAPS | LOWER| Space/ Bcsp / \ . \ Ent | RAISE|LEDOff|
42 * `----------------------------' '--------------------------'
43 */
44 [_QWERTY] = LAYOUT(
45 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
46 KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
47 KC_LCMD, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
48 KC_CLCK, LOWER, KC_SPC, KC_BSPC, KC_DOT, KC_ENT, RAISE, RGB_TOG
49 ),
50
51/* LOWER
52 * ,-----------------------------------------. ,-----------------------------------------.
53 * | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | |
54 * |------+------+------+------+------+------| |------+------+------+------+------+------|
55 * | | | | | | | | 1 | 2 | 3 | 4 | 5 | |
56 * |------+------+------+------+------+------+ +------+------+------+------+------+------|
57 * | | | | | | |-------.-------. ,---------------| 6 | 7 | 8 | 9 | 0 | |
58 * `-----------------------------------------/ / / \ \ \-----------------------------------------'
59 * | | | / / \ \ | | |
60 * `---------------------------' '--------------------------'
61 */
62 [_LOWER] = LAYOUT(
63 KC_GRV , KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
64 _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______,
65 _______, _______, _______, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
66 _______, _______, _______, _______, _______, _______, _______, _______
67 ),
68
69/* RAISE
70 * ,-----------------------------------------. ,-----------------------------------------.
71 * | | F1 | F2 | F3 | F4 | F5 | | | | | | - | + |
72 * |------+------+------+------+------+------| |------+------+------+------+------+------|
73 * | | F6 | F7 | F8 | F9 | F10 | | | | | | [ | ] |
74 * |------+------+------+------+------+------| |------+------+------+------+------+------|
75 * | | F11 | F12 | | | |-------.-------. ,---------------| | | Left | Up | Down |Right |
76 * `-----------------------------------------/ / / \ \ \-----------------------------------------'
77 * | | | / / \ \ | | |
78 * `---------------------------' '--------------------------'
79 */
80 [_RAISE] = LAYOUT(
81 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, KC_MINS, KC_PLUS,
82 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_LBRC, KC_RBRC,
83 _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
84 _______, _______, _______, _______, _______, _______, _______, _______
85 ),
86
87/* ADJUST
88 * ,-----------------------------------------. ,-----------------------------------------.
89 * | | | |FrqRst| | | | | | | | | |
90 * |------+------+------+------+------+------| |------+------+------+------+------+------|
91 * | | |Music |FrqUp |Sound | | | SPD+ | MOD+ | VAL+ | SAD+ | HUE+ | |
92 * |------+------+------+------+------+------| |------+------+------+------+------+------|
93 * | | |Scale |FrqDwn| | |-------.-------. ,---------------| SPD- | SPD- | VAL- | SAD- | HUE- | |
94 * `-----------------------------------------/ / / \ \ \-----------------------------------------'
95 * | | | / / \ \ | | |
96 * `---------------------------' '--------------------------'
97 */
98
99 [_ADJUST] = LAYOUT(
100 _______, XXXXXXX, XXXXXXX, CK_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
101 XXXXXXX, XXXXXXX, MU_TOG, CK_UP, AU_TOG, XXXXXXX, RGB_SPI, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, XXXXXXX,
102 XXXXXXX, XXXXXXX, MU_MOD, CK_DOWN, XXXXXXX, XXXXXXX, RGB_SPD, RGB_RMOD, RGB_VAD, RGB_SAD, RGB_HUD, XXXXXXX,
103 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
104 )
105};
106
107#ifdef RGBLIGHT_ENABLE
108//Following line allows macro to read current RGB settings
109extern rgblight_config_t rgblight_config;
110#endif
111
112int RGB_current_mode;
113
114bool process_record_user(uint16_t keycode, keyrecord_t *record) {
115 switch (keycode) {
116 case LOWER:
117 if (record->event.pressed) {
118 layer_on(_LOWER);
119 update_tri_layer(_LOWER, _RAISE, _ADJUST);
120 } else {
121 layer_off(_LOWER);
122 update_tri_layer(_LOWER, _RAISE, _ADJUST);
123 }
124 return false;
125 break;
126 case RAISE:
127 if (record->event.pressed) {
128 layer_on(_RAISE);
129 update_tri_layer(_LOWER, _RAISE, _ADJUST);
130 } else {
131 layer_off(_RAISE);
132 update_tri_layer(_LOWER, _RAISE, _ADJUST);
133 }
134 return false;
135 break;
136 }
137 return true;
138}
139
140void matrix_init_user(void) {
141#ifdef RGBLIGHT_ENABLE
142 RGB_current_mode = rgblight_config.mode;
143#endif
144}
diff --git a/keyboards/silverbullet44/keymaps/FKML/readme.md b/keyboards/silverbullet44/keymaps/FKML/readme.md
new file mode 100644
index 000000000..c9c4c133e
--- /dev/null
+++ b/keyboards/silverbullet44/keymaps/FKML/readme.md
@@ -0,0 +1,47 @@
1# The default keymap for silverbullet44
2
3```
4QWERTY
5,-----------------------------------------. ,-----------------------------------------.
6| Tab | Q | W | E | R | T | | Y | U | I | O | P | = |
7|------+------+------+------+------+------| |------+------+------+------+------+------|
8|Shift | A | S | D | F | G | | H | J | K | L | ; | ' |
9|------+------+------+------+------+------| |------+------+------+------+------+------|
10| CMD | Z | X | C | V | B |-------.-------. ,---------------| N | M | , | . | / | - |
11`-----------------------------------------/ / / \ \ \-----------------------------------------'
12 | CAPS | LOWER| Space/ Bcsp / \ . \ Ent | RAISE|LEDOff|
13 `---------------------------' '--------------------------'
14
15LOWER
16 ,-----------------------------------------. ,-----------------------------------------.
17 | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | |
18 |------+------+------+------+------+------| |------+------+------+------+------+------|
19 | | | | | | | | 1 | 2 | 3 | 4 | 5 | |
20 |------+------+------+------+------+------+ +------+------+------+------+------+------|
21 | | | | | | |-------.-------. ,---------------| 6 | 7 | 8 | 9 | 0 | |
22 `-----------------------------------------/ / / \ \ \-----------------------------------------'
23 | | | / / \ \ | | |
24 `---------------------------' '--------------------------'
25
26 RAISE
27 ,-----------------------------------------. ,-----------------------------------------.
28 | | F1 | F2 | F3 | F4 | F5 | | | | | | - | + |
29 |------+------+------+------+------+------| |------+------+------+------+------+------|
30 | | F6 | F7 | F8 | F9 | F10 | | | | | | [ | ] |
31 |------+------+------+------+------+------| |------+------+------+------+------+------|
32 | | F11 | F12 | | | |-------.-------. ,---------------| | | Left | Up | Down |Right |
33 `-----------------------------------------/ / / \ \ \-----------------------------------------'
34 | | | / / \ \ | | |
35 `---------------------------' '--------------------------'
36
37ADJUST
38,-----------------------------------------. ,-----------------------------------------.
39| | | |FrqRst| | | | | | | | | |
40|------+------+------+------+------+------| |------+------+------+------+------+------|
41| | |Music |FrqUp |Sound | | | SPD+ | MOD+ | VAL+ | SAD+ | HUE+ | |
42|------+------+------+------+------+------| |------+------+------+------+------+------|
43| | |Scale |FrqDwn| | |-------.-------. ,---------------| SPD- | SPD- | VAL- | SAD- | HUE- | |
44`-----------------------------------------/ / / \ \ \-----------------------------------------'
45 | | | / / \ \ | | |
46 `---------------------------' '--------------------------'
47``` \ No newline at end of file
diff --git a/keyboards/silverbullet44/keymaps/default/keymap.c b/keyboards/silverbullet44/keymaps/default/keymap.c
new file mode 100644
index 000000000..af8078608
--- /dev/null
+++ b/keyboards/silverbullet44/keymaps/default/keymap.c
@@ -0,0 +1,203 @@
1/* Copyright 2019 SwanMatch
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//};
23enum layer {
24 _QWERTY,
25 _CURSOL,
26 _CALC,
27 _ADJUST,
28};
29
30enum custom_keycodes {
31 RGBRST = SAFE_RANGE,
32 KC_00,
33 ALTAB
34};
35#define CALC LT(_CALC, KC_ESC)
36#define CUSL LT(_CURSOL, KC_TAB)
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39
40/* QWERTY
41 * ,-----------------------------------------. ,-----------------------------------------.
42 * |TabMOS| Q | W | E | R | T | | Y | U | I | O | P | = |
43 * |------+------+------+------+------+------| |------+------+------+------+------+------|
44 * |Shift | A | S | D | F | G | | H | J | K | L | ; | ' |
45 * |------+------+------+------+------+------| |------+------+------+------+------+------|
46 * | Ctrl | Z | X | C | V | B |-------.-------. ,---------------| N | M | , | . | / | - |
47 * `-----------------------------------------/ / / \ \ \----------------------------------------'
48 * | Alt | Bksp | / Shift / Calc / \ Cursol\ Ctrl | Del | App |
49 * | F5 | |/ Space / Esc / \ Tab \ Enter\ | F12 |
50 * `-----------------------------' '---------------------------'
51 */
52 [_QWERTY] = LAYOUT(
53 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
54 KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
55 KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
56 LALT_T(KC_F5), KC_BSPC, LSFT_T(KC_SPC), CALC, CUSL, LCTL_T(KC_ENT), KC_DEL, GUI_T(KC_F12)
57 ),
58
59/* Cursol
60 * ,-----------------------------------------. ,-----------------------------------------.
61 * | | F1 | F2 | PgUp | F4 | F5 | | F6 | F7 | Up | F9 | F10 |PrtSc |
62 * |------+------+------+------+------+------| |------+------+------+------+------+------|
63 * | | ~ | Home | PgDw | End | ( | | ) | Left | Down |Right | F8 | F11 |
64 * |------+------+------+------+------+------+ +------+------+------+------+------+------|
65 * | | ` | CLft | F3 | CRgt |SALTAB|-------.-------. ,---------------|ALTTAB| OSL | F8 | OSR | | |
66 * `-----------------------------------------/ / / \ \ \----------------------------------------'
67 * | | | / / / \ \ \ | | |
68 * | | |/ / / \ \ \ | | |
69 * `-----------------------------' '-----------------------------'
70 */
71 [_CURSOL] = LAYOUT(
72 RESET , KC_F1, KC_F2, KC_PGUP, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, RESET,
73 _______, KC_TILD, KC_HOME, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PIPE, KC_F11,
74 _______, KC_GRV, C(KC_LEFT), KC_F3, C(KC_RGHT), S(ALTAB), ALTAB, LCA(KC_LEFT), KC_F8, LCA(KC_RGHT), KC_BSLS, RGBRST,
75 _______, _______, C(KC_SPC), MO(_ADJUST), _______, _______, _______, _______
76 ),
77
78/* Calculater
79 * ,-----------------------------------------. ,-----------------------------------------.
80 * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
81 * |------+------+------+------+------+------| |------+------+------+------+------+------|
82 * | | @ | # | $ | % | [ | | ] | 4 | 5 | 6 | + | |
83 * |------+------+------+------+------+------| |------+------+------+------+------+------|
84 * | | ^ | & | * | ! | { |-------.-------. ,---------------| } | 1 | 2 | 3 | = | |
85 * `-----------------------------------------/ / / \ \ \----------------------------------------'
86 * | | | / / / \ \ \ | | |
87 * | | |/ / / \ \ 0 \ | 00 | . |
88 * `-----------------------------' '------------------------------'
89 */
90 [_CALC] = LAYOUT(
91 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
92 _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_PPLS, _______,
93 _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_EXLM, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, KC_PEQL, _______,
94 _______, _______, _______, _______, MO(_ADJUST), KC_0, KC_00, KC_PDOT
95 ),
96
97/* ADJUST
98 * ,-----------------------------------------. ,-----------------------------------------.
99 * | | | |FrqRst| | | | | | | | | |
100 * |------+------+------+------+------+------| |------+------+------+------+------+------|
101 * | | |Music |FrqUp |Sound | | | SPD+ | MOD+ | VAL+ | SAD+ | HUE+ | |
102 * |------+------+------+------+------+------| |------+------+------+------+------+------|
103 * | | |Scale |FrqDwn| | |-------.-------. ,---------------| SPD- | SPD- | VAL- | SAD- | HUE- | |
104 * `-----------------------------------------/ / / \ \ \----------------------------------------'
105 * | | | / / / \ \ \ | | |
106 * | | |/ / / \ \ \ | | |
107 * `-----------------------------' '------------------------------'
108*/
109
110 [_ADJUST] = LAYOUT(
111 _______, XXXXXXX, XXXXXXX, CK_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
112 XXXXXXX, XXXXXXX, MU_TOG, CK_UP, AU_TOG, XXXXXXX, RGB_SPI, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, XXXXXXX,
113 XXXXXXX, XXXXXXX, MU_MOD, CK_DOWN, XXXXXXX, XXXXXXX, RGB_SPD, RGB_RMOD, RGB_VAD, RGB_SAD, RGB_HUD, XXXXXXX,
114 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
115 )
116};
117
118#ifdef RGBLIGHT_ENABLE
119// Following line allows macro to read current RGB settings
120extern rgblight_config_t rgblight_config;
121#endif
122
123int RGB_current_mode;
124bool alt_pressed = false;
125
126bool process_record_user(uint16_t keycode, keyrecord_t *record) {
127 switch (keycode) {
128#ifdef RGBLIGHT_ENABLE
129 case RGBRST:
130 if (record->event.pressed) {
131 eeconfig_update_rgblight_default();
132 rgblight_enable();
133 RGB_current_mode = rgblight_config.mode;
134 }
135 break;
136#endif
137 case KC_SCLN:
138 if (keyboard_report->mods & MOD_BIT(KC_LSFT)) {
139 if (record->event.pressed) {
140 unregister_code(KC_LSFT);
141 tap_code16(keycode);
142 register_code(KC_LSFT);
143 }
144 /* } else if (keyboard_report->mods & MOD_BIT(KC_RSFT)) {
145 if (record->event.pressed) {
146 unregister_code(KC_RSFT);
147 tap_code16(keycode);
148 register_code(KC_RSFT);
149 } */
150 } else {
151 if (record->event.pressed) {
152 tap_code16(S(keycode));
153 }
154 }
155 return false;
156 break;
157 case KC_00:
158 if (record->event.pressed) {
159 tap_code(KC_0);
160 register_code(KC_0);
161 } else {
162 unregister_code(KC_0);
163 }
164 return false;
165 break;
166 case S(ALTAB):
167 case ALTAB:
168 if (record->event.pressed) {
169 if (!alt_pressed) {
170 alt_pressed = true;
171 register_code(KC_LALT);
172 }
173 if (keycode == S(ALTAB)) {
174 register_code(KC_LSFT);
175 }
176 register_code(KC_TAB);
177 } else {
178 unregister_code(KC_TAB);
179 if (keycode == S(ALTAB)) {
180 unregister_code(KC_LSFT);
181 }
182 }
183 return false;
184 break;
185 default:
186 if (alt_pressed) {
187 alt_pressed = false;
188 unregister_code(KC_LALT);
189 if (record->event.pressed) {
190 return false;
191 }
192 }
193 break;
194 }
195 return true;
196}
197
198void matrix_init_user(void) {
199#ifdef RGBLIGHT_ENABLE
200 RGB_current_mode = rgblight_config.mode;
201#endif
202}
203
diff --git a/keyboards/silverbullet44/keymaps/default/readme.md b/keyboards/silverbullet44/keymaps/default/readme.md
new file mode 100644
index 000000000..01f4e6d23
--- /dev/null
+++ b/keyboards/silverbullet44/keymaps/default/readme.md
@@ -0,0 +1,51 @@
1# The default keymap for silverbullet44
2
3```
4QWERTY
5,-----------------------------------------. ,-----------------------------------------.
6| Tab | Q | W | E | R | T | | Y | U | I | O | P | = |
7|------+------+------+------+------+------| |------+------+------+------+------+------|
8|LShift| A | S | D | F | G | | H | J | K | L | ; | ' |
9|------+------+------+------+------+------| |------+------+------+------+------+------|
10|LCTRL | Z | X | C | V | B |-------.-------. ,---------------| N | M | , | . | / | - |
11`-----------------------------------------/ / / \ \ \----------------------------------------'
12 | Alt | Bksp | / Shift / Calc / \ Cursol\ CTRL | Del | App |
13 | F5 | |/ Space / Esc / \ Tab \ Enter\ | F12 |
14 `-----------------------------' '---------------------------'
15
16Cursol
17,-----------------------------------------. ,-----------------------------------------.
18| | F1 | F2 | PgUp | F4 | F5 | | F6 | F7 | Up | F9 | F10 |PrtSc |
19|------+------+------+------+------+------| |------+------+------+------+------+------|
20| | ~ | Home | PgDw | End | ( | | ) | Left | Down |Right | F8 | F11 |
21|------+------+------+------+------+------+ +------+------+------+------+------+------|
22| | ` | CLft | F3 | CRgt |SALTAB|-------.-------. ,---------------|ALTTAB| OSL | F8 | OSR | | |
23`-----------------------------------------/ / / \ \ \----------------------------------------'
24 | | | / / / \ \ \ | | |
25 | | |/ / / \ \ \ | | |
26 `-----------------------------' '-----------------------------'
27
28Calculater
29,-----------------------------------------. ,-----------------------------------------.
30| | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
31|------+------+------+------+------+------| |------+------+------+------+------+------|
32| | @ | # | $ | % | [ | | ] | 4 | 5 | 6 | + | |
33|------+------+------+------+------+------| |------+------+------+------+------+------|
34| | ^ | & | * | ! | { |-------.-------. ,---------------| } | 1 | 2 | 3 | = | |
35`-----------------------------------------/ / / \ \ \----------------------------------------'
36 | | | / / / \ \ \ | | |
37 | | |/ / / \ \ 0 \ | 00 | . |
38 `-----------------------------' '------------------------------'
39
40ADJUST
41,-----------------------------------------. ,-----------------------------------------.
42| | | |FrqRst| | | | | | | | | |
43|------+------+------+------+------+------| |------+------+------+------+------+------|
44| | |Music |FrqUp |Sound | | | SPD+ | MOD+ | VAL+ | SAD+ | HUE+ | |
45|------+------+------+------+------+------| |------+------+------+------+------+------|
46| | |Scale |FrqDwn| | |-------.-------. ,---------------| SPD- | SPD- | VAL- | SAD- | HUE- | |
47`-----------------------------------------/ / / \ \ \----------------------------------------'
48 | | | / / / \ \ \ | | |
49 | | |/ / / \ \ \ | | |
50 `-----------------------------' '------------------------------'
51```
diff --git a/keyboards/silverbullet44/readme.md b/keyboards/silverbullet44/readme.md
new file mode 100644
index 000000000..3de46ee68
--- /dev/null
+++ b/keyboards/silverbullet44/readme.md
@@ -0,0 +1,18 @@
1# silverbullet44
2
3![silverbullet44](https://cdn-ak.f.st-hatena.com/images/fotolife/s/swan_match/20191017/20191017020317.jpg)
4
5A hard keyboard with a hard keystroke that uses aluminum PCB for the top plate.
6Upgradable from sandwich mount to top mount by using optional parts.
7
8* Keyboard Maintainer: [swan_match](https://github.com/swanmatch/)
9* Hardware Supported: The PCBs, ProMicro
10* Hardware Availability: [PCB & Case Data](https://github.com/swanmatch/silverbullet44), [Booth Shop](https://swanmatch.booth.pm/items/1561270)
11
12Make example for this keyboard (after setting up your build environment):
13
14 make silverbullet44:default
15
16See 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).
17
18[Build guide](https://swanmatch.github.io/silverbullet44/)
diff --git a/keyboards/silverbullet44/rules.mk b/keyboards/silverbullet44/rules.mk
new file mode 100644
index 000000000..39c5a0451
--- /dev/null
+++ b/keyboards/silverbullet44/rules.mk
@@ -0,0 +1,36 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = no # Audio control and System control
20CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
28#RGB_MATRIX_ENABLE = WS2812
29MIDI_ENABLE = no # MIDI support
30UNICODE_ENABLE = no # Unicode
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32AUDIO_ENABLE = yes # Audio output on port B6
33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
34HD44780_ENABLE = no # Enable support for HD44780 based LCDs
35SPLIT_KEYBOARD = yes
36LTO_ENABLE = yes
diff --git a/keyboards/silverbullet44/silverbullet44.c b/keyboards/silverbullet44/silverbullet44.c
new file mode 100644
index 000000000..7ae7a1269
--- /dev/null
+++ b/keyboards/silverbullet44/silverbullet44.c
@@ -0,0 +1,45 @@
1/* Copyright 2019 SwanMatch
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 "silverbullet44.h"
17
18#ifdef RGB_MATRIX_ENABLE
19led_config_t g_led_config = { {
20 // Key Matrix to LED Index
21 { 18, 7, 6, 0, 1, 2},
22 { 19, 17, 8, 5, 4, 3},
23 { 21, 20, 16, 9, 10, 11},
24 { NO_LED, NO_LED, 15, 14, 13, 12},
25}, {
26 { 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 },
27 { 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 },
28 { 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 },
29 { 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 },
30 { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 },
31 { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 },
32 { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 },
33 { 16, 24 }, { 16, 7 }, { 0, 7 }
34}, {
35 2, 2, 2, 2, 2, 2, 1,
36 4, 4, 4, 4, 4, 4, 1,
37 1, 4, 4, 4, 4, 4, 4,
38 4, 4, 4, 1, 1, 1, 2,
39 2, 2, 2, 2, 2, 1, 4,
40 4, 4, 4, 4, 4, 1, 1,
41 4, 4, 4, 4, 4, 4, 4,
42 4, 4, 1
43} };
44
45#endif
diff --git a/keyboards/silverbullet44/silverbullet44.h b/keyboards/silverbullet44/silverbullet44.h
new file mode 100644
index 000000000..7746a554c
--- /dev/null
+++ b/keyboards/silverbullet44/silverbullet44.h
@@ -0,0 +1,43 @@
1/* Copyright 2019 SwanMatch
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#define LAYOUT( \
29 L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \
30 L10, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, R10, \
31 L20, L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, R20, \
32 L32, L33, L34, L35, R35, R34, R33, R32 \
33) \
34{ \
35 { L00, L01, L02, L03, L04, L05 }, \
36 { L10, L11, L12, L13, L14, L15 }, \
37 { L20, L21, L22, L23, L24, L25 }, \
38 { KC_NO, KC_NO, L32, L33, L34, L35 }, \
39 { R00, R01, R02, R03, R04, R05 }, \
40 { R10, R11, R12, R13, R14, R15 }, \
41 { R20, R21, R22, R23, R24, R25 }, \
42 { KC_NO, KC_NO, R32, R33, R34, R35 } \
43}