forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rask's Satan and BananaSplit60 (qmk#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 again
- Loading branch information
1 parent
a4316ba
commit da33dfe
Showing
3 changed files
with
204 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# rask's BananaSplit60 | ||
|
||
![BS60 layout](http://i.imgur.com/Q7so1py.png) | ||
|
||
## 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 \ | ||
), | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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, ________, ________, ________, ________, ________, ________), | ||
}; |