Keyboard: Added support for the Fractal keyboard (#3457)
* Added support for the Fractal keyboard * Try to fix the issue * Add support for the Fractal keyboard. * Fix errors with files
This commit is contained in:
		
							parent
							
								
									1147fc24ad
								
							
						
					
					
						commit
						3fc5a05d66
					
				
							
								
								
									
										58
									
								
								keyboards/fractal/config.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										58
									
								
								keyboards/fractal/config.h
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,58 @@ | |||||||
|  | #ifndef CONFIG_H | ||||||
|  | #define CONFIG_H | ||||||
|  | 
 | ||||||
|  | #include "config_common.h" | ||||||
|  | 
 | ||||||
|  | /* USB Device descriptor parameter */ | ||||||
|  | #define VENDOR_ID       0xFEED | ||||||
|  | #define PRODUCT_ID      0x6060 | ||||||
|  | #define DEVICE_VER      0x0001 | ||||||
|  | #define MANUFACTURER    KeyPCB | ||||||
|  | #define PRODUCT         Fractal | ||||||
|  | #define DESCRIPTION     Keyboard | ||||||
|  | 
 | ||||||
|  | /* key matrix size */ | ||||||
|  | #define MATRIX_ROWS 5 | ||||||
|  | #define MATRIX_COLS 12 | ||||||
|  | 
 | ||||||
|  | /* key matrix pins */ | ||||||
|  | #define MATRIX_ROW_PINS { B1, F7, F6, F5, F4 } | ||||||
|  | #define MATRIX_COL_PINS { B3, B2, B6, B5, B4, E6, D7, C6, D4, D0, D1, D2 } | ||||||
|  | #define UNUSED_PINS | ||||||
|  | 
 | ||||||
|  | /* COL2ROW or ROW2COL */ | ||||||
|  | #define DIODE_DIRECTION COL2ROW | ||||||
|  | 
 | ||||||
|  | /* number of backlight levels */ | ||||||
|  | 
 | ||||||
|  | #ifdef BACKLIGHT_PIN | ||||||
|  | #define BACKLIGHT_LEVELS 0 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /* Set 0 if debouncing isn't needed */ | ||||||
|  | #define DEBOUNCING_DELAY 5 | ||||||
|  | 
 | ||||||
|  | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||||||
|  | #define LOCKING_SUPPORT_ENABLE | ||||||
|  | 
 | ||||||
|  | /* Locking resynchronize hack */ | ||||||
|  | #define LOCKING_RESYNC_ENABLE | ||||||
|  | 
 | ||||||
|  | /* key combination for command */ | ||||||
|  | #define IS_COMMAND() ( \ | ||||||
|  |     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | /* prevent stuck modifiers */ | ||||||
|  | #define PREVENT_STUCK_MODIFIERS | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | #ifdef RGB_DI_PIN | ||||||
|  | #define RGBLIGHT_ANIMATIONS | ||||||
|  | #define RGBLED_NUM 0 | ||||||
|  | #define RGBLIGHT_HUE_STEP 8 | ||||||
|  | #define RGBLIGHT_SAT_STEP 8 | ||||||
|  | #define RGBLIGHT_VAL_STEP 8 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
							
								
								
									
										1
									
								
								keyboards/fractal/fractal.c
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								keyboards/fractal/fractal.c
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | #include "fractal.h" | ||||||
							
								
								
									
										36
									
								
								keyboards/fractal/fractal.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								keyboards/fractal/fractal.h
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | #ifndef FRACTAL_H | ||||||
|  | #define FRACTAL_H | ||||||
|  | 
 | ||||||
|  | #include "quantum.h" | ||||||
|  | 
 | ||||||
|  | #define LAYOUT_ortho_5x12( \ | ||||||
|  |   K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ | ||||||
|  |   K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ | ||||||
|  |   K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ | ||||||
|  |   K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, \ | ||||||
|  |   K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411  \ | ||||||
|  | ) { \ | ||||||
|  |   { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011 }, \ | ||||||
|  |   { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111 }, \ | ||||||
|  |   { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211 }, \ | ||||||
|  |   { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311 }, \ | ||||||
|  |   { K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411 }  \ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #define LAYOUT_preonic_mit( \ | ||||||
|  |   K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ | ||||||
|  |   K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ | ||||||
|  |   K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ | ||||||
|  |   K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, \ | ||||||
|  |   K400, K401, K402, K403, K404,    K406,    K407, K408, K409, K410, K411  \ | ||||||
|  | ) { \ | ||||||
|  |   { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011 }, \ | ||||||
|  |   { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111 }, \ | ||||||
|  |   { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211 }, \ | ||||||
|  |   { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311 }, \ | ||||||
|  |   { K400,  K401,  K402,  K403,  K404,  KC_NO, K406,  K407,  K408,  K409,  K410,  K411 }  \ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #define KEYMAP LAYOUT_preonic_mit | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
							
								
								
									
										15
									
								
								keyboards/fractal/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								keyboards/fractal/info.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | { | ||||||
|  |   "keyboard_name": "Fractal", | ||||||
|  |   "url": "https://keypcb.bigcartel.com/product/fractal-keyboard-group-buy", | ||||||
|  |   "maintainer": "qmk", | ||||||
|  |   "width": 12, | ||||||
|  |   "height": 5, | ||||||
|  |   "layouts": { | ||||||
|  |     "LAYOUT_ortho_5x12": { | ||||||
|  |       "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}] | ||||||
|  |       }, | ||||||
|  |       "LAYOUT_preonic_mit": { | ||||||
|  |         "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4, "w":2}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}] | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								keyboards/fractal/keymaps/default/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/fractal/keymaps/default/config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #ifdef AUDIO_ENABLE | ||||||
|  |     #define STARTUP_SONG SONG(PLANCK_SOUND) | ||||||
|  |     // #define STARTUP_SONG SONG(NO_SOUND)
 | ||||||
|  | 
 | ||||||
|  |     #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ | ||||||
|  |                                   SONG(COLEMAK_SOUND), \ | ||||||
|  |                                   SONG(DVORAK_SOUND) \ | ||||||
|  |                                 } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #define MUSIC_MASK (keycode != KC_NO) | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * MIDI options | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | /* Prevent use of disabled MIDI features in the keymap */ | ||||||
|  | //#define MIDI_ENABLE_STRICT 1
 | ||||||
|  | 
 | ||||||
|  | /* enable basic MIDI features:
 | ||||||
|  |    - MIDI notes can be sent when in Music mode is on | ||||||
|  | */ | ||||||
|  |                                  | ||||||
|  | #define MIDI_BASIC | ||||||
|  | 
 | ||||||
|  | /* enable advanced MIDI features:
 | ||||||
|  |    - MIDI notes can be added to the keymap | ||||||
|  |    - Octave shift and transpose | ||||||
|  |    - Virtual sustain, portamento, and modulation wheel | ||||||
|  |    - etc. | ||||||
|  | */ | ||||||
|  | //#define MIDI_ADVANCED
 | ||||||
|  | 
 | ||||||
|  | /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | ||||||
|  | //#define MIDI_TONE_KEYCODE_OCTAVES 2
 | ||||||
|  | 
 | ||||||
							
								
								
									
										225
									
								
								keyboards/fractal/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										225
									
								
								keyboards/fractal/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,225 @@ | |||||||
|  | /* Copyright 2015-2017 Jack Humbert
 | ||||||
|  |  * Modified by KeyPCB for the Fractal keyboard | ||||||
|  |  * Backlight isn't on the Fractal, so I've removed the keycode from the keymaps | ||||||
|  |  *  | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include QMK_KEYBOARD_H | ||||||
|  | 
 | ||||||
|  | enum preonic_layers { | ||||||
|  |   _QWERTY, | ||||||
|  |   _COLEMAK, | ||||||
|  |   _DVORAK, | ||||||
|  |   _LOWER, | ||||||
|  |   _RAISE, | ||||||
|  |   _ADJUST | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | enum preonic_keycodes { | ||||||
|  |   QWERTY = SAFE_RANGE, | ||||||
|  |   COLEMAK, | ||||||
|  |   DVORAK, | ||||||
|  |   LOWER, | ||||||
|  |   RAISE, | ||||||
|  |   BACKLIT | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  | 
 | ||||||
|  | /* Qwerty
 | ||||||
|  |  * ,-----------------------------------------------------------------------------------. | ||||||
|  |  * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Del  | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   | | ||||||
|  |  * |------+------+------+------+------+------|------+------+------+------+------+------| | ||||||
|  |  * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Enter | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * | Ctrl | Alt  | GUI  |Lower | Bksp |    Space    |Raise | Left | Down |  Up  |Right | | ||||||
|  |  * `-----------------------------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | [_QWERTY] = LAYOUT_ortho_5x12( \ | ||||||
|  |   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \ | ||||||
|  |   KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_DEL,  \ | ||||||
|  |   KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, \ | ||||||
|  |   KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,  \ | ||||||
|  |   KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_BSPC, KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT  \ | ||||||
|  | ), | ||||||
|  | 
 | ||||||
|  | /* Colemak
 | ||||||
|  |  * ,-----------------------------------------------------------------------------------. | ||||||
|  |  * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * | Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  | Del  | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * | Esc  |   A  |   R  |   S  |   T  |   D  |   H  |   N  |   E  |   I  |   O  |  "   | | ||||||
|  |  * |------+------+------+------+------+------|------+------+------+------+------+------| | ||||||
|  |  * | Shift|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |   /  |Enter | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right | | ||||||
|  |  * `-----------------------------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | [_COLEMAK] = LAYOUT_ortho_5x12( \ | ||||||
|  |   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \ | ||||||
|  |   KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_DEL,  \ | ||||||
|  |   KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT, \ | ||||||
|  |   KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,  \ | ||||||
|  |   KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_BSPC, KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT  \ | ||||||
|  | ), | ||||||
|  | 
 | ||||||
|  | /* Dvorak
 | ||||||
|  |  * ,-----------------------------------------------------------------------------------. | ||||||
|  |  * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * | Tab  |   "  |   ,  |   .  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  | Del  | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * | Esc  |   A  |   O  |   E  |   U  |   I  |   D  |   H  |   T  |   N  |   S  |  /   | | ||||||
|  |  * |------+------+------+------+------+------|------+------+------+------+------+------| | ||||||
|  |  * | Shift|   ;  |   Q  |   J  |   K  |   X  |   B  |   M  |   W  |   V  |   Z  |Enter | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right | | ||||||
|  |  * `-----------------------------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | [_DVORAK] = LAYOUT_ortho_5x12( \ | ||||||
|  |   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \ | ||||||
|  |   KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_DEL,  \ | ||||||
|  |   KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH, \ | ||||||
|  |   KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT,  \ | ||||||
|  |     KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_BSPC, KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT  \ | ||||||
|  | ), | ||||||
|  | 
 | ||||||
|  | /* Lower
 | ||||||
|  |  * ,-----------------------------------------------------------------------------------. | ||||||
|  |  * |   ~  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  | Bksp | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * |   ~  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  | Del  | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   _  |   +  |   {  |   }  |  |   | | ||||||
|  |  * |------+------+------+------+------+------|------+------+------+------+------+------| | ||||||
|  |  * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO ~ |ISO | |      |      |      | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play | | ||||||
|  |  * `-----------------------------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | [_LOWER] = LAYOUT_ortho_5x12( \ | ||||||
|  |   KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ | ||||||
|  |   KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,  \ | ||||||
|  |   KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ | ||||||
|  |   _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ | ||||||
|  |   _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ | ||||||
|  | ), | ||||||
|  | 
 | ||||||
|  | /* Raise
 | ||||||
|  |  * ,-----------------------------------------------------------------------------------. | ||||||
|  |  * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Del  | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   -  |   =  |   [  |   ]  |  \   | | ||||||
|  |  * |------+------+------+------+------+------|------+------+------+------+------+------| | ||||||
|  |  * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO # |ISO / |      |      |      | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play | | ||||||
|  |  * `-----------------------------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | [_RAISE] = LAYOUT_ortho_5x12( \ | ||||||
|  |   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \ | ||||||
|  |   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL,  \ | ||||||
|  |   KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, \ | ||||||
|  |   _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ | ||||||
|  |   _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY  \ | ||||||
|  | ), | ||||||
|  | 
 | ||||||
|  | /* Adjust (Lower + Raise)
 | ||||||
|  |  * ,-----------------------------------------------------------------------------------. | ||||||
|  |  * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * |      | Reset|      |      |      |      |      |      |      |      |      |  Del | | ||||||
|  |  * |------+------+------+------+------+-------------+------+------+------+------+------| | ||||||
|  |  * |      |      |      |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|      |      | | ||||||
|  |  * |------+------+------+------+------+------|------+------+------+------+------+------| | ||||||
|  |  * |      |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff|      |      |      |      |      | | ||||||
|  |  * |------+------+------+------+------+------+------+------+------+------+------+------| | ||||||
|  |  * |      |      |      |      |      |             |      |      |      |      |      | | ||||||
|  |  * `-----------------------------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | [_ADJUST] = LAYOUT_ortho_5x12( \ | ||||||
|  |   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  \ | ||||||
|  |   _______, RESET,   DEBUG,   _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL,  \ | ||||||
|  |   _______, _______, MU_MOD,  AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______, \ | ||||||
|  |   _______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  _______, _______, _______, _______, _______, \ | ||||||
|  |   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  \ | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||||
|  |   switch (keycode) { | ||||||
|  |         case QWERTY: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             set_single_persistent_default_layer(_QWERTY); | ||||||
|  |           } | ||||||
|  |           return false; | ||||||
|  |           break; | ||||||
|  |         case COLEMAK: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             set_single_persistent_default_layer(_COLEMAK); | ||||||
|  |           } | ||||||
|  |           return false; | ||||||
|  |           break; | ||||||
|  |         case DVORAK: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             set_single_persistent_default_layer(_DVORAK); | ||||||
|  |           } | ||||||
|  |           return false; | ||||||
|  |           break; | ||||||
|  |         case LOWER: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             layer_on(_LOWER); | ||||||
|  |             update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||||||
|  |           } else { | ||||||
|  |             layer_off(_LOWER); | ||||||
|  |             update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||||||
|  |           } | ||||||
|  |           return false; | ||||||
|  |           break; | ||||||
|  |         case RAISE: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             layer_on(_RAISE); | ||||||
|  |             update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||||||
|  |           } else { | ||||||
|  |             layer_off(_RAISE); | ||||||
|  |             update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||||||
|  |           } | ||||||
|  |           return false; | ||||||
|  |           break; | ||||||
|  |         case BACKLIT: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             register_code(KC_RSFT); | ||||||
|  |             #ifdef BACKLIGHT_ENABLE | ||||||
|  |               backlight_step(); | ||||||
|  |             #endif | ||||||
|  |             PORTE &= ~(1<<6); | ||||||
|  |           } else { | ||||||
|  |             unregister_code(KC_RSFT); | ||||||
|  |             PORTE |= (1<<6); | ||||||
|  |           } | ||||||
|  |           return false; | ||||||
|  |           break; | ||||||
|  |       } | ||||||
|  |     return true; | ||||||
|  | }; | ||||||
							
								
								
									
										2
									
								
								keyboards/fractal/keymaps/default/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/fractal/keymaps/default/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | # The Default Fractal Layout | ||||||
|  | 
 | ||||||
							
								
								
									
										14
									
								
								keyboards/fractal/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								keyboards/fractal/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | Fractal | ||||||
|  | === | ||||||
|  | 
 | ||||||
|  | The Fractal keyboard has a layout inspired by keyboards such as Preonic and JJ50. It aims to deliver a good quality but affordable keyboard. It supports Alps and MX switches and uses a Pro Micro as the controller. | ||||||
|  | 
 | ||||||
|  | Keyboard Maintainer: The QMK Community   | ||||||
|  | Hardware Supported: Fractal   | ||||||
|  | Hardware Availability: [KeyPCB](https://keypcb.bigcartel.com/product/fractal-keyboard-group-buy)   | ||||||
|  | 
 | ||||||
|  | Make example for this keyboard (after setting up your build environment): | ||||||
|  | 
 | ||||||
|  |     make fractal:default | ||||||
|  | 
 | ||||||
|  | See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. | ||||||
							
								
								
									
										61
									
								
								keyboards/fractal/rules.mk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								keyboards/fractal/rules.mk
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,61 @@ | |||||||
|  | # MCU name
 | ||||||
|  | MCU = atmega32u4 | ||||||
|  | 
 | ||||||
|  | # Processor frequency.
 | ||||||
|  | #     This will define a symbol, F_CPU, in all source code files equal to the
 | ||||||
|  | #     processor frequency in Hz. You can then use this symbol in your source code to
 | ||||||
|  | #     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
 | ||||||
|  | #     automatically to create a 32-bit value in your source code.
 | ||||||
|  | #
 | ||||||
|  | #     This will be an integer division of F_USB below, as it is sourced by
 | ||||||
|  | #     F_USB after it has run through any CPU prescalers. Note that this value
 | ||||||
|  | #     does not *change* the processor frequency - it should merely be updated to
 | ||||||
|  | #     reflect the processor speed set externally so that the code can use accurate
 | ||||||
|  | #     software delays.
 | ||||||
|  | F_CPU = 16000000 | ||||||
|  | 
 | ||||||
|  | #
 | ||||||
|  | # LUFA specific
 | ||||||
|  | #
 | ||||||
|  | # Target architecture (see library "Board Types" documentation).
 | ||||||
|  | ARCH = AVR8 | ||||||
|  | 
 | ||||||
|  | # Input clock frequency.
 | ||||||
|  | #     This will define a symbol, F_USB, in all source code files equal to the
 | ||||||
|  | #     input clock frequency (before any prescaling is performed) in Hz. This value may
 | ||||||
|  | #     differ from F_CPU if prescaling is used on the latter, and is required as the
 | ||||||
|  | #     raw input clock is fed directly to the PLL sections of the AVR for high speed
 | ||||||
|  | #     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
 | ||||||
|  | #     at the end, this will be done automatically to create a 32-bit value in your
 | ||||||
|  | #     source code.
 | ||||||
|  | #
 | ||||||
|  | #     If no clock division is performed on the input clock inside the AVR (via the
 | ||||||
|  | #     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
 | ||||||
|  | F_USB = $(F_CPU) | ||||||
|  | 
 | ||||||
|  | # Interrupt driven control endpoint task(+60)
 | ||||||
|  | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Boot Section Size in *bytes*
 | ||||||
|  | BOOTLOADER = caterina | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Build Options
 | ||||||
|  | #   change yes to no to disable
 | ||||||
|  | #
 | ||||||
|  | BOOTMAGIC_ENABLE = yes      # Virtual DIP switch configuration(+1000) | ||||||
|  | MOUSEKEY_ENABLE = yes       # Mouse keys(+4700) | ||||||
|  | EXTRAKEY_ENABLE = yes       # Audio control and System control(+450) | ||||||
|  | CONSOLE_ENABLE = no        # Console for debug(+400) | ||||||
|  | COMMAND_ENABLE = no        # Commands for debug and configuration | ||||||
|  | SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend | ||||||
|  | NKRO_ENABLE = yes           # USB Nkey Rollover | ||||||
|  | BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality on B7 by default | ||||||
|  | MIDI_ENABLE = no            # MIDI controls | ||||||
|  | UNICODE_ENABLE = no         # Unicode | ||||||
|  | BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID | ||||||
|  | AUDIO_ENABLE = no           # Audio output on port C6 | ||||||
|  | 
 | ||||||
|  | LAYOUTS = preonic_mit ortho_5x12 | ||||||
|  | LAYOUTS_HAS_RGB = no | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user