rask's Satan and BananaSplit60 (#1654)
	
		
	
				
					
				
			* Add rask's Satan layout * Add rask's Satan layout * Add rask's BananaSplit60 layout * Add rask's BS60 readme * Fix rask's BS60 readme image * Fix rask's BS60 readme image againpull/1663/head
							parent
							
								
									a4316ba486
								
							
						
					
					
						commit
						da33dfec55
					
				@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					# rask's BananaSplit60
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Notes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Layers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Base layer is a regular HHKBish ANSI layer. Toggling the
 | 
				
			||||||
 | 
					alternate base layer (Fn3) makes it simpler to play games with
 | 
				
			||||||
 | 
					the left space being set to be an actual Space.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Layer 1 (Fn1) contains usual 60% functionalities such as the
 | 
				
			||||||
 | 
					F-row, while Layer 2 (Fn2) contains media controls.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The final layer (Fn4) is a special layer that acts as a lock
 | 
				
			||||||
 | 
					layer, meaning the keyboard is locked while the layer
 | 
				
			||||||
 | 
					is active. This firmware assumes a lock switch (read below).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Lock switches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.25u between the split space halves and the 1u key right
 | 
				
			||||||
 | 
					left of LeftArrow are to be operated with a lock switch.
 | 
				
			||||||
 | 
					If you don't have lock switches you should swap the `MO()`
 | 
				
			||||||
 | 
					calls with `TG()` calls to make the layer toggles work
 | 
				
			||||||
 | 
					with regular non/locking switches.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## How to make and flash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(These instructions are for Linux-based operating systems
 | 
				
			||||||
 | 
					with `dfu-programmer` available.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`cd` into the `bananasplit` keyboard's directory and run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make rask
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					which should result in a file called `bananasplit_rask.hex` appearing
 | 
				
			||||||
 | 
					in your QMK root directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Now plug in your BananaSplit60 keyboard via USB. Verify
 | 
				
			||||||
 | 
					with `lsusb` that it appears. At least my PCB did not have
 | 
				
			||||||
 | 
					anything preflashed so you should see `atmega32u4` or similar
 | 
				
			||||||
 | 
					in the `lsusb` output.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Now you can flash the firmware by
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $ sudo dfu-programmer atmega32u4 erase
 | 
				
			||||||
 | 
					    $ cd /qmk_firmware/root/directory
 | 
				
			||||||
 | 
					    $ sudo dfu-programmer atmega32u4 flash bananasplit_rask.hex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_If_ you happen to have some other `atmega32u4` based device
 | 
				
			||||||
 | 
					I suggest you plug it out before flashing your BS60 just to
 | 
				
			||||||
 | 
					prevent accidentally flashing your old device.
 | 
				
			||||||
@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					#include "bananasplit.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// rask's BananaSplit60 layout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define L_BASE      0
 | 
				
			||||||
 | 
					#define L_BASE_ALT  1
 | 
				
			||||||
 | 
					#define L_ONE       2
 | 
				
			||||||
 | 
					#define L_TWO       3
 | 
				
			||||||
 | 
					#define L_LOCK      4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ______  KC_TRNS
 | 
				
			||||||
 | 
					#define XXXXXX  KC_NO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// L_BASE
 | 
				
			||||||
 | 
					// Initial layer with default keymap
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// L_BASE_ALT
 | 
				
			||||||
 | 
					// Layer with some standardisation e.g. make
 | 
				
			||||||
 | 
					// space key "full" to make gaming less of a
 | 
				
			||||||
 | 
					// chore
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// L_ONE
 | 
				
			||||||
 | 
					// General things like F-row and navigation
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// L_TWO
 | 
				
			||||||
 | 
					// Media controls and more exotic keybinds
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// L_LOCK
 | 
				
			||||||
 | 
					// Lock the keyboard, release to unlock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					    [L_BASE] = KEYMAP_HHKB_ARROW( \
 | 
				
			||||||
 | 
					        KC_GRV,     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_BSLS,    KC_DEL,     \
 | 
				
			||||||
 | 
					        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,    \
 | 
				
			||||||
 | 
					        MO(L_ONE),  KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,       KC_L,       KC_SCLN,    KC_QUOT,                            KC_ENT,     \
 | 
				
			||||||
 | 
					        KC_LSFT,            KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,       KC_COMM,    KC_DOT,     MT(MOD_RSFT, KC_SLSH),  KC_UP,      MO(L_TWO),  \
 | 
				
			||||||
 | 
					        KC_LCTRL,   KC_LGUI,    KC_LALT,    KC_BSPC,        MO(L_BASE_ALT), KC_SPACE,   KC_RALT,    MO(L_LOCK),             KC_LEFT,    KC_DOWN,    KC_RIGHT    \
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [L_BASE_ALT] = KEYMAP_HHKB_ARROW( \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,     ______,     ______,     ______,     \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,     ______,                 ______,     \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,                             ______,     \
 | 
				
			||||||
 | 
					        ______,             ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,                 ______,     ______,     \
 | 
				
			||||||
 | 
					        ______,     ______,     ______,     KC_SPACE,       ______,         ______,     ______,     ______,                 ______,     ______,     ______      \
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [L_ONE] = KEYMAP_HHKB_ARROW( \
 | 
				
			||||||
 | 
					        KC_ESC,     KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,      KC_F9,      KC_F10,     KC_F11,     KC_F12,     KC_PSCR,    KC_INS,     \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,     ______,                 ______,     \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,                             ______,     \
 | 
				
			||||||
 | 
					        ______,             ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,                 KC_PGUP,    ______,     \
 | 
				
			||||||
 | 
					        ______,     ______,     ______,     ______,         ______,         ______,     ______,     ______,                 KC_HOME,    KC_PGDN,    KC_END      \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [L_TWO] = KEYMAP_HHKB_ARROW( \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     ______,     ______,     ______,     ______,     ______,     ______,     \
 | 
				
			||||||
 | 
					        ______,     ______, ______, ______, ______, ______, ______, ______, ______,     KC_MPRV,    KC_MPLY,    KC_MNXT,    ______,                 ______,     \
 | 
				
			||||||
 | 
					        KC_CAPS,    ______, ______, ______, ______, ______, ______, ______, ______,     KC_VOLD,    KC_VOLU,    KC_MUTE,                            ______,     \
 | 
				
			||||||
 | 
					        ______,             ______, ______, ______, ______, ______, ______, ______,     KC_MSTP,    ______,     ______,                 ______,     ______,     \
 | 
				
			||||||
 | 
					        ______,     KC_APP,     ______,     ______,         ______,         ______,     ______,     ______,                 ______,     ______,     ______      \
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [L_LOCK] = KEYMAP_HHKB_ARROW( \
 | 
				
			||||||
 | 
					        XXXXXX,     XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,     \
 | 
				
			||||||
 | 
					        XXXXXX,     XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,                 XXXXXX,     \
 | 
				
			||||||
 | 
					        XXXXXX,     XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,                             XXXXXX,     \
 | 
				
			||||||
 | 
					        XXXXXX,             XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,                 XXXXXX,     XXXXXX,     \
 | 
				
			||||||
 | 
					        XXXXXX,     XXXXXX,     XXXXXX,     XXXXXX,         XXXXXX,         XXXXXX,     XXXXXX,     ______,                 XXXXXX,     XXXXXX,     XXXXXX      \
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					#include "satan.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _BASE 0
 | 
				
			||||||
 | 
					#define _FNO 1
 | 
				
			||||||
 | 
					#define _FNT 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ________ KC_TRNS
 | 
				
			||||||
 | 
					#define XXXXXXXX KC_NO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Base layer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|  `  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |  -  |  =  |  \  | Del |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| Tab    |  Q  |  W  |  E  |  R  |  T  |  Y  |  U  |  I  |  O  |  P  |  [  |  ]  |  Bksp  |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| Fn1      |  A  |  S  |  D  |  F  |  G  |  H  |  J  |  K  |  L  |  ;  |  '  |  Enter     |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| Shift       |  Z  |  X  |  C  |  V  |  B  |  N  |  M  |  ,  |  .  |  /  |  Up     | Fn2 |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| Ctrl  | Win   | Alt   |              Space              | AltGr | Left  | Down  | Right |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					[_BASE] = KEYMAP_HHKB(
 | 
				
			||||||
 | 
					    KC_GRV,   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_BSLS,  KC_DEL, \
 | 
				
			||||||
 | 
					    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, \
 | 
				
			||||||
 | 
					    MO(_FNO), KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,  KC_ENT, \
 | 
				
			||||||
 | 
					    KC_LSFT,  KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,  KC_UP,    MO(_FNT), \
 | 
				
			||||||
 | 
					    KC_LCTL,  KC_LGUI,  KC_LALT,                      KC_SPC,                                 KC_RALT,  KC_LEFT,  KC_DOWN,  KC_RGHT),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Fn1 layer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| Esc | F1  | F2  | F3  | F4  | F5  | F6  | F7  | F8  | F9  | F10 | F11 | F12 | Prsc| Ins |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|        |     |     |     |     |     |     |     |     |     |     |     |     |        |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| NONE     |     |     |     |     |     |     |     |     |     |     |     |            |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|             |     |     |     |     |     |     |     |     |     |     |  PgUp   |     |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|       |       |       |                                 |       | Home  | PgDn  | End   |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					[_FNO] = KEYMAP_HHKB(
 | 
				
			||||||
 | 
					    KC_ESC,   KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_PSCR,  KC_INS, \
 | 
				
			||||||
 | 
					    ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
 | 
				
			||||||
 | 
					    ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
 | 
				
			||||||
 | 
					    ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_PGUP,  ________, \
 | 
				
			||||||
 | 
					    ________, ________, ________,                     ________,                               ________, KC_HOME,  KC_PGDN,  KC_END),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Fn2 layer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TODO: macro buttons
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|     |     |     |     |     |     |     |     |     |     |     |     |     |     |     |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|        |     |     |     |     |     |     |     |     | Prev| Play| Next|     |        |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| CapsLk   |     |     |     |     |     |     |     |     | Vol-| Vol+| Mute|            |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					|             |     |     |     |     |     |     |     |     | Stop|     |         | NONE|
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					| Reset | Menu  |       |                                 |  M1   |  M2   |  M3   |  M4   |
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					[_FNT] = KEYMAP_HHKB(
 | 
				
			||||||
 | 
					    ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
 | 
				
			||||||
 | 
					    ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MPRV,  KC_MPLY,  KC_MNXT,  ________, ________, \
 | 
				
			||||||
 | 
					    KC_CAPS,  ________, ________, ________, ________, ________, ________, ________, ________, KC_VOLD,  KC_VOLU,  KC_MUTE,  ________, \
 | 
				
			||||||
 | 
					    ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MSTP,  ________, ________, ________, \
 | 
				
			||||||
 | 
					    RESET,    KC_MENU,  ________,                     ________,                               ________, ________, ________, ________),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue