Compare commits

...

33 Commits

Author SHA1 Message Date
Kenneth Aloysius
d3c6da7aff Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704)
* Add M6-A keymap

* Update XD60 keymap

* Update XD60 keymap readme

* Update JJ40 and Let's Split keymaps

* Add readme for M6-A

* Fix typo, update JJ40 README

* Update jj40 readme

* Cleanup jj40 keymap

* Revert Let's Split QWERTY layer to default before #2010

* Update numpad layers

* Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer

* Keep ASCII art consistent with keymap
2018-04-19 09:28:55 -07:00
Cole Markham
47f55f417b Implement magic 8-ball mode for big series switch (#2763) 2018-04-19 09:09:33 -07:00
MechMerlin
eaa0b24335 ScrabblePad Support (#2760)
* Initial commit for donutcat's 15x15 monstrosity

* modify readmes to be more descriptive

* Add info.json to support QMK Configurator

* Update copyright and change REPLACE_WITH_YOUR_NAME to MechMerlin

* update naming convention for ScrabblePad

* remove .vscode directory as per Jack's comments
2018-04-19 11:31:50 -04:00
Christian Richter
75360ebdae Add gh60 chaser Layout (#2757) 2018-04-19 07:20:03 -07:00
Harry Mills
8ec2269519 Add magic backspace to my layout (#2758)
* Add Haegin's keymap

* Potential improvements to the keyboard

* Add haegin minidox layout

* Add Haegin's keyboard to ergodox layouts

* Update Haegin's minidox keymap

* Add home, end, and page up and down

* Magic Backspace

Backspace still acts as control when you hold it down, but if you tap it
twice and hold it's a held backspace. Tapping it more than twice it
continues to act as backspace, but it deletes more characters with each
tap with the quantity deleted based on the fibonacci sequence.

* Switch to deleting words after 4 taps

When hitting backspace, after 4 taps this switches to deleting by word
because if you're hitting backspace that frantically you must need to
delete a lot of stuff. Holding backspace after 4 taps will delete words
in the same way that holding alt+backspace deletes words on a normal
keyboard.
2018-04-19 07:18:58 -07:00
Joe Wasson
5226e4c79b Correct documentation for PREVENT_STUCK_MODIFIERS 2018-04-19 01:52:34 -04:00
blindassassin111
7dda7158fb added omnikey_blackheart keyboard support (#2688)
* added omnikey_blackheart keyboard support

* fixing omnikey_blackheart layout

* fixing omnikey_blackheart NKRO
2018-04-19 01:52:17 -04:00
Drashna Jaelre
8b0b17a369 Add Faux Clicking as subset of Audio feature (#2748)
* Add Faux Clicky to main Audio feature

* Make clicky settings user configurable

* Add additional documentation

* Don't play when music mode is enabled (hopefully)
2018-04-19 01:47:04 -04:00
Cole Markham
23b45710ac Add support for Big Series 1-key PCB by Woodkeys.click 2018-04-19 01:45:21 -04:00
Cole Markham
b4bdebab9a Meira updates for bluetooth and audio (#2731)
* Add audio output

* Update Miera to fix bluetooth issues, bootloader definition.

* Added keymap with audio example

* Cleanup Meira audio code
2018-04-19 00:57:24 -04:00
adiron
3d3c093173 Added bending to MIDI (#2740)
This is done via MI_BENDD and MI_BENDU. At the moment the value is
hardcoded and cannot be adjusted (future commit?) and is the max for the
`midi_send_pitchbend` function (up or down).

`MI_BENDD` and `MI_BENDU` both require `#define MIDI_ADVANCED`

MIDI pitch bend was already implemented in `protocol/midi.c`, I merely
added the keycodes to trigger them. :) (thanks to Jack, two years ago
in commit fb4fe52c apparently)
2018-04-18 22:22:08 -04:00
internetirl
a7fca47686 Link to Atmel's flip is broken. (#2752)
The link to Atmel's flip is broken. It re-directs to http://www.microchip.com/. Please update!

I think this is the correct link. Please verify.

http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip
2018-04-18 22:21:36 -04:00
Ethan Madden
9ab786d1d8 Added amj40 keymap (#2754)
fixed shift area

keymap updates to try to make this thing usable

documentation tweaks

fix readme mismatch

clean up and finish docs
2018-04-17 20:50:50 -07:00
zwnk
ec9058f227 impstyle keymap added (#2753) 2018-04-17 20:50:20 -07:00
Maarten Dekkers
5aada76f12 Update maartenwut's keymaps (tada68, atom47) and add GH60 layout (#2751) 2018-04-16 15:15:28 -07:00
fredizzimo
e9d32b60b7 Add a custom USB driver for ARM (#2750)
* Copy Chibios serial_usb_driver into the chibios/protocol

It's renamed to usb_driver to avoid name conflicts

* Make the usb driver compile

* Disable ChibiOS serial usb driver for all keyboards

* Change usb_main to use QMKUSBDriver

* Initialize the usb driver buffers

* Add support for fixed size queues

* Fix USB driver initialization

* Don't transfer an empty packet for fixed size streams
2018-04-15 20:42:53 -04:00
Takeshi ISHII
e2fb3079c7 update Helix keymap 'five_rows' (#2635)
* add 'HELIX=' option for build

* add IOS_DEVICE_ENABLE for iPad

* shrink size to helix five_rows keymap.c

* shrink size. _ADJUST number change

* add KEYPAD layer

* modify keypad leyer

* display RGB mode on slave side OLED

* fix Colemak, Dvorak center DEL to BS

* change LEFT BS to LEFT SP and add AUX layer for try old map

* update update_base_layer()

* add right keypad and keypad func layer

* use MO() macro insted of LOWER,RAISE,ADJUST custom key-code

* remove LOWER,RAISE,ADJUST custom key-code
* use MO(_LOWER|_RAISE|_ADJUST)
* relayout ADJUST layer

* modify Function Layer. PGUP,PGDN swap HOME,END

* add Keypad aux layer for '00' send

* update README.md, README_jp.md

* fix README.md

* fix README.md, README_jp.md
2018-04-15 09:54:56 -07:00
Biacco42
13cdfb465d Add Illustrator keymap layout for Ergo42 (#2658) 2018-04-15 09:54:11 -07:00
Spencer
1b711453ca Updated Levinson and Fourier keymaps (#2685)
* 	new file:   keyboards/dilly/keymaps/delmo/config.h
	new file:   keyboards/dilly/keymaps/delmo/keymap.c
	new file:   keyboards/dilly/keymaps/delmo/rules.mk
	new file:   keyboards/fourier/config.h
	new file:   keyboards/fourier/fourier.c
	new file:   keyboards/fourier/fourier.h
	new file:   keyboards/fourier/i2c.c
	new file:   keyboards/fourier/i2c.h
	new file:   keyboards/fourier/keymaps/default/config.h
	new file:   keyboards/fourier/keymaps/default/keymap.c
	new file:   keyboards/fourier/keymaps/default/rules.mk
	new file:   keyboards/fourier/keymaps/valgrahf/config.h
	new file:   keyboards/fourier/keymaps/valgrahf/keymap.c
	new file:   keyboards/fourier/keymaps/valgrahf/rules.mk
	new file:   keyboards/fourier/matrix.c
	new file:   keyboards/fourier/readme.md
	new file:   keyboards/fourier/rev1/config.h
	new file:   keyboards/fourier/rev1/rev1.c
	new file:   keyboards/fourier/rev1/rev1.h
	new file:   keyboards/fourier/rev1/rules.mk
	new file:   keyboards/fourier/rules.mk
	new file:   keyboards/fourier/serial.c
	new file:   keyboards/fourier/serial.h
	new file:   keyboards/fourier/split_util.c
	new file:   keyboards/fourier/split_util.h

* 	new file:   keyboards/levinson/keymaps/valgrahf/config.h
	new file:   keyboards/levinson/keymaps/valgrahf/keymap.c
	new file:   keyboards/levinson/keymaps/valgrahf/rules.mk

* 	modified:   keyboards/levinson/keymaps/valgrahf/keymap.c

* 	deleted:    keyboards/dilly/keymaps/delmo/config.h
	deleted:    keyboards/dilly/keymaps/delmo/keymap.c
	deleted:    keyboards/dilly/keymaps/delmo/rules.mk

* 	modified:   keyboards/fourier/keymaps/valgrahf/keymap.c

* 	deleted:    keyboards/fourier/config.h
	deleted:    keyboards/fourier/fourier.c
	deleted:    keyboards/fourier/fourier.h
	deleted:    keyboards/fourier/i2c.c
	deleted:    keyboards/fourier/i2c.h
	deleted:    keyboards/fourier/keymaps/default/config.h
	deleted:    keyboards/fourier/keymaps/default/keymap.c
	deleted:    keyboards/fourier/keymaps/default/rules.mk
	deleted:    keyboards/fourier/keymaps/valgrahf/config.h
	deleted:    keyboards/fourier/keymaps/valgrahf/keymap.c
	deleted:    keyboards/fourier/keymaps/valgrahf/rules.mk
	deleted:    keyboards/fourier/matrix.c
	deleted:    keyboards/fourier/readme.md
	deleted:    keyboards/fourier/rev1/config.h
	deleted:    keyboards/fourier/rev1/rev1.c
	deleted:    keyboards/fourier/rev1/rev1.h
	deleted:    keyboards/fourier/rev1/rules.mk
	deleted:    keyboards/fourier/rules.mk
	deleted:    keyboards/fourier/serial.c
	deleted:    keyboards/fourier/serial.h
	deleted:    keyboards/fourier/split_util.c
	deleted:    keyboards/fourier/split_util.h

* 	deleted:    keyboards/fourier/config.h
	deleted:    keyboards/fourier/fourier.c
	deleted:    keyboards/fourier/fourier.h
	deleted:    keyboards/fourier/i2c.c
	deleted:    keyboards/fourier/i2c.h
	deleted:    keyboards/fourier/keymaps/default/config.h
	deleted:    keyboards/fourier/keymaps/default/keymap.c
	deleted:    keyboards/fourier/keymaps/default/rules.mk
	deleted:    keyboards/fourier/keymaps/valgrahf/config.h
	deleted:    keyboards/fourier/keymaps/valgrahf/keymap.c
	deleted:    keyboards/fourier/keymaps/valgrahf/rules.mk
	deleted:    keyboards/fourier/matrix.c
	deleted:    keyboards/fourier/readme.md
	deleted:    keyboards/fourier/rev1/config.h
	deleted:    keyboards/fourier/rev1/rev1.c
	deleted:    keyboards/fourier/rev1/rev1.h
	deleted:    keyboards/fourier/rev1/rules.mk
	deleted:    keyboards/fourier/rules.mk
	deleted:    keyboards/fourier/serial.c
	deleted:    keyboards/fourier/serial.h
	deleted:    keyboards/fourier/split_util.c
	deleted:    keyboards/fourier/split_util.h

	keyboards/fourier/

* 	new file:   keyboards/fourier/config.h
	new file:   keyboards/fourier/fourier.c
	new file:   keyboards/fourier/fourier.h
	new file:   keyboards/fourier/i2c.c
	new file:   keyboards/fourier/i2c.h
	new file:   keyboards/fourier/keymaps/default/config.h
	new file:   keyboards/fourier/keymaps/default/keymap.c
	new file:   keyboards/fourier/keymaps/default/rules.mk
	new file:   keyboards/fourier/keymaps/valgrahf/config.h
	new file:   keyboards/fourier/keymaps/valgrahf/keymap.c
	new file:   keyboards/fourier/keymaps/valgrahf/rules.mk
	new file:   keyboards/fourier/matrix.c
	new file:   keyboards/fourier/readme.md
	new file:   keyboards/fourier/rev1/config.h
	new file:   keyboards/fourier/rev1/rev1.c
	new file:   keyboards/fourier/rev1/rev1.h
	new file:   keyboards/fourier/rev1/rules.mk
	new file:   keyboards/fourier/rules.mk
	new file:   keyboards/fourier/serial.c
	new file:   keyboards/fourier/serial.h
	new file:   keyboards/fourier/split_util.c
	new file:   keyboards/fourier/split_util.h

* 	modified:   keyboards/fourier/keymaps/valgrahf/keymap.c

* 	modified:   keyboards/fourier/keymaps/valgrahf/keymap.c
2018-04-15 09:51:38 -07:00
youdroid
5d36118eaa Add French Layout for XD75 (#2681) 2018-04-15 09:50:46 -07:00
markhuguet
b7d095fdc3 Added Factory Style LED Controls (#2678)
* This adds a keymap to the MF68 labeled factory.  It is an attempt to mimic the layout on the factory keycaps of the non-backlit board.

There are some small differences:

1) FN+WASD are an arrow cluster
2) FN+Z (Start media player) and FN+] (Start Calculator) are not mapped
3) FN+GHJKL are Backlight controls
4) An FN2 layer exists for future growth
5) The CAPS key is maped as FN2, for CAPS Lock use FN+CAPS

* Changed the CAPS key to be CAPS Lock on short press, FN2 on hold

Added LED controls to FN+Arrow Keys to better mimic factory backlit boards.
2018-04-15 09:49:31 -07:00
ajp10304
ed62c6e146 Ajp10304 (#2719)
* AJP10304 layouts for Planck and JJ40 now have mouse support. Moved macros onto Adjust layer

* .gitignore for intellij iml files.

* Updated Macros to use send string
2018-04-15 09:48:19 -07:00
David Rambo
32fd5e4f61 keymaps for Iris, Planck, Satan, and XD75 (#2747)
* DRambo Planck keymap in Colemak

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* Added Iris keymap from DavidRambo

* Added planck keymap from DavidRambo

* Added xd75 keymap from DavidRambo

* Added readme
2018-04-15 09:46:26 -07:00
Fayek Helmi
fe8b9d0d0f adding the 256k HHKB layout to the library (#2742)
* adding the 256k HHKB layout to the library

* changed the layouts for the modifying layers and added a readme file to explain my layout
2018-04-15 09:09:55 -07:00
Oliver Ladner
412af0f4e7 New DZ60 layout (#2744)
* initial commit

* - Move layout to readme
- Finish first (0) layer

* remove cruft

* fix ASCII keymap in readme

* fix ASCII keymap in readme #2

* fix ASCII keymap in readme

* rename layers

* use 2 shift layout

* rename layers, populate additional layers

* final layout (TM)

* fix RGB saturation increase position
2018-04-15 09:09:15 -07:00
Campbell Barton
d55ee204db qwerty_code_friendly: optional 80 key layout (#2745) 2018-04-15 09:08:28 -07:00
Kevin Foley
cdb967f22b Fix link to command page 2018-04-15 11:53:31 -04:00
mechmerlin
28307be72f Add chiwi60 layout for the do60
Add info.json to support the layouts for QMK Configurator
Rename LAYOUT to LAYOUT_all
2018-04-13 23:50:48 -04:00
walkerstop
530dd446cb Fix incorrect port direction setting in my previous pull request for pins B5, B6, B7 (#2739)
* Added support for audio using pins C4, C5, B6, B7

* Fixed bug where port direction wasn't set correctly for B5, B6, B7 audio ports
2018-04-13 03:53:29 -04:00
Michael L. Walker
22215a0e92 Added support for audio using pins C4, C5, B6, B7 2018-04-12 13:14:48 -04:00
MechMerlin
5319667c55 Support upcoming caps_unlocked boards in QMK Configurator (#2738)
* Change KEYMAP macro to LAYOUT macro

* Add CU24 QMK Configurator Support

- Change KEYMAP macro to LAYOUT macro
- Add new LAYOUTS to support a default numpad

* QMK Configurator Support for CU75

Add LAYOUT_all to support all layouts
Add corresponding info.json
2018-04-12 13:03:50 -04:00
skullY
f10a0ae547 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
Phil
3d3716bbf7 Beginning implementation of Pearl backlight. Levels and breathing not working yet. 2018-04-11 23:55:41 -04:00
204 changed files with 7326 additions and 1058 deletions

1
.gitignore vendored
View File

@@ -43,6 +43,7 @@ doxygen/
.project
.settings/
.idea
*.iml
.browse.VC.db*
*.stackdump
util/Win_Check_Output.txt

View File

@@ -61,10 +61,18 @@ This is a C header file that is one of the first things included, and will persi
* COL2ROW or ROW2COL - how your matrix is configured. COL2ROW means the black mark on your diode is facing to the rows, and between the switch and the rows.
* `#define AUDIO_VOICES`
* turns on the alternate audio voices (to cycle through)
* `#define C4_AUDIO`
* enables audio on pin C4
* `#define C5_AUDIO`
* enables audio on pin C5
* `#define C6_AUDIO`
* enables audio on pin C6
* `#define B5_AUDIO`
* enables audio on pin B5 (duophony is enable if both are enabled)
* enables audio on pin B5 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define B6_AUDIO`
* enables audio on pin B6 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define B7_AUDIO`
* enables audio on pin B7 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define BACKLIGHT_PIN B7`
* pin of the backlight - B5, B6, B7 use PWM, others use softPWM
* `#define BACKLIGHT_LEVELS 3`
@@ -108,7 +116,7 @@ If you define these options you will enable the associated feature, which may in
* `#define FORCE_NKRO`
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
* `#define PREVENT_STUCK_MODIFIERS`
* when switching layers, this will release all mods
* stores the layer a key press came from so the same layer is used when the key is released, regardless of which layers are enabled
## Behaviors That Can Be Configured

View File

@@ -1,6 +1,17 @@
# Audio
Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to the C6 or B5 port (`#define C6_AUDIO` and/or `#define B5_AUDIO`), you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to certain PWM-capable pins, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
Up to two simultaneous audio voices are supported, one driven by timer 1 and another driven by timer 3. The following pins can be defined as audio outputs in config.h:
Timer 1:
`#define B5_AUDIO`
`#define B6_AUDIO`
`#define B7_AUDIO`
Timer 3:
`#define C4_AUDIO`
`#define C5_AUDIO`
`#define C6_AUDIO`
If you add `AUDIO_ENABLE = yes` to your `rules.mk`, there's a couple different sounds that will automatically be enabled without any other configuration:
@@ -86,6 +97,36 @@ You can completely disable Music Mode as well. This is useful, if you're pressed
#define NO_MUSIC_MODE
## Faux Click
This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly.
* `CK_TOGG` - Toggles the status (will play sound if enabled)
* `CK_RST` - Resets the frequency to the default state
* `CK_UP` - Increases the frequency of the clicks
* `CK_DOWN` - Decreases the frequency of the clicks
The feature is disabled by default, to save space. To enable it, add this to your `config.h`:
#define AUDIO_CLICKY
Additionally, even when enabled, the feature is not enabled by default, so you would need to turn it on first. And since we don't use EEPROM to store the setting (yet), you can default this to on by adding this to your `config.h`:
#define AUDIO_CLICKY_ON
You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values:
| Option | Default Value | Description |
|--------|---------------|-------------|
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical. |
## MIDI Functionality
This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile.

View File

@@ -6,7 +6,7 @@ Bootmagic is a system for configuring your keyboard while it initializes. To tri
Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the (Command)[feature_command.md) documentation page.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the [Command](feature_command.md) documentation page.
## Enabling Bootmagic

View File

@@ -20,7 +20,7 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line)
* [Atmel's Flip](http://www.atmel.com/tools/flip.aspx) (not recommended)
* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (not recommended)
Flashing sequence:

View File

@@ -2,7 +2,6 @@
"keyboard_name": "1up60rgb",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {

View File

@@ -0,0 +1,43 @@
#include "amj40.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default Layer
[0] = KEYMAP( \
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(2, 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_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), LT(1, KC_SPC), KC_RALT, MO(3), KC_RCTL \
),
// Number Layer
[1] = KEYMAP( \
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_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, MT(MOD_RSFT, KC_BSLS), \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
),
// Shifted Layer
[2] = KEYMAP( \
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_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PIPE, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
),
// Fkey Layer
[3] = KEYMAP( \
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET,\
KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
),
// Gaming Layer
[4] = KEYMAP( \
KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,\
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,\
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
),
};

View File

@@ -0,0 +1,55 @@
Jetpacktuxedo's AMJ40 layout
=====================
This is based heavily on my minivan layout, with most difference stemming from the different widths between the minivan and the AMJ40. ![Image of my specific layout](https://i.imgur.com/B9XraJY.jpg)
## Base Layer (0)
The base layer is pretty simple, straight qwerty layout where available. Both spacebars go to layer 1 when held. `tab` is `tab` when pressed and `fn2` when held, `enter` is the same. `GESC` is `esc` when used alone, but `~` when shifted. `/` is `/` when tapped but `rshift` when held.
```
|GESC| Q | W | E | R | T | Y | U | I | O | P |BSPC|
| TAB | A | S | D | F | G | H | J | K | L | ENTER |
|LSHIFT | Z | X | C | V | B | N | M | , | . | / |
|LCTRL|LWIN|LALT | SPACE | SPACE |RALT |FN 3|RCTRL |
```
## Number Layer (1)
Numbers are set up just like on my minivan layout, but symbols are a bit different because the AMJ40 is one key narrower than the minivan and also lacks dedicated arrows. Decided to go with `hjkl` arrows, which takes some getting used to. `;` is on a layer now because of the narrowness I mentioned before, and it (along with `-`, `=`, and `'`) moves to the right hand to leave room for the `hjkl` arrows. `delete` on `backspace`, `[` and `]` on `<` and `>`, and `\` on `/` are all stolen straight from my minivan layout.
```
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |DEL |
| | - | = | ; | ' | | ← | ↓ | ↑ | → | |
| | | | | | | | | [ | ] | \ |
| | | | | | | | |
```
## Shifted Layer (2)
I don't want to be using two key combos constantly, so I also added this symbol layer that is basically shift+numeric layer. Also has nav keys on top of where arrows sit on the previous layer
```
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |DEL |
| | _ | + | : | " | |HOME|PGDN|PGUP|END | |
| | | | | | | | | { | } | | |
| | | | | | | | |
```
## Fkey Layer (3)
Honestly, I use this more for jumping to my gaming layer and for reset than I use it for Fkeys. Lol. Hitting the left windows key while in this layer locks the gaming layer listed below
```
| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 |RSET|
| |F11 |F12 | | | | | | | | |
| | | | | | | | | | | |
| |FN 4| | | | | | |
```
## "Gaming" Layer (4)
Based on the "gaming" layer on my minivan that I mostly just use for mouse keys. To toggle this back off you hit the right windows key (to go to layer 3) and then the left windows key again.
```
|ESC | | | | | |MWUP|MLCK|M UP|MRCK| | |
| TAB | | | | | |MWDN|M L |M DN|M R | |
| | | | | | | | | | | |
| | | | SPACE | | | | |
```

View File

@@ -0,0 +1,27 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # 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
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
# Do not enable SLEEP_LED_ENABLE. It uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
#define ws2812_PORTREG PORTD
#define ws2812_DDRREG DDRD
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -2,7 +2,6 @@
"keyboard_name": "AMJ96",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 19,
"height": 6,
"layouts": {

View File

@@ -11,36 +11,60 @@
#define _______ KC_TRNS
enum custom_keycodes {
CTRLZ = SAFE_RANGE,
CTRLX,
CTRLC,
CTRLV
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MA] = KEYMAP_ANSI(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, MO(_LO), KC_SPC, KC_SPC, MO(_RA), KC_RALT, KC_APP, KC_RCTRL), \
[_LO] = KEYMAP_ANSI(
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
_______, CTRLZ, CTRLX, CTRLC, CTRLV, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \
[_RA] = KEYMAP_ANSI(
_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, \
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
[_LO] = KEYMAP_ANSI(
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
_______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \
};
void led_set_user(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
// Turn capslock on
PORTE &= ~(1 << 6);
PORTE &= ~(1 << 6);
} else {
// Turn capslock off
PORTE |= (1 << 6);
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case CTRLZ:
SEND_STRING(SS_LCTRL("z"));
return false;
case CTRLX:
SEND_STRING(SS_LCTRL("x"));
return false;
case CTRLC:
SEND_STRING(SS_LCTRL("c"));
return false;
case CTRLV:
SEND_STRING(SS_LCTRL("v"));
return false;
}
}
return true;
};

26
keyboards/bigseries/bigseries.c Executable file
View File

@@ -0,0 +1,26 @@
/*
Copyright 2018 Cole Markham
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 "bigseries.h"
void matrix_scan_kb(void) {
// Looping keyboard code goes here
// This runs every cycle (a lot)
matrix_scan_user();
#ifdef BACKLIGHT_ENABLE
backlight_task();
#endif
};

28
keyboards/bigseries/bigseries.h Executable file
View File

@@ -0,0 +1,28 @@
/*
Copyright 2018 Cole Markham
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/>.
*/
#ifndef BIGSWITCH_H
#define BIGSWITCH_H
#include "quantum.h"
#define KEYMAP( \
K00 \
) { \
{ K00 } \
}
#endif

59
keyboards/bigseries/config.h Executable file
View File

@@ -0,0 +1,59 @@
/*
Copyright 2018 Cole Markham
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/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6071
#define DEVICE_VER 0x0002
#define MANUFACTURER WoodKeys.click
#define PRODUCT BigSeries Single Keyboard
#define DESCRIPTION Single key board for Novelkeys Big Series Switch
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 1
/* key matrix pins */
#define MATRIX_ROW_PINS { B0 }
#define MATRIX_COL_PINS { B4 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 50
/* key combination for command */
#define IS_COMMAND() ( \
false \
)
/* prevent stuck modifiers */
#define PREVENT_STUCK_MODIFIERS
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 5
#endif
#endif

View File

@@ -0,0 +1,144 @@
/*
Copyright 2018 Cole Markham
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 "../../bigseries.h"
static const char * const ANSWERS[] = {
// "Yes" answers
"It is certain\n",
"It is decidedly so\n",
"Without a doubt\n",
"Yes definitely\n",
"You may rely on it\n",
"As I see it, yes\n",
"Most likely\n",
"Outlook good\n",
"Yes\n",
"Signs point to yes\n",
// Uncertain answers, index 10
"Reply hazy try again\n",
"Ask again later\n",
"Better not tell you now\n",
"Cannot predict now\n",
"Concentrate and ask again\n",
// "No" answers, index 15
"Don't count on it\n",
"My reply is no\n",
"My sources say no\n",
"Outlook not so good\n",
"Very doubtful\n"
};
#define UNCERTAIN_BREAK 10
#define NO_BREAK 15
#define NUM_ANSWERS 20
// Timeout of answer color in ms
#define ANSWER_TIMEOUT 3000
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP(
KC_A),
};
void reset_rgb(void);
bool initialized = 0;
uint32_t lastTime = 0;
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
return MACRO_NONE ;
}
void matrix_init_user(void) {
if (!initialized){
dprintf("Initializing in matrix_scan_user");
rgblight_enable();
reset_rgb();
initialized = 1;
}
}
void matrix_scan_user(void) {
if (lastTime > 0 && timer_elapsed32(lastTime) > ANSWER_TIMEOUT) {
lastTime = 0;
reset_rgb();
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_A:
if (record->event.pressed) {
uint8_t num = rand() / (RAND_MAX / NUM_ANSWERS + 1);
rgblight_mode(1);
if (num < UNCERTAIN_BREAK) {
rgblight_setrgb_green();
} else if (num < NO_BREAK) {
rgblight_setrgb_yellow();
} else {
rgblight_setrgb_red();
}
send_string(ANSWERS[num]);
lastTime = timer_read32();
return false;
}
}
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}
void reset_rgb(void) {
// This gets called on init and after the timeout for the answer color
// If you want to change the default color/mode, do it here
rgblight_sethsv_blue();
rgblight_mode(7);
}

View File

@@ -0,0 +1,93 @@
/*
Copyright 2018 Cole Markham
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 "../../bigseries.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP(
KC_A),
};
bool initialized = 0;
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
return MACRO_NONE ;
}
void matrix_init_user(void) {
if (!initialized){
dprintf("Initializing in matrix_scan_user");
rgblight_enable();
rgblight_mode(7);
rgblight_sethsv(0,255,255);
rgblight_setrgb(0x00, 0x00, 0xFF);
initialized = 1;
}
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_A:
if (record->event.pressed) {
SEND_STRING("Howdy!!\n");
rgblight_step();
return false;
}
}
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}

View File

@@ -0,0 +1,23 @@
/*
Copyright 2018 Cole Markham
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#define TAPPING_TERM 400
#endif

View File

@@ -0,0 +1,127 @@
/*
Copyright 2018 Cole Markham
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 "../../bigseries.h"
#include "print.h"
extern rgblight_config_t rgblight_config;
enum custom_keycodes {
BL = SAFE_RANGE
};
enum custom_layers {
BASE = 0,
LED
};
//Tap Dance Declarations
enum {
TD_TOGGLE = 0
};
void dance_toggle (qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 2) {
println("Double tapped, switching layers");
if (layer_state_is(LED)) {
layer_off(LED);
} else {
layer_on(LED);
}
} else {
print("Single tapped: ");
if (layer_state_is(LED)) {
#ifdef RGBLIGHT_ENABLE
if (!rgblight_config.enable) {
rgblight_enable();
}
rgblight_step();
#endif
} else {
println("Base layer, sending string");
SEND_STRING("This thing is BIG!!\n");
}
}
}
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_TOGGLE] = ACTION_TAP_DANCE_FN(dance_toggle)
// Other declarations would go here, separated by commas, if you have them
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = KEYMAP(
TD(TD_TOGGLE)),
[LED] = KEYMAP(
TD(TD_TOGGLE)
)
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
return MACRO_NONE ;
}
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Nothing here, see dance_toggle
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}

View File

@@ -0,0 +1 @@
TAP_DANCE_ENABLE = yes

View File

@@ -0,0 +1,15 @@
# Big Series Keyboard
![Big Series 1-Key](https://woodkeys.click/wp-content/uploads/2017/12/woodkeys_419.jpg)
A PCB for the Big Series Switch by [NovelKeys](https://novelkeys.xyz). Available in 1, 2, 3, and 4 switch versions from [Woodkeys.click](https://woodkeys.click/product-category/big-series/).
Keyboard Maintainer: [Cole Markham](https://github.com/colemarkham) / [Woodkeys.click](https://woodkeys.click)
Hardware Supported: Big Series PCBs
Hardware Availability: [Woodkeys.click](https://woodkeys.click), [NovelKeys](https://novelkeys.xyz)
Make example for this keyboard (after setting up your build environment):
make bigseries: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.

59
keyboards/bigseries/rules.mk Executable file
View File

@@ -0,0 +1,59 @@
#SRC += rgb_backlight.c
# MCU name
MCU = atmega32u2
# 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*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not be enabled
AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below
RGBLIGHT_ENABLE = yes # This can be enabled if a ws2812 strip is connected to the expansion port.

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -1,8 +1,5 @@
{
"keyboard_name": "",
"url": "",
"maintainer": "qmk",
"bootloader": "",
"width": 15.5,
"height": 4.25,
"layouts": {

View File

@@ -2,7 +2,6 @@
"keyboard_name": "Christmas Tree",
"keyboard_folder": "christmas_tree",
"url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/",
"bootloader": "catarina",
"maintainer": "That-Canadian",
"width": 3,
"height": 3,

View File

@@ -2,7 +2,6 @@
"keyboard_name": "CB 2x1800",
"url": "",
"maintainer": "skullydazed",
"bootloader": "teensy",
"width": 24,
"height": 6.5,
"layouts": {

View File

@@ -146,7 +146,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -2,7 +2,6 @@
"keyboard_name": "clueboard/60",
"maintainer": "skullydazed",
"url": "",
"bootloader": "stm32-dfu-util",
"width": 15,
"height": 5,
"layouts": {

View File

@@ -1,6 +1,5 @@
{
"keyboard_name": "Clueboard 66%",
"bootloader": "atmel-dfu",
"width": 16.5,
"height": 5,
"layouts": {

View File

@@ -1,6 +1,5 @@
{
"keyboard_name": "Clueboard 66% HotSwap",
"bootloader": "atmel-dfu",
"width": 16.5,
"height": 5,
"layouts": {

View File

@@ -2,7 +2,6 @@
"keyboard_name": "Contra",
"url": "",
"maintainer": "qmk",
"bootloader": "caterina",
"width": 12,
"height": 4,
"layouts": {

View File

@@ -108,7 +108,7 @@ uint8_t matrix_scan(void)
state = RESET;
}
break;
// after reset receive keyboad ID(2 bytes)
// after reset receive keyboard ID(2 bytes)
case KBD_ID0:
if (code) {
state = KBD_ID1;

View File

@@ -22,7 +22,7 @@
// The following is an example using the Planck MIT layout
// The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
#define LAYOUT_grid( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
@@ -39,4 +39,23 @@
{ k50, k51, k52, k53 } \
}
#define LAYOUT_numpad( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
k30, k31, k32, \
k40, k41, k42, k43, \
k51, k52 \
) \
{ \
{ k00, k01, k02, k03 }, \
{ k10, k11, k12, k13 }, \
{ k20, k21, k22, k23 }, \
{ k30, k31, k32, KC_NO }, \
{ k40, k41, k42, k43 }, \
{ KC_NO, k51, k52, KC_NO } \
}
#endif

16
keyboards/cu24/info.json Normal file
View File

@@ -0,0 +1,16 @@
{
"keyboard_name": "cu24",
"url": "",
"maintainer": "qmk",
"width": 4,
"height": 6,
"layouts": {
"LAYOUT_grid": {
"layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4}, {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}]
},
"LAYOUT_numpad": {
"layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}]
}
}
}

View File

@@ -16,7 +16,7 @@
#include "cu24.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP( /* Base */
[0] = LAYOUT_grid( /* Base */
KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, \
MO(1) , KC_PSLS, KC_PAST, KC_PMNS, \
KC_P7 , KC_P8 , KC_P9 , KC_PPLS, \
@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_P0 , KC_P0 , KC_PDOT, KC_PENT
),
[1] = KEYMAP( /* FN */
[1] = LAYOUT_grid( /* FN */
RGB_TOG, RGB_MOD, BL_STEP, BL_BRTG, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, \

View File

@@ -75,13 +75,13 @@ void click(uint16_t freq, uint16_t duration);
*/
// The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
#define LAYOUT( \
k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \
k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \
k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \
k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \
k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \
) { \
{k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G}, \
{k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, KC_NO, k1G}, \
@@ -91,7 +91,23 @@ void click(uint16_t freq, uint16_t duration);
{k51, k52, k53, k54, KC_NO, KC_NO, k57, KC_NO, k59, k5A, k5B, k5C, k5D, k5E, k5F, KC_NO}, \
}
#define ISO_KEYMAP( \
#define LAYOUT_all( \
k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, \
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \
k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, \
k51, k52, k53, k54, k57, k59, k5A, k5B, k5C, k5D, k5E, k5F \
) { \
{k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G}, \
{k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G}, \
{k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, KC_NO}, \
{k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, KC_NO}, \
{k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, KC_NO}, \
{k51, k52, k53, k54, KC_NO, KC_NO, k57, KC_NO, k59, k5A, k5B, k5C, k5D, k5E, k5F, KC_NO}, \
}
#define LAYOUT_iso( \
k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3D, k2F, \

16
keyboards/cu75/info.json Normal file
View File

@@ -0,0 +1,16 @@
{
"keyboard_name": "cu75",
"url": "",
"maintainer": "qmk",
"width": 16,
"height": 6,
"layouts": {
"LAYOUT": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
},
"LAYOUT_all": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
}
}
}

View File

@@ -12,7 +12,7 @@ enum keymap_layout {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[VANILLA] = KEYMAP(
[VANILLA] = LAYOUT(
/* Keymap VANILLA: (Base Layer) Default Layer
* ,------------------------------------------------------------.----.
* |Esc | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|F13|F14| F15|
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT,KC_SPC, KC_SPC, KC_SPC,KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
[FUNC] = KEYMAP(
[FUNC] = LAYOUT(
/* Keymap VANILLA: Function Layer
* ,-------------------------------------------------------------------.
* | | | | | | | | | | | | | | | | |

View File

@@ -12,7 +12,7 @@ enum keymap_layout {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[VANILLA] = ISO_KEYMAP(
[VANILLA] = LAYOUT_iso(
/* Keymap VANILLA: (Base Layer) Default Layer
* ,------------------------------------------------------------.----.
* |Esc | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|F13|F14| F15|
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT,KC_SPC, KC_SPC, KC_SPC,KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
[FUNC] = KEYMAP(
[FUNC] = LAYOUT(
/* Keymap VANILLA: Function Layer
* ,-------------------------------------------------------------------.
* | | | | | | | | | | | | | | | | |

View File

@@ -1,7 +1,6 @@
{
"keyboard_name": "DeltaSplit75",
"maintainer": "xyxjj & itsaferbie",
"bootloader": "n/a",
"width": 17,
"height": 6,
"layouts": {

View File

@@ -0,0 +1,10 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#define TAPPING_TERM 200
#define RETRO_TAPPING
#define PERMISSIVE_HOLD
#endif

View File

@@ -0,0 +1,107 @@
#include "dilly.h"
#include "action_layer.h"
extern keymap_config_t keymap_config;
#define _BASE 0
#define _FN1 1
#define _FN2 2
#define _FN3 3
#define _FN4 4
#define _FN5 5
#define KC_ KC_TRNS
#define _______ KC_TRNS
// Tap-Hold keys
//#define KC_ASFT MT(MOD_LSFT, KC_A)
#define KC_F_L3 LT(_FN3, KC_F)
#define KC_ZCTL MT(MOD_LCTL, KC_Z)
#define KC_XALT MT(MOD_LALT, KC_X)
//#define KC_CGUI MT(MOD_LGUI, KC_C)
#define KC_V_L4 LT(_FN4, KC_V)
#define KC_SPL2 LT(_FN2, KC_SPC)
#define KC_B_L1 LT(_FN1, KC_B)
#define KC_N_L5 LT(_FN5, KC_N)
//#define KC_MALT MT(MOD_RALT, KC_M)
//#define KC_BSCT MT(MOD_RCTL, KC_BSPC)
#define KC_ENTS MT(MOD_RSFT, KC_ENT)
#define KC_BSCS MT(MOD_RSFT, KC_BSPC)
#define KC_GUIC LGUI(KC_C)
#define KC_RST RESET
#define KC_BL_S BL_STEP
#define KC_DBUG DEBUG
#define KC_RTOG RGB_TOG
#define KC_RMOD RGB_MOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
#define KC_RSAI RGB_SAI
#define KC_RSAD RGB_SAD
#define KC_RVAI RGB_VAI
#define KC_RVAD RGB_VAD
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = KC_KEYMAP(
//,----+----+----+----+----+----+----+----+----+----.
Q , W , E , R , T , Y , U , I , O , P ,
//|----+----+----+----+----+----+----+----+----+----|
A , S , D ,F_L3, G , H , J , K , L ,BSCS,
//|----+----+----+----+----+----+----+----+----+----|
ZCTL,XALT,C ,V_L4,B_L1,SPL2,N_L5,M ,DOT ,ENTS
//`----+----+----+----+----+----+----+----+----+----'
),
[_FN1] = KC_KEYMAP(
//,----+----+----+----+----+----+----+----+----+----.
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,
//|----+----+----+----+----+----+----+----+----+----|
F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,
//|----+----+----+----+----+----+----+----+----+----|
, , , , ,BSPC, , , ,CAPS
//`----+----+----+----+----+----+----+----+----+----'
),
[_FN2] = KC_KEYMAP(
//,----+----+----+----+----+----+----+----+----+----.
EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,
//|----+----+----+----+----+----+----+----+----+----|
F11 ,F12 , , , , , , , ,GRV ,
//|----+----+----+----+----+----+----+----+----+----|
, , , ,DEL , , , , ,
//`----+----+----+----+----+----+----+----+----+----'
),
[_FN3] = KC_KEYMAP(
//,----+----+----+----+----+----+----+----+----+----.
ESC , , , , ,MINS,EQL ,LBRC,RBRC,BSLS,
//|----+----+----+----+----+----+----+----+----+----|
TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT,
//|----+----+----+----+----+----+----+----+----+----|
, , , ,BSPC, ,LEFT,DOWN, UP ,RGHT
//`----+----+----+----+----+----+----+----+----+----'
),
[_FN4] = KC_KEYMAP(
//,----+----+----+----+----+----+----+----+----+----.
, , , , ,UNDS,PLUS,LCBR,RCBR,PIPE,
//|----+----+----+----+----+----+----+----+----+----|
TAB , , , , , LT , GT ,QUES,COLN,DQUO,
//|----+----+----+----+----+----+----+----+----+----|
, ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END
//`----+----+----+----+----+----+----+----+----+----'
),
[_FN5] = KC_KEYMAP(
//,----+----+----+----+----+----+----+----+----+----.
RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , ,
//|----+----+----+----+----+----+----+----+----+----|
, ,DBUG, ,RHUD,RSAD,RVAD, , , ,
//|----+----+----+----+----+----+----+----+----+----|
BL_S, ,GUIC, , , , , , ,
//`----+----+----+----+----+----+----+----+----+----'
)
};

View File

@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes

View File

@@ -24,7 +24,7 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
/* Do60 Keymap Definition Macro */
#define LAYOUT( \
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
@@ -38,4 +38,18 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
{ K40, K41, K42, KC_NO,KC_NO,K45, K46, K47, KC_NO,KC_NO,K4A, K4B, K4C, K4D, K4E } \
}
#define LAYOUT_chiwi60_default( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K42, K45, K47, K4A, K4B, K4C, K4D, K4E \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, KC_NO, K2E }, \
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \
}
#endif

16
keyboards/do60/info.json Normal file
View File

@@ -0,0 +1,16 @@
{
"keyboard_name": "do60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4}, {"label":"3u(Space)", "x":7.5, "y":4, "w":2.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
},
"LAYOUT_chiwi60_default": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":3}, {"label":"3u(Space)", "x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
}
}
}

View File

@@ -4,7 +4,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 0: Base Layer
[0] = LAYOUT(
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
// 1: Function Layer
[1] = LAYOUT(
[1] = LAYOUT_all(
RESET, 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_NO, KC_NO, \
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \

View File

@@ -4,7 +4,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 0: Base Layer
[0] = LAYOUT(
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, 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_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
// 1: Function Layer
[1] = LAYOUT(
[1] = LAYOUT_all(
RESET, 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_NO, KC_NO, \
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \

View File

@@ -2,7 +2,6 @@
"keyboard_name": "DZ60",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {

View File

@@ -0,0 +1,113 @@
256k HHKB Layout:
===
this is my personal layer that i use on my Tina-C HHKB layout board with a DZ60 PCB.
---
there is 1 base layer and 4 modifyer layers:
BASE:
---
```
/* BASE LAYER
*
* ,-----------------------------------------------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` |
* |-----------------------------------------------------------------------------------------+
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
* |-----------------------------------------------------------------------------------------+
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
* |-----------------------------------------------------------------------------------------+
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
* |-----------------------------------------------------------------------------------------+
* | Win | Alt | Space | Alt | LIGHTS |
* `-----------------------------------------------------------------------------------------'
*/
```
LAYER 1 (ALTFN):
---
this layer is my main function layer, i changed the default HHKB function layer to suit my need and also changed the placement of the modifyer key to the left alt since i want to control the layer activation with one hand and have the other hand control the keys on that layer freely. perhaps this is due to me being left handed but it feels more natural to me this way.
```
/* ALTFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
```
MOUSE LAYER (MOUSEFN):
---
*To access this layer you need to enter the ALTFN layer first then hit ESC button which will switch to the MOUSEFN layer*
this is the second *hidden* layer that controls the mouse scroll wheel directions. i find it's useful to have these controls on the keyboard for certain applications that require scrolling in all 4 directions (Simple example: expanding an image preview to full size that overflows outside of the default monitor size and using the scroll wheel to mouve the image around.)
also another benefit is that a lot of mice do not have horizontal control buttons for the scrolling
(This layer is still experimental so i might change it later or modify it but so far i enjoy it)
```
/* MOUSEFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
```
STANDARD HHKB FN LAYER (FN):
---
this is the default HHKB function layer (mostly)... I have left it there on the same button and everything for 2 reasons: 1. for backup incase i forget where something was or if it contains a button that i did not include in my ALTFN layer. 2. as a reference for anyone else.
*this layer will probably get removed once i get comfortable with my ALTFN layer.*
LIGHTS LAYER:
---
this is the basic lights layer used to control the RBG backlight on the DZ60... i have removed the 3 backlight controls since i do not use any key LED Backlight.
```
/* LIGHTS LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------+
* | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `----------------------------------------------------------------------------------------------------------------------'
*/
```

View File

@@ -0,0 +1,250 @@
#include "dz60.h"
#include "action_layer.h"
// My layout is practically the default HHKB layout.
#define _DEFAULT 0
#define _ALTFN 1
#define _MOUSEFN 2
#define _FN 3
#define _LIGHTS 4
#define ______ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BASE LAYER
*
* ,-----------------------------------------------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` |
* |-----------------------------------------------------------------------------------------+
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
* |-----------------------------------------------------------------------------------------+
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
* |-----------------------------------------------------------------------------------------+
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
* |-----------------------------------------------------------------------------------------+
* | Win | Alt | Space | Alt | LIGHTS |
* `-----------------------------------------------------------------------------------------'
*/
[_DEFAULT] = LAYOUT_hhkb(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
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,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
KC_LGUI, MO(_ALTFN), KC_SPC, KC_RALT, MO(_LIGHTS)),
/* ALTFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
[_ALTFN] = LAYOUT_hhkb(
MO(_MOUSEFN), 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_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, KC_UP, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL,
______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MNXT, KC_MPLY, ______, ______,
______, ______, ______, ______, ______),
/* MOUSEFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
[_MOUSEFN] = LAYOUT_hhkb(
______, KC_ACL0, KC_ACL1, KC_ACL2, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_U, ______, ______, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, KC_WH_L, KC_WH_D, KC_WH_R, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______),
/* FN LAYER
*
* ,------------------------------------------------------------------------------------------------------
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |INSERT | _ |
* |------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | PRSC | SLOCK | PAUSE | UP | _ | DEL |
* |------------------------------------------------------------------------------------------------------+
* | CTRL | _ | VOLDOWN | VOLUP | VOLMUTE | _ | _ | _ | HOME | PGUP | LEFT | IGHT | _ |
* |------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | END | PGDN | DOWN | _ | _ |
* |------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `------------------------------------------------------------------------------------------------------'
*/
[_FN] = LAYOUT_hhkb(
______, 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_INS, ______,
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, KC_DEL,
______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______,
______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______,
______, ______, ______, ______, ______),
/* LIGHTS LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------+
* | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `----------------------------------------------------------------------------------------------------------------------'
*/
[_LIGHTS] = LAYOUT_hhkb(
RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, ______, ______, ______, ______, ______, ______,
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, RGB_HUD, RGB_SAD, RGB_VAD, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______),
};
/*
RGB controls
Key -> Description
=========================
RGB_TOG -> Toggle RGB lighting on or off
RGB_MOD -> Cycle through modes, reverse direction when Shift is held
RGB_RMOD -> Cycle through modes in reverse, forward direction when Shift is held
RGB_HUI -> Increase hue
RGB_HUD -> Decrease hue
RGB_SAI -> Increase saturation
RGB_SAD -> Decrease saturation
RGB_VAI -> Increase value (brightness)
RGB_VAD -> Decrease value (brightness)
RGB_M_P -> Static (no animation) mode
RGB_M_B -> Breathing animation mode
RGB_M_R -> Rainbow animation mode
RGB_M_SW -> Swirl animation mode
RGB_M_SN -> Snake animation mode
RGB_M_K -> "Knight Rider" animation mode
RGB_M_X -> Christmas animation mode
RGB_M_G -> Static gradient animation mode
*/
/*
Mouse controls:
Key -> Aliases -> Description
==================================================
KC_MS_UP -> KC_MS_U -> Mouse Cursor Up
KC_MS_DOWN -> KC_MS_D -> Mouse Cursor Down
KC_MS_LEFT -> KC_MS_L -> Mouse Cursor Left
KC_MS_RIGHT -> KC_MS_R -> Mouse Cursor Right
KC_MS_BTN1 -> KC_BTN1 -> Mouse Button 1
KC_MS_BTN2 -> KC_BTN2 -> Mouse Button 2
KC_MS_BTN3 -> KC_BTN3 -> Mouse Button 3
KC_MS_BTN4 -> KC_BTN4 -> Mouse Button 4
KC_MS_BTN5 -> KC_BTN5 -> Mouse Button 5
KC_MS_WH_UP -> KC_WH_U -> Mouse Wheel Up
KC_MS_WH_DOWN -> KC_WH_D -> Mouse Wheel Down
KC_MS_WH_LEFT -> KC_WH_L -> Mouse Wheel Left
KC_MS_WH_RIGHT -> KC_WH_R -> Mouse Wheel Right
KC_MS_ACCEL0 -> KC_ACL0 -> Set mouse acceleration to 0
KC_MS_ACCEL1 -> KC_ACL1 -> Set mouse acceleration to 1
KC_MS_ACCEL2 -> KC_ACL2 -> Set mouse acceleration to 2
*/
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch (id) {
}
return MACRO_NONE;
}

View File

@@ -0,0 +1,61 @@
![DZ60 split spacebar layout image](https://i.imgur.com/EFF7pBN.png)
# weeheavy's DZ60 split spacebar layout
* 2u left shift
* arrow cluster
* split spacebar with a center key
## Layouts
The base layout is ANSI QWERTY.
Key sizes (ASCII keyboards below match this scale):
1u = 4 chars = | |
1.25u = 5 chars = | |
1.5u = 6 chars = | |
1.75u = 7 chars = | |
2u = 8 chars = | |
2.25u = 9 chars = | |
2.75u = 11 chars = | |
6.25u = 25 chars = | |
### Layer 0: Base layout
Specialities:
* Arrow cluster
* FN1: access to layer 1
* F2: access to layer 2
```
,----------------------------------------------------------.
|Es||1 ||2 ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||0 ||- ||= || Bksp |
|----------------------------------------------------------+
|Tab ||Q ||W ||E ||R ||T ||Y ||U ||I ||O ||P ||[ ||] || \ |
|----------------------------------------------------------+
|Caps ||A ||S ||D ||F ||G ||H ||J ||K ||L ||; ||' || Enter |
|----------------------------------------------------------+
|Shift ||Z ||X ||C ||V ||B ||N ||M ||, ||. ||/ ||Sf||↑ ||Dl|
|----------------------------------------------------------+
|Ctl||Win||Alt|| Space ||FN1|| Space ||Al||F2||← ||↓ ||→ |
`----------------------------------------------------------'
```
### Layer 1: Utility
Specialities:
* F1-F12 keys when holding FN1
* Movement cluster on the right hand side
* Multimedia cluster on the bottom right
* RGB config on the left hand side
### Layer 2: Config and setup
Specialities:
* Reset key on ESC and backslash location
* Additional "B" key (a learning from my mistakes)

View File

@@ -0,0 +1,39 @@
#include "dz60.h"
// Make special keycodes more visible
#define ____ KC_TRNS
#define XXXX KC_NO
// Layer definition
#define L0 0
#define L1 1
#define L2 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base layer - ANSI QWERTY
[L0] = LAYOUT_2_shifts(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXX, 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_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, 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, XXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(L1), KC_SPC, KC_RALT, MO(L2), KC_LEFT, KC_DOWN, KC_RIGHT),
// Utility layer - RGB and multimedia control
[L1] = LAYOUT_2_shifts(
____, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ____, ____,
____, RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_R, ____, ____, KC_PSCR, ____, KC_PAUS, ____, ____, ____, ____,
____, RGB_HUI, RGB_HUD, ____, ____, ____, ____, KC_INS, KC_HOME, KC_PGUP, ____, ____, ____,
____, ____, RGB_SAI, RGB_SAD, ____, ____, ____, ____, ____, KC_END, KC_PGDN, ____, KC_MPLY, KC_VOLU, KC_MUTE,
____, RGB_VAI, RGB_VAD, ____, ____, ____, ____, ____, KC_MPRV, KC_VOLD, KC_MNXT),
// Setup layer - Reset an additional "b" button
[L2] = LAYOUT_2_shifts(
RESET, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
KC_B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, RESET,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____),
};

View File

@@ -2,7 +2,6 @@
"keyboard_name": "E6-V2",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {

View File

@@ -1,6 +1,5 @@
{
"keyboard_name": "Eagle/Viper",
"bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {

View File

@@ -0,0 +1,37 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#endif

View File

@@ -0,0 +1,119 @@
#include "ergo42.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
#define BASE 0
#define META 1
#define SYMB 2
#define GAME 3
#define ILLUST 4
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BASE
* ,------------------------------------------------. ,------------------------------------------------.
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ |
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
* | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : |
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
* | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
* | Ctrl | GUI | App |=>ILST|ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>ILST| \ |
* | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | |
* `------------------------------------------------' `------------------------------------------------'
*/
[BASE] = KEYMAP( \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \
KC_LCTRL, KC_LGUI, KC_APP, TG(ILLUST), LT(SYMB, KC_ESC), RCTL_T(KC_SPC), SFT_T(KC_TAB), KC_BSPC, LT(META, KC_ENT), KC_DELT, KC_PSCR, TG(GAME), TG(ILLUST), KC_JYEN \
),
/* META
* ,------------------------------------------------. ,------------------------------------------------.
* | 1 | 2 | 3 | 4 | 5 | 6 | [ | | ] | 7 | 8 | 9 | 0 | - | ^ |
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
* | Alt | F1 | |Muhen | Henk | | ( | | ) | Left | Down | Up |Right | | |
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
* | Sft | F2 | F3 | F4 | F5 | F6 | { | | } | F7 | F8 | F9 | F10 | F11 |\/Sft |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
* | Ctrl | GUI | App | |ESC/ |Space/|Tab/ | |Back |Enter/| Del |Reset | | | \ |
* | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | |
* `------------------------------------------------' `------------------------------------------------'
*/
[META] = KEYMAP( \
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_F1, XXXXXXX, KC_MHEN, KC_HENK, XXXXXXX, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \
_______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, SFT_T(KC_RO), \
_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, RESET, XXXXXXX, XXXXXXX, _______ \
),
/* SYMB
* ,------------------------------------------------. ,------------------------------------------------.
* | ! | " | # | $ | % | & | [ | | ] | ' | ( | ) | ~ | = | ~ |
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
* | Alt | | | | | | ( | | ) | | | | | + | * |
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
* | Sft | | | | | | { | | } | | | < | > | ? | \ |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
* | Ctrl | GUI | App | |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc | | | \ |
* | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | |
* `------------------------------------------------' `------------------------------------------------'
*/
[SYMB] = KEYMAP( \
S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), _______, _______, S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), S(KC_EQL), \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_SCLN), S(KC_QUOT), \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), \
_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______ \
),
/* GAME
* ,------------------------------------------------. ,------------------------------------------------.
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ |
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
* | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : |
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
* | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
* | Ctrl | GUI | App | | ESC |Space |Tab | |Back |Enter | Del |PrtSc |=>GAME| | \ |
* | | | | | | | | |Space | | | | | | |
* `------------------------------------------------' `------------------------------------------------'
*/
[GAME] = KEYMAP( \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \
KC_LCTRL, KC_LGUI, KC_APP, XXXXXXX, KC_ESC, KC_SPC, KC_TAB, KC_BSPC, KC_ENT, KC_DELT, KC_PSCR, _______, XXXXXXX, KC_JYEN \
),
/* ILLUST
* ,------------------------------------------------. ,------------------------------------------------.
* | Tab | H | G | I | P | C+J | C+] | | ] | Y | U | I | O | P | @ |
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
* | Alt | R | S | A | V |Sft+W | C+[ | | ) | H | J | K | L | ; | : |
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
* | Sft | Z | X | C | V | B | F | | } | N | M | , | . | / |\/Sft |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
* | Ctrl | GUI | App |=>ILST| ESC | Ctrl | Del | |Back |Enter/| Del |PrtSc |=>GAME|=>ILST| \ |
* | | | | | | | | |Space |~META | | | | | |
* `------------------------------------------------' `------------------------------------------------'
*/
[ILLUST] = KEYMAP( \
KC_TAB, KC_H, KC_G, KC_I, KC_P, LCTL(KC_J), LCTL(KC_BSLS), _______, _______, _______, _______, _______, _______, _______, \
KC_LALT, KC_R, KC_S, KC_A, KC_V, S(KC_W), LCTL(KC_RBRC), _______, _______, _______, _______, _______, _______, _______, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F, _______, _______, _______, _______, _______, _______, _______, \
KC_LCTRL, KC_LGUI, KC_APP, _______, KC_ESC, KC_RCTL, KC_DELT, _______, _______, _______, _______, XXXXXXX, _______, _______ \
)
};

View File

@@ -0,0 +1,3 @@
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -2,7 +2,6 @@
"keyboard_name": "ErgoDox EZ",
"url": "ergodox-ez.com",
"maintainer": "erez",
"bootloader": "halfkay",
"width": 19.5,
"height": 9.375,
"layouts": {

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -1,6 +1,5 @@
{
"keyboard_name": "Infinity Ergodox",
"bootloader": "KIIBOHD_BOOTLOADER",
"width": 19.5,
"height": 9.375,
"layouts": {

View File

@@ -6,7 +6,7 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_ortho_2x2(
KC_1, KC_U,
KC_1, KC_U,
KC_P, UP_URL
),
};
@@ -15,10 +15,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case UP_URL:
if (record->event.pressed) {
SEND_STRING("http://1upkeyboads.com");
SEND_STRING("http://1upkeyboards.com");
}
return false;
break;
}
return true;
}
}

View File

@@ -0,0 +1,31 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
#endif

View File

@@ -0,0 +1,73 @@
#include "fourier.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _BASE 0
#define _FN1 1
#define _FN2 2
enum custom_keycodes {
QWERTY = SAFE_RANGE,
};
#define KC_ KC_TRNS
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#define KC_FN1 LT(_FN1, KC_NO)
#define KC_FN2 LT(_FN2, KC_NO)
#define KC_SPFN LT(_FN1, KC_SPACE)
#define KC_RST RESET
#define KC_DBUG DEBUG
#define KC_RTOG RGB_TOG
#define KC_RMOD RGB_MOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
#define KC_RSAI RGB_SAI
#define KC_RSAD RGB_SAD
#define KC_RVAI RGB_VAI
#define KC_RVAD RGB_VAD
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = KC_KEYMAP(
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
TAB , Q , W , E , R , T , Y , U , I , O , P , DEL,BSPC,
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
ESC , A , S , D , F , G , H , J , K , L ,QUOT, SCLN ,
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, PGUP ,
//|-------`----`----`----`----`----|----`----`----`----`----`------|
LCTL ,LALT, FN1, ,ENTER , SPACE , FN2 , HOME, END , PGDN
//`-----+----+-----+-------------|--------+-----+-----+-----+------'
),
[_FN1] = KC_KEYMAP(
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , ,
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
DEL , F1 ,F2 , F3 , F4 , F5 , F6 ,MINS, EQL,LBRC,RBRC, BSLS ,
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
, F7 , F8 , F9 , F10, F11, F12, , , , UP , ,
//|-------`----`----`----`----`----|----`----`----`----`----`------|
, , , , , ,RGUI,LEFT ,DOWN ,RIGHT
//`-----+----+-----+-------------|--------+-----+-----+-----+------'
),
[_FN2] = KC_KEYMAP(
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, , ,
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
DEL ,RHUI,RSAI,RVAI, , , ,UNDS,PLUS,LCBR,RCBR, PIPE ,
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
,RHUD,RSAD,RVAD, , ,VOLU,VOLD, , , UP , ,
//|-------`----`----`----`----`----|----`----`----`----`----`------|
,RTOG,RMOD , , , , , LEFT, DOWN, RIGHT
//`-----+----+-----+-------------|--------+-----+-----+-----+------'
)
};

View File

@@ -0,0 +1,3 @@
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -20,7 +20,6 @@
"maintainer": "qmk",
"keyboard_folder": "gh60",
"width": 15,
"bootloader": "atmel-dfu",
"processor": "atmega32u4",
"height": 5,
"url": "http://qmk.fm/keyboards/gh60",

View File

@@ -0,0 +1,96 @@
# [dragonchasers](https://github.com/dragonchaser) GH60 layout
Layout derived from the default GH60 keymap.
![Photo of the keyboard](https://pbs.twimg.com/media/DQzlD0yX0AA8spX.jpg)
## Layers
### Base Layer
```
,-----------------------------------------------------------.
|Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
|-----------------------------------------------------------|
|FN | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space |Alt |Left |Down|Right|
`-----------------------------------------------------------'
Note: right FN triggers function layer,
left FN(CAPS) is a one-shot button for the macro layer
```
### Function Layer
```
,-----------------------------------------------------------.
|GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL |
|-----------------------------------------------------------|
| MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print|
|-----------------------------------------------------------|
| | ML|MDN|MR |MWD| | | | | | | |
|-----------------------------------------------------------|
|CAPS | | | | | | | | | | |PGUP| |
|-----------------------------------------------------------|
| | | | |Ctrl|HOME|PGD |END |
`-----------------------------------------------------------'
```
### Macro Layer
```
,-----------------------------------------------------------.
|DEF| |DUE| | | | | | | | | |GAM| ARR|
|-----------------------------------------------------------|
| |MAG|CLO|DUT|RBS|TIG| | | |COU|PSH| | | |
|-----------------------------------------------------------|
| |ADD|STS|DFF|FTC|PLL| | |LOG| | | |
|-----------------------------------------------------------|
| | | |COM| |BRN| | | | |MUT|VOL+|PLPA|
|-----------------------------------------------------------|
| | | | |APP |PREV|VOL-|NEXT|
`-----------------------------------------------------------'
Abbreviations:
--------------
DEF - return to default layer
DUE - enable git duet mode
GAM - backlight WASD
ARR - backlight arrows
-
MAG - git submodule sync --recursive \
&& git submodule update --init --recursive \
&& git submodule foreach --recursive "git co . \
&& git reset --hard && git clean -dffx"
CLO - git clone
DUT - git duet (when in duet mode)
RBS - git rebase
TIG - tig
COU - git checkout
PSH - git push
-
ADD - git add
STS - git status
DFF - git diff
FTC - git fetch
PLL - git pull
LOG - git log
-
COM - git commit (or git duet commit if in duet mode)
BRN - git branch
MUT - audio mute
VOL+ - increase volume
PLPA - play/pause
-
APP - application (windows menu key)
PREV - previous song
VOL- - decrease volume
NEXT - next song
Note: git commands are SEND_STRING macros sent to the
currently focused window Make sure it is your terminal :)
```
**NOTE:** an outdated version of this keymap is also present for the Satan keyboard, which is no longer maintained since I could not get my hands on a properly working PCB.

View File

@@ -0,0 +1,331 @@
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
#include <util/delay.h>
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _QW 0
#define _FL 1
#define _MC 2
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
bool git_duet = false;
bool backlight_arrows = false;
bool backlight_gaming = false;
enum custom_keycodes {
/* GIT related keycodes */
G_ADD = SAFE_RANGE, G_BRN, G_COM, G_COU, G_CLO,
G_DFF, G_DUE, G_DUT, G_FTC, G_LOG, G_MAG, G_MRG,
G_MRT, G_PSH, G_PLL, G_RBS, G_STH, G_STS, G_TIG,
/* Multi-media related keycodes */
A_MUTE, A_NEXT, A_PLPA, A_PREV, A_VOUP, A_VDWN,
/* System related shortcuts */
F_BTN, M_WAPP, K_ARR, K_WASD,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ,-----------------------------------------------------------.
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
* |-----------------------------------------------------------|
* |FN | A| S| D| F| G| H| J| K| L| ;| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /| Up |FN |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Left |Down|Right|
* `-----------------------------------------------------------'
*
* Note: right FN triggers function layer,
* left FN is a one-shot button for the macro layer
*/
[_QW] = { /* Layer 0: Qwerty */
{KC_ESC , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC},
{KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS},
{OSL(_MC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT },
{KC_LSFT , XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F_BTN, KC_UP},
{KC_LCTL , KC_LGUI, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT}
},\
/*
* ,-----------------------------------------------------------.
* |GRV|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL |
* |-----------------------------------------------------------|
* | MB3|MB2|MUP|MB1|MWU| | | |INS| |RST| | |Print|
* |-----------------------------------------------------------|
* | | ML|MDN|MR |MWD| | | | | | | |
* |-----------------------------------------------------------|
* |CAPS | | | | | | | | | | |PGUP| |
* |-----------------------------------------------------------|
* | | | | |Ctrl|HOME|PGD |END |
* `-----------------------------------------------------------'
*/
[_FL] = { /* Layer 1: Functions */
{KC_GRV , 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_DEL },
{KC_MS_BTN3 , KC_MS_BTN2 ,KC_MS_UP ,KC_MS_BTN1 , KC_MS_WH_UP , _______, _______, _______, KC_INS , _______, RESET , _______, _______ , KC_PSCREEN},
{KC_CAPS , KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT, KC_MS_WH_DOWN, _______, _______, _______, _______, _______, _______ , XXXXXXX, KC_TILDE},
{_______ , XXXXXXX , _______ , _______ , _______ , _______, _______, _______, _______, _______, _______ , _______, _______ , KC_PGUP},
{_______ , _______ , _______ , XXXXXXX , XXXXXXX , _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTRL, KC_HOME, KC_PGDOWN, KC_END}
},
/*
* ,-----------------------------------------------------------.
* |DEF| |DUE| | | | | | | | | |GAM| ARR|
* |-----------------------------------------------------------|
* | |MAG|CLO|DUT|RBS|TIG|MRT| | |COU|PSH| | | |
* |-----------------------------------------------------------|
* | |ADD|STS|DFF|FTC|PLL|MRG| |STH|LOG| | | F_OFF|
* |-----------------------------------------------------------|
* | | | |COM| |BRN| | | | |MUT|VOL+|PLPA|
* |-----------------------------------------------------------|
* | | | | |APP |PREV|VOL-|NEXT|
* `-----------------------------------------------------------'
*
* Abbreviations:
* --------------
* DEF - return to default layer
* DUE - enable git duet mode
* CLO - git clone
* DUT - git duet (when in duet mode)
* RBS - git rebase
* MAG - git submodule sync --recursive && git submodule update --init --recursive && git submodule foreach --recursive "git co . && git reset --hard && git clean -dffx"
* TIG - tig
* MRG - git merge
* MRT - git mergetool
* COU - git checkout
* PSH - git push
* ADD - git add
* STS - git status
* DFF - git diff
* FTC - git fetch
* PLL - git pull
* STH - git stash
* LOG - git log
* COM - git commit (or git duet commit if in duet mode)
* BRN - git branch
* APP - application (windows menu key)
* MUT - audio mute
* VOL+ - increase volume
* VOL- - decrease volume
* PLPA - play/pause
* PREV - previous song
* NEXT - next song
* ARR - backlight arrow keys
* GAM - backlight WASD
*
* Note: git commands are SEND_STRING macros sent to the
* currently focused window Make sure it is your terminal :)
*/
[_MC] = { /* Layer 2: Macros (Git & Multimedia) */
{TO(_QW), XXXXXXX,G_DUE , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, K_WASD , K_ARR },
{XXXXXXX, G_MAG ,G_CLO , G_DUT , G_RBS , G_TIG , G_MRT , XXXXXXX, XXXXXXX, G_COU , G_PSH , XXXXXXX, XXXXXXX, XXXXXXX},
{XXXXXXX, G_ADD ,G_STS , G_DFF , G_FTC , G_PLL , G_MRG , XXXXXXX, G_STH , G_LOG , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX},
{XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, G_COM , XXXXXXX, G_BRN , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , A_MUTE, A_PLPA, A_VOUP},
{XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_WAPP , A_PREV, A_VDWN, A_NEXT}
},
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
/*
* Begin git layer
*/
case G_ADD:
SEND_STRING("git add ");
layer_off(_MC);
return false;break;
case G_BRN:
SEND_STRING("git branch\n");
layer_off(_MC);
return false;break;
case G_CLO:
SEND_STRING("git clone ");
layer_off(_MC);
return false;break;
case G_COM:
if(git_duet) {
SEND_STRING("git duet-commit ");
} else {
SEND_STRING("git commit ");
}
layer_off(_MC);
return false;break;
case G_COU:
SEND_STRING("git checkout ");
layer_off(_MC);
return false;break;
case G_DFF:
SEND_STRING("git diff\n");
layer_off(_MC);
return false;break;
case G_DUE:
git_duet = !git_duet;
if(git_duet) {
gh60_esc_led_on();
} else {
gh60_esc_led_off();
}
layer_off(_MC);
return false;break;
case G_DUT:
if(git_duet) {
SEND_STRING("git duet ");
}
layer_off(_MC);
return false; break;
case G_FTC:
SEND_STRING("git fetch ");
layer_off(_MC);
return false;break;
case G_LOG:
SEND_STRING("git log --graph\n");
layer_off(_MC);
return false;break;
case G_MAG:
// This is some git-magic to resync recursive submodule structures inside git projects (thx to https://github.com/jimmykarily)
SEND_STRING("git submodule sync --recursive && git submodule update --init --recursive && git submodule foreach --recursive \" git co . && git reset --hard && git clean -dffx \" \n");
layer_off(_MC);
return false; break;
case G_MRG:
SEND_STRING("git merge ");
layer_off(_MC);
return false;break;
case G_MRT:
SEND_STRING("git mergetool ");
layer_off(_MC);
return false;break;
case G_PLL:
SEND_STRING("git pull ");
layer_off(_MC);
return false;break;
case G_PSH:
SEND_STRING("git push ");
layer_off(_MC);
return false;break;
case G_RBS:
SEND_STRING("git rebase ");
layer_off(_MC);
return false;break;
case G_STH:
SEND_STRING("git stash ");
layer_off(_MC);
return false;break;
case G_STS:
SEND_STRING("git status\n");
layer_off(_MC);
return false;break;
case G_TIG:
SEND_STRING("tig\n");
layer_off(_MC);
return false;break;
/*
* End git layer
*/
/*
* Begin multimedia keys
*/
case A_MUTE:
register_code(KC_AUDIO_MUTE);
unregister_code(KC_AUDIO_MUTE);
layer_off(_MC);
return false;break;
case A_PLPA:
register_code(KC_MEDIA_PLAY_PAUSE);
unregister_code(KC_MEDIA_PLAY_PAUSE);
layer_off(_MC);
return false;break;
case A_VOUP:
register_code(KC_AUDIO_VOL_UP);
return false;break;
case A_VDWN:
register_code(KC_AUDIO_VOL_DOWN);
return false;break;
case A_PREV:
register_code(KC_MEDIA_PREV_TRACK);
unregister_code(KC_MEDIA_PREV_TRACK);
layer_off(_MC);
return false;break;
case A_NEXT:
register_code(KC_MEDIA_NEXT_TRACK);
unregister_code(KC_MEDIA_NEXT_TRACK);
layer_off(_MC);
return false;break;
/*
* End multimedia keys
*/
// Tap dance to get the app button mapped
case M_WAPP:
register_code(KC_APP);
unregister_code(KC_APP);
layer_off(_MC);
return false;break;
/*
* Begin multimedia keys
*/
case K_ARR:
backlight_arrows = !backlight_arrows;
if(backlight_arrows) {
gh60_poker_leds_on();
} else {
gh60_poker_leds_off();
}
layer_off(_MC);
return false;break;
case K_WASD:
backlight_gaming = !backlight_gaming;
if(backlight_gaming) {
gh60_wasd_leds_on();
} else {
gh60_wasd_leds_off();
}
layer_off(_MC);
return false; break;
case F_BTN:
gh60_fn_led_on();
layer_on(_FL);
return false;break;
}
/*
* End multimedia keys
*/
} else {
switch(keycode) {
/*
* Oneshots that will switch back to the default layer on KEY_UP
*/
case A_VOUP:
unregister_code(KC_AUDIO_VOL_UP);
layer_off(_MC);
return false;break;
case A_VDWN:
unregister_code(KC_AUDIO_VOL_DOWN);
layer_off(_MC);
return false;break;
case F_BTN:
layer_off(_FL);
gh60_fn_led_off();
return false;break;
}
}
return true;
};

View File

@@ -0,0 +1,47 @@
#include "gh60.h"
#include "action_layer.h"
#define _MA 0
#define _GA 1
#define _FL 2
#define _AR 3
#define TRNS KC_TRNS
#define trigger_time 400
#define LSHIFT OSM(MOD_LSFT)
#define SPACE LT(_AR, KC_SPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Main Layer
[_MA] = KEYMAP_HHKB(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_NO, KC_RALT, MO(_FL), KC_RCTRL),
//Function Layer
[_FL] = KEYMAP_HHKB(
KC_GRV, 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, KC_NO,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PSCR,
TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_MPLY,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
//Arrow keys layer (space bar)
[_AR] = KEYMAP_HHKB(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, KC_NO,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGUP, KC_UP, KC_PGDN, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_RGHT, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
//Game layer (fn + g)
[_GA] = KEYMAP_HHKB(
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_NO,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS),
};

View File

@@ -4,15 +4,17 @@ This keymap is only for 5 rows Helix keyboard.
## Layout
![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png)
![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png)
## Layer
|Priority|Number|Name|Discription|
| ---- | ---- | --- | --- |
|high|16|Adjust| keyboard local functions|
||4|Extra char| some charactors |
||3|Function| function keys |
|high|9|Adjust| keyboard local functions (violet)|
||8|KFunction| TenkeyPad function keys (bule)|
||7|Extra char| some charactors (red)|
||6|Function| function keys (blue)|
||2|Keypad|TenkeyPad|
||2|Dvorak|Dvorak|
||1|Colemak|Colemak|
|low|0|Qwerty|QWERTY (base)|
@@ -23,7 +25,9 @@ Adjust Layer has keyboard local function keys.
* LED control.
* Mac/Win mode change.
* Qwerty/Colemak/Dvorak change.
* Qwerty/Colemak/Dvorak/TenkeyPad change.
![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png)
### Mac mode and Win mode
@@ -32,42 +36,49 @@ Mac mode swap Alt/Win(GUI) key.
|mode|key|code|
| ---- | ---- | --- |
|Mac mode|Adjust + g(Qwerty)|AG_NORM|
|Win mode|Adjust + h(Qwerty)|AG_SWAP|
| |Adjust + t(Qwerty)| |
| |Adjust + h(Qwerty)| |
|Win mode|Adjust + t(Qwerty)|AG_SWAP|
| |Adjust + y(Qwerty)| |
### LED control
|command|key|code|
| ---- | ---- | --- |
|on/off|Adjust + ,(Qwerty)|RGB_TOG|
| |Adjust + v(Qwerty)| |
|change mode|Adjust + Right option |RGB_SMOD|
| |Adjust + c(Qwerty)| |
|HUE +|Adjust + .(Qwerty) |RGB_HUI|
| |Adjust + Left Control| |
|HUE -|Adjust + menu |RGB_HUD|
| |Adjust + Left Shift | |
|SAT +|Adjust + /(Qwerty) |RGB_SAI|
|on/off|Adjust + e(Qwerty)|RGB_TOG|
| |Adjust + i(Qwerty)| |
|change mode|Adjust + d(Qwerty) |RGB_SMOD|
| |Adjust + k(Qwerty)| |
|HUE +|Adjust + Left Control|RGB_HUI|
| |Adjust + Right Control| |
|HUE -|Adjust + Left Shift |RGB_HUD|
| |Adjust + Right Shift | |
|SAT +|Adjust + ;(Qwerty) |RGB_SAI|
| |Adjust + a(Qwerty) | |
|SAT -|Adjust + right hand left side Fn|RGB_SAD|
| |Adjust + z(Qwerty) | |
|Bright +|Adjust + Right Shift |RGB_VAI|
| |Adjust + s(Qwerty)| |
|Bright -|Adjust + right hand right side Fn|RGB_VAD|
| |Adjust + x(Qwerty) | |
|reset|Adjust + w(Qwerty)|RGBRST|
|SAT -|Adjust + z(Qwerty) |RGB_SAD|
| |Adjust + /(Qwerty) | |
|Bright +|Adjust + s(Qwerty) |RGB_VAI|
| |Adjust + l(Qwerty) | |
|Bright -|Adjust + x(Qwerty) |RGB_VAD|
| |Adjust + >(Qwerty) | |
|reset|Adjust + w|RGBRST|
### Qwerty, Colemak, Dvorak selection
### Qwerty, Colemak, Dvorak, TenkeyPad selection
|char layout|key|
| ---- | ---- |
|Qwerty | Adjust + j(Qwerty) |
| | Adjust + 5|
|Calemak| Adjust + k(Qwerty) |
| | Adjust + 4|
|Dvorak | Adjust + l(Qwerty) |
| | Adjust + 3|
|Qwerty | Adjust + 5 |
| | Adjust + 6 |
|Calemak| Adjust + 4 |
| | Adjust + 7 |
|Dvorak | Adjust + 3 |
| | Adjust + 8 |
|Keypad | Adjust + 2 |
| | Adjust + 9 |
## TenkeyPad layout
![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png)
## Note
![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg)
![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg)

View File

@@ -7,33 +7,38 @@
## キー配置
以下に、Qwerty配列時の、文字配列の図を示します。
![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png)
![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png)
## レイヤー
|優先順位|番号|名称|内容|
| ---- | ---- | --- | --- |
|高い|16|Adjust|機能キー(紫)|
||4|Extra char|記号類(|
||3|Function|ファンクションキー類(|
|高い|9|Adjust|機能キー(紫)|
||8|KFunction|テンキーパッド用ファンクションキー類(|
||7|Extra char|記号類(|
||6|Function|ファンクションキー類(青)|
||3|Keypad|テンキーパッド配列|
||2|Dvorak|Dvorak配列|
||1|Colemak|Colemak配列|
|低い|0|Qwerty|QWERTY配列ベース|
Qwerty/Colemak/Dvorak の各レイヤーは、後述する、Ajuest キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
Qwerty/Colemak/Dvorak/Keypad の各レイヤーは、後述する、Ajuestレイヤーの キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
Adjust レイヤーは、Adjust キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
Function レイヤーは、下段両端の4つのFnキーのどれかひとつを押している間だけ有効になり、矢印キー等のナビゲーションキーや F1, F2, ...F12キーなどが配置されています。
上の図の青色の刻印のキーのあるレイヤーです。
Function レイヤーは、Fn キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
Extra レイヤーは、下段中央部の Enter キーか BS キーを一定時間(0.2秒)以上押していると押している間だけ有効になり、'+=-_[]{}' の 8つの記号と「英数」キー、「かな」キーが配置されています。
このため、Enter/BS キーで Enter/BS を入力するには、Enter/BSキーを押して短時間ですぐ離してください。
上の図の赤色の刻印のキーのあるレイヤーです。
Extra レイヤーは、Enter キーを一定時間(0.1秒)以上押していると押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
このため、Enterキーで Enter を入力するには、Enterキーを押して短時間ですぐ離してください。
Adjust レイヤーは、Adjust キーを押している間有効になります。
Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。
Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。
### Adjust レイヤー
Ajust レイヤーは、Helix の標準キーマップ "default" から F1,F2..F12 を除き、右側にあった機能キーを
左側にも追加したものとなっています。
Ajust レイヤーは、LEDのコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列, TenkeyPad配列の切り替えが行えます。
LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列の切り替えが行えます。
![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png)
### MacモードとWinモード
キーボードには、Mac モードと、Win モードの二つのモードがあります。
@@ -44,12 +49,13 @@ LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak
|コマンド|指定キー|コード|
| ---- | ---- | --- |
|Macモード|Adjust + g(Qwerty)|AG_NORM|
|Winモード|Adjust + h(Qwerty)|AG_SWAP|
| |Adjust + t(Qwerty)| |
| |Adjust + h(Qwerty)| |
|Winモード|Adjust + t(Qwerty)|AG_SWAP|
| |Adjust + y(Qwerty)| |
Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。
Mac モードでは、上の配列図の「英数キーと「かなキーで英語モードと日本語モードの切り替えができます。
Mac モードでは、Extra レイヤー の「英数キーと「かなキーで英語モードと日本語モードの切り替えができます。
Winモードでは、該当のキーはどちらも共に Alt + `日本語IMEの切り替えとして入力されます。
@@ -60,35 +66,48 @@ Winモードでは、該当のキーはどちらも共に Alt + `日本語IME
|コマンド|指定キー|コード|
| ---- | ---- | --- |
|オン/オフ|Adjust + ,(Qwerty)|RGB_TOG|
| |Adjust + v(Qwerty)| |
|モード切り替え|Adjust + Right option |RGB_SMOD|
| |Adjust + c(Qwerty)| |
|色相 +|Adjust + .(Qwerty)|RGB_HUI|
| |Adjust + Left Control| |
|色相 -|Adjust + menu|RGB_HUD|
| |Adjust + Left Shift | |
|彩度 +|Adjust + /(Qwerty) |RGB_SAI|
|オン/オフ|Adjust + e(Qwerty)|RGB_TOG|
| |Adjust + i(Qwerty)| |
|モード切り替え|Adjust + d(Qwerty) |RGB_SMOD|
| |Adjust + k(Qwerty)| |
|色相 +|Adjust + Left Control|RGB_HUI|
| |Adjust + Right Control| |
|色相 -|Adjust + Left Shift |RGB_HUD|
| |Adjust + Right Shift | |
|彩度 +|Adjust + ;(Qwerty) |RGB_SAI|
| |Adjust + a(Qwerty) | |
|彩度 -|Adjust + 右手Fnの左側|RGB_SAD|
| |Adjust + z(Qwerty) | |
|明度 +|Adjust + Right Shift|RGB_VAI|
| |Adjust + s(Qwerty) | |
|明度 -|Adjust + 右手Fnの右側|RGB_VAD|
| |Adjust + x(Qwerty) | |
|彩度 -|Adjust + z(Qwerty) |RGB_SAD|
| |Adjust + /(Qwerty) | |
|明度 +|Adjust + s(Qwerty) |RGB_VAI|
| |Adjust + l(Qwerty) | |
|明度 -|Adjust + x(Qwerty) |RGB_VAD|
| |Adjust + >(Qwerty) | |
|リセット|Adjust + w|RGBRST|
### 文字配列選択
Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキーを使います。
Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。
|選択配列|指定キー|
| ---- | ---- |
|Qwerty | Adjust + j(Qwerty) |
| | Adjust + 5|
|Calemak| Adjust + k(Qwerty) |
| | Adjust + 4|
|Dvorak | Adjust + l(Qwerty) |
| | Adjust + 3|
|Qwerty | Adjust + 5 |
| | Adjust + 6 |
|Calemak| Adjust + 4 |
| | Adjust + 7 |
|Dvorak | Adjust + 3 |
| | Adjust + 8 |
|Keypad | Adjust + 2 |
| | Adjust + 9 |
## テンキーパッドのキー配置
以下に、テンキーパッド配列時の、文字配列の図を示します。
![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png)
図でわかるように、テンキーと F1,F2..F12 のキー入力ができる配列です。
F12キーは一定時間(0.2秒)以上押していると KFunc キーとして働き、押している間は、青色の刻印のキー入力を行えます。
F12 そのものを入力するときは押して短時間ですぐ離してください。
F12キーを押しているときは、F11キー は Adjust キーとなり、Adjust レイヤーが有効になります。
これによって、Qwerty 配列などに戻すことが可能になります。
## 備考
本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。
@@ -99,4 +118,4 @@ Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキー
* Control キーを左右共にホームポジションの行に移動。
* 左手親指に BackSpace キーを割り当てる。
![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg)
![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg)

View File

@@ -78,30 +78,45 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 6
#endif
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#define RGBLIGHT_LIMIT_VAL 130
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#else
#define RGBLIGHT_LIMIT_VAL 130
#endif
#endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 35
#else
#define RGBLIGHT_LIMIT_VAL 45
#endif
#endif
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGBLIGHT_ENABLE
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 330
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
#endif /* CONFIG_USER_H */

View File

@@ -27,23 +27,27 @@ extern uint8_t is_master;
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
#define _ADJUST 16
enum layer_number {
_QWERTY = 0,
_COLEMAK,
_DVORAK,
_KEYPAD,
_AUX,
_KAUX,
_LOWER,
_RAISE,
_PADFUNC,
_ADJUST,
};
enum custom_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
LOWER,
RAISE,
ADJUST,
BACKLIT,
KEYPAD,
EISU,
KANA,
ZERO2,
RGBRST
};
@@ -63,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
@@ -71,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / | Shift|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower |
* |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower |
* `-------------------------------------------------------------------------------------------------'
*/
[_QWERTY] = KEYMAP( \
@@ -79,8 +83,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_BSPC, LT(_RAISE,KC_ENT), \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \
MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
),
/* Colemak
@@ -93,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / | Shift|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower |
* |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower |
* `-------------------------------------------------------------------------------------------------'
*/
[_COLEMAK] = KEYMAP( \
@@ -101,8 +105,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \
KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_RCTL, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \
MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
),
/* Dvorak
@@ -115,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z | Shift|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower |
* |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower |
* `-------------------------------------------------------------------------------------------------'
*/
[_DVORAK] = KEYMAP( \
@@ -123,10 +127,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, \
KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_RCTL, \
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_GRV, KC_SLSH, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \
MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
),
/* Keypad
* ,-----------------------------------------. ,-----------------------------------------.
* | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | 0 | , | . | Enter| F5 | F10 | F12 | F12 | F5 | F10 | Enter| 0 | , | . |
* `-------------------------------------------------------------------------------------------------'
*/
[_KEYPAD] = KEYMAP( \
KC_TAB, KC_PSLS, KC_PAST, KC_DEL, KC_F1, KC_F6, KC_F1, KC_F6, KC_DEL, KC_TAB, KC_PSLS, KC_PAST, \
KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC, KC_F2, KC_F7, KC_F2, KC_F7, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9, \
KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS, KC_F3, KC_F8, KC_F3, KC_F8, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, \
KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_F4, KC_F9, KC_F11, KC_F11, KC_F4, KC_F9, KC_PPLS, KC_KP_1, KC_KP_2, KC_KP_3, \
KC_KP_0, KC_COMM, KC_PDOT, KC_PENT, KC_F5, KC_F10, LT(_PADFUNC,KC_F12),
LT(_PADFUNC,KC_F12),KC_F5, KC_F10, KC_PENT, KC_KP_0, KC_COMM, KC_PDOT \
),
/* AUX modifier key layer
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | 00 | | | | | | | | | | | 00 | |
* `-------------------------------------------------------------------------------------------------'
*/
[_KAUX] = KEYMAP( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, ZERO2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ZERO2, _______ \
),
/* Keypad function layer
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | Home | Up | PgUp | | PgUp | Up | Home | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_PADFUNC] = KEYMAP( \
XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_PSCR, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_PGUP, KC_PGUP, KC_UP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, KC_END, XXXXXXX, KC_PGDN,MO(_ADJUST),
MO(_ADJUST), KC_PGDN, XXXXXXX, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
/* Lower
* ,-----------------------------------------. ,-----------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
@@ -135,7 +204,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | PgDn | Left | Down | Right| End | | | End | Left | Down | Right| PgDn | |
* | | PgDn | Left | Down | Right| End |Adjust|Adjust| End | Left | Down | Right| PgDn | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | PrtSc| | | | | | | | | PrtSc| | |
* `-------------------------------------------------------------------------------------------------'
@@ -143,9 +212,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = KEYMAP( \
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_INS, XXXXXXX, XXXXXXX, KC_INS, KC_SLCK, KC_PAUS, XXXXXXX, KC_F12, \
_______, KC_PGUP, XXXXXXX, KC_UP, KC_DEL, KC_HOME, KC_HOME, KC_DEL, KC_UP, XXXXXXX, KC_PGUP, _______, \
_______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, \
XXXXXXX, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______ \
_______, KC_HOME, XXXXXXX, KC_UP, KC_DEL, KC_PGUP, KC_PGUP, KC_DEL, KC_UP, XXXXXXX, KC_HOME, _______, \
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX,KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, \
_______, _______, KC_PSCR, _______, _______, _______, MO(_ADJUST),
MO(_ADJUST), _______, _______, _______, KC_PSCR, _______, _______ \
),
/* Raise
@@ -166,28 +236,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_MINS), KC_MINS, KC_EQL, LSFT(KC_EQL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), KC_LBRC, KC_RBRC, LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, _______, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EISU, EISU, KANA, KANA, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, \
_______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______ \
MO(_ADJUST),MO(_ADJUST),XXXXXXX, _______, _______, XXXXXXX, _______,
_______, XXXXXXX, _______, _______, XXXXXXX,MO(_ADJUST),MO(_ADJUST) \
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------. ,-----------------------------------------.
* | | | |Dvorak|Colemk|Qwerty| | | | | | | |
* | | |Keypad|Dvorak|Colemk|Qwerty| |Qwerty|Colemk|Dvorak|Keypad| | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | Reset|RGBRST| | | Win | | | | | | | |
* | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | HUE+ | SAT+ | VAL+ |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | |
* | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | HUE- | SAT- | VAL- |RGB md|RGB ON| | | | | |RGB ON| HUE+ | SAT+ | VAL+ |
* | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | MODE | HUE- | SAT- | VAL- |
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_ADJUST] = KEYMAP( \
XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, COLEMAK, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
RGB_HUI, RGB_SAI, RGB_VAI, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, XXXXXXX, XXXXXXX, \
RGB_HUD, RGB_SAD, RGB_VAD,RGB_SMOD, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \
XXXXXXX, XXXXXXX, KEYPAD, DVORAK, COLEMAK, QWERTY, QWERTY, COLEMAK, DVORAK, KEYPAD, XXXXXXX, XXXXXXX, \
XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, \
RGB_HUI, RGB_SAI, RGB_VAI,RGB_SMOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF,RGB_SMOD, RGB_VAI, RGB_SAI, RGB_HUI, \
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \
),
/* AUX modifier key layer
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | BS | Enter| | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_AUX] = KEYMAP( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, KC_BSPC, LT(_RAISE,KC_ENT), \
_______, _______, _______, _______, _______, _______, _______ \
)
};
@@ -206,31 +299,32 @@ float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
// define variables for reactive RGB
bool TOG_STATUS = false;
int RGB_current_mode;
static uint32_t current_default_layer_state;
static int current_default_layer;
uint32_t default_layer_state_set_kb(uint32_t state) {
current_default_layer_state = state;
// 1<<_QWERTY - 1 == 1 - 1 == _QWERTY (=0)
// 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1)
current_default_layer = state - 1;
// 1<<_DVORAK - 2 == 4 - 2 == _DVORAK (=2)
if ( current_default_layer == 3 ) current_default_layer -= 1;
// 1<<_KEYPAD - 5 == 8 - 5 == _KEYPAD (=3)
if ( current_default_layer == 7 ) current_default_layer -= 4;
return state;
}
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
#ifdef RGBLIGHT_ENABLE
//rgblight_mode(RGB_current_mode);
#endif
layer_on(layer3);
} else {
layer_off(layer3);
}
void update_base_layer(int base)
{
if( current_default_layer != base ) {
eeconfig_update_default_layer(1UL<<base);
default_layer_set(1UL<<base);
layer_off(_AUX);
layer_off(_KAUX);
} else {
if( base < _KEYPAD )
layer_invert(_AUX);
else
layer_invert(_KAUX);
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
@@ -240,7 +334,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
persistent_default_layer_set(1UL<<_QWERTY);
update_base_layer(_QWERTY);
}
return false;
break;
@@ -249,7 +343,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_colemak);
#endif
persistent_default_layer_set(1UL<<_COLEMAK);
update_base_layer(_COLEMAK);
}
return false;
break;
@@ -258,75 +352,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_dvorak);
#endif
persistent_default_layer_set(1UL<<_DVORAK);
update_base_layer(_DVORAK);
}
return false;
break;
case LOWER:
case KEYPAD:
if (record->event.pressed) {
//not sure how to have keyboard check mode and set it to a variable, so my work around
//uses another variable that would be set to true after the first time a reactive key is pressed.
if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
} else {
TOG_STATUS = !TOG_STATUS;
#ifdef RGBLIGHT_ENABLE
//rgblight_mode(16);
#endif
}
layer_on(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} else {
#ifdef RGBLIGHT_ENABLE
//rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_dvorak);
#endif
TOG_STATUS = false;
layer_off(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
update_base_layer(_KEYPAD);
}
return false;
break;
case RAISE:
case ZERO2:
if (record->event.pressed) {
//not sure how to have keyboard check mode and set it to a variable, so my work around
//uses another variable that would be set to true after the first time a reactive key is pressed.
if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
} else {
TOG_STATUS = !TOG_STATUS;
#ifdef RGBLIGHT_ENABLE
//rgblight_mode(15);
#endif
}
layer_on(_RAISE);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} else {
#ifdef RGBLIGHT_ENABLE
//rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
#endif
layer_off(_RAISE);
TOG_STATUS = false;
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
SEND_STRING("00");
}
return false;
break;
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
case RGB_MOD:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
#endif
return false;
break;
case EISU:
if (record->event.pressed) {
if(keymap_config.swap_lalt_lgui==false){
@@ -356,7 +400,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
#endif
break;
@@ -368,9 +411,6 @@ void matrix_init_user(void) {
#ifdef AUDIO_ENABLE
startup_user();
#endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000));
@@ -428,36 +468,45 @@ static void render_logo(struct CharacterMatrix *matrix) {
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0};
matrix_write(matrix, logo);
#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_ANIMATIONS)
char buf[30];
if(rgblight_config.enable) {
snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ",
rgblight_config.mode,
rgblight_config.hue/RGBLIGHT_HUE_STEP,
rgblight_config.sat/RGBLIGHT_SAT_STEP,
rgblight_config.val/RGBLIGHT_VAL_STEP);
matrix_write(matrix, buf);
}
#endif
//matrix_write_P(&matrix, PSTR(" Split keyboard kit"));
}
// #define DEBUG_OLED_LAYER_DISPLAY
static const char Qwerty_name[] PROGMEM = " Qwerty";
static const char Colemak_name[] PROGMEM = " Colemak";
static const char Dvorak_name[] PROGMEM = " Dvorak";
static const char Keypad_name[] PROGMEM = " Keypad";
static const char Raise_name[] PROGMEM = ":Extra";
static const char AUX_name[] PROGMEM = ":AUX";
static const char KAUX_name[] PROGMEM = ":00";
static const char Padfunc_name[] PROGMEM = ":PadFunc";
static const char Lower_name[] PROGMEM = ":Func";
static const char Raise_name[] PROGMEM = ":Extra";
static const char Adjust_name[] PROGMEM = ":Adjust";
static const char *layer_names[] = {
[_QWERTY] = Qwerty_name,
[_COLEMAK] = Colemak_name,
[_DVORAK] = Dvorak_name,
[_RAISE] = Raise_name,
[_LOWER] = Lower_name,
[_KEYPAD] = Keypad_name,
[_AUX] = AUX_name,
[_KAUX] = KAUX_name,
[_LOWER] = Lower_name,
[_RAISE] = Raise_name,
[_PADFUNC]= Padfunc_name,
[_ADJUST] = Adjust_name
};
static int search_bit_form_lsb(uint32_t data)
{
int i;
for( i = 0; i < 32 && (data & 1)==0 ; data >>= 1, i++ )
{}
return i;
}
void render_status(struct CharacterMatrix *matrix) {
// Render to mode icon
@@ -473,21 +522,9 @@ void render_status(struct CharacterMatrix *matrix) {
}
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
#ifdef DEBUG_OLED_LAYER_DISPLAY
char buf[40];
#endif
int name_num;
uint32_t lstate;
name_num = search_bit_form_lsb(current_default_layer_state);
if( name_num < sizeof(layer_names)/sizeof(char *) ) {
matrix_write_P(matrix, layer_names[name_num]);
#ifdef DEBUG_OLED_LAYER_DISPLAY
} else {
snprintf(buf, sizeof(buf), "base=%d? ", name_num);
matrix_write(matrix, buf);
#endif
}
matrix_write_P(matrix, layer_names[current_default_layer]);
matrix_write_P(matrix, PSTR("\n"));
for( lstate = layer_state, name_num = 0;
lstate && name_num < sizeof(layer_names)/sizeof(char *);
@@ -495,11 +532,6 @@ void render_status(struct CharacterMatrix *matrix) {
if( (lstate & 1) != 0 ) {
if( layer_names[name_num] ) {
matrix_write_P(matrix, layer_names[name_num]);
#ifdef DEBUG_OLED_LAYER_DISPLAY
} else {
snprintf(buf, sizeof(buf), ":L=%d?", name_num);
matrix_write(matrix, buf);
#endif
}
}
}

View File

@@ -23,19 +23,50 @@ define HELIX_CUSTOMISE_MSG
$(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATION=$(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
endef
# Helix keyboard customize
# you can edit follows 4 Variables
# jp: 以下の4つの変数を必要に応じて編集します。
# you can edit follows 5 Variables
# jp: 以下の5つの変数を必要に応じて編集します。
OLED_ENABLE = no # OLED_ENABLE
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
#### Do not enable these with audio at the same time.
### Helix keyboard 'five_rows' keymap: convenient command line option
## make HELIX=<options> helix:five_rows
## option= oled | back | under | na | ios
## ex.
## make HELIX=oled helix:five_rows
## make HELIX=oled,back helix:five_rows
## make HELIX=oled,under helix:five_rows
## make HELIX=oled,back,na helix:five_rows
## make HELIX=oled,back,ios helix:five_rows
##
ifneq ($(strip $(HELIX)),)
ifeq ($(findstring oled,$(HELIX)), oled)
OLED_ENABLE = yes
endif
ifeq ($(findstring back,$(HELIX)), back)
LED_BACK_ENABLE = yes
else ifeq ($(findstring under,$(HELIX)), under)
LED_UNDERGLOW_ENABLE = yes
endif
ifeq ($(findstring na,$(HELIX)), na)
LED_ANIMATIONS = no
endif
ifeq ($(findstring ios,$(HELIX)), ios)
IOS_DEVICE_ENABLE = yes
endif
$(eval $(call HELIX_CUSTOMISE_MSG))
$(info )
endif
# Uncomment these for checking
# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。
# $(eval $(call HELIX_CUSTOMISE_MSG))
@@ -54,6 +85,10 @@ else
RGBLIGHT_ENABLE = no
endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
OPT_DEFS += -DIOS_DEVICE_ENABLE
endif
ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DRGBLIGHT_ANIMATIONS
endif

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -2,7 +2,6 @@
"keyboard_name": "Iris",
"url": "Keeb.io",
"maintainer": "qmk",
"bootloader": "",
"width": 14.5,
"height": 5,
"layouts": {

View File

@@ -0,0 +1,45 @@
/*
Copyright 2017 Danny Nguyen <danny@keeb.io>
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
/*
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
*/
#define TAPPING_TERM 200
#include "../../config.h"
#endif

View File

@@ -0,0 +1,158 @@
#include "iris.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
//keycode shorthands
#define KC____ KC_TRNS
#define KC_SYM MO(3)
#define KC_MAC TO(0)
#define KC_PC TO(1)
#define KC_GM TO(2)
#define KC_NAV LT(4, KC_TAB)
#define KC_NAVPC LT(5, KC_TAB)
//text editor shortcuts for NAV and NAVPC
#define KC_AL LALT(KC_LEFT)
#define KC_AR LALT(KC_RGHT)
#define KC_CL LCTL(KC_LEFT)
#define KC_CR LCTL(KC_RGHT)
#define KC_A_BS LALT(KC_BSPC)
#define KC_C_BS LALT(KC_BSPC)
//internet browser tab shortcuts and window swapping for Mac and Windows
#define KC_GSL LGUI(S(KC_LEFT))
#define KC_GSR LGUI(S(KC_RGHT))
#define KC_CPGD LCTL(KC_PGDN)
#define KC_CPGU LCTL(KC_PGUP)
#define KC_CMBS GUI_T(KC_BSPC)
#define KC_CTBS CTL_T(KC_BSPC)
#define KC_C_TAB LCTL(KC_TAB)
#define KC_G_TAB LGUI(KC_TAB)
#define KC_A_TAB LALT(KC_TAB)
//layer shorthands
#define _COLEMAK 0
#define _PC 1
#define _GAME 2
#define _SYMBOL 3
#define _NAV 4
#define _NAVPC 5
enum {
// SFT_LCK //tapdance declarations
COLEMAK = 0,
PC,
GAME,
SYMBOL,
NAV, //Navigation layer for Mac Colemak
NAVPC, //Navigation layer for PC Colemak
SFT_LCK //tapdance declaration
};
#define KC_SFLK TD(SFT_LCK) // alias for tapdance
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = KC_KEYMAP(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
NAV , A , R , S , T , D , H , N , E , I , O ,QUOT,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LCTL,LGUI,CMBS, SPC, SYM, LALT
// `----+----+----' `----+----+----'
),
[_PC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ ,
LGUI , LCTL , CTBS , ___ , ___ , ___
),
[_GAME] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ ,
TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ ,
I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ ,
LALT , LALT , SPC, BSPC, MAC, ___
),
[_SYMBOL] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC,
BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL ,
___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ ,
___ , ___ , A_BS, ___, ___ , ___
),
[_NAV] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
[_NAVPC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
};
// Shift vs. capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end)
};

View File

@@ -0,0 +1,3 @@
# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer.
# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls.
# Two Navigation layers, for Mac and Windows Colemak layers respectively.

View File

@@ -0,0 +1,7 @@
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,45 @@
/*
Copyright 2017 Danny Nguyen <danny@keeb.io>
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
/*
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
*/
#define TAPPING_TERM 200
#include "../../config.h"
#endif

View File

@@ -0,0 +1,158 @@
#include "iris.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
//keycode shorthands
#define KC____ KC_TRNS
#define KC_SYM MO(3)
#define KC_MAC TO(0)
#define KC_PC TO(1)
#define KC_GM TO(2)
#define KC_NAV LT(4, KC_TAB)
#define KC_NAVPC LT(5, KC_TAB)
//text editor shortcuts for NAV and NAVPC
#define KC_AL LALT(KC_LEFT)
#define KC_AR LALT(KC_RGHT)
#define KC_CL LCTL(KC_LEFT)
#define KC_CR LCTL(KC_RGHT)
#define KC_A_BS LALT(KC_BSPC)
#define KC_C_BS LALT(KC_BSPC)
//internet browser tab shortcuts and window swapping for Mac and Windows
#define KC_GSL LGUI(S(KC_LEFT))
#define KC_GSR LGUI(S(KC_RGHT))
#define KC_CPGD LCTL(KC_PGDN)
#define KC_CPGU LCTL(KC_PGUP)
#define KC_CMBS GUI_T(KC_BSPC)
#define KC_CTBS CTL_T(KC_BSPC)
#define KC_C_TAB LCTL(KC_TAB)
#define KC_G_TAB LGUI(KC_TAB)
#define KC_A_TAB LALT(KC_TAB)
//layer shorthands
#define _COLEMAK 0
#define _PC 1
#define _GAME 2
#define _SYMBOL 3
#define _NAV 4
#define _NAVPC 5
enum {
// SFT_LCK //tapdance declarations
COLEMAK = 0,
PC,
GAME,
SYMBOL,
NAV, //Navigation layer for Mac Colemak
NAVPC, //Navigation layer for PC Colemak
SFT_LCK //tapdance declaration
};
#define KC_SFLK TD(SFT_LCK) // alias for tapdance
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = KC_KEYMAP(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
NAV , A , R , S , T , D , H , N , E , I , O ,QUOT,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LCTL,LGUI,CMBS, SPC, SYM, LALT
// `----+----+----' `----+----+----'
),
[_PC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ ,
LGUI , LCTL , CTBS , ___ , ___ , ___
),
[_GAME] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ ,
TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ ,
I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ ,
LALT , LALT , SPC, BSPC, MAC, ___
),
[_SYMBOL] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC,
BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL ,
___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ ,
___ , ___ , A_BS, ___, ___ , ___
),
[_NAV] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
[_NAVPC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
};
// Shift vs. capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end)
};

View File

@@ -0,0 +1,3 @@
# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer.
# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls.
# Two Navigation layers, for Mac and Windows Colemak layers respectively.

View File

@@ -0,0 +1,7 @@
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,119 @@
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2
#define _ADJUST 16
enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
RAISE,
ADJUST,
};
#define KC_ KC_TRNS
#define _______ KC_TRNS
#define KC_LOWR LOWER
#define KC_RASE RAISE
#define KC_RST RESET
#define KC_BL_S BL_STEP
#define KC_TGLW TG(_LOWER)
#define KC_TGRS TG(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_ESC , 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_MINS ,
KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_TGRS, KC_TGLW , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH,
KC_LGUI,KC_RASE,KC_SPC , KC_ENT ,KC_LOWR,KC_LALT
),
[_LOWER] = LAYOUT(
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_PGUP,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,KC_PLUS,_______,
_______ ,KC_HOME,KC_PGDN,KC_END,_______,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE,
_______,_______,_______,_______,_______,_______,_______, _______ ,_______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS ,
_______ ,_______,KC_DEL , KC_BSPC ,_______, KC_P0
),
[_RAISE] = LAYOUT(
KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
_______ ,_______, KC_UP ,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS ,KC_SLCK,KC_MUTE,
_______ ,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU,
_______,_______,_______,_______,_______,_______,_______, KC_PLUS,_______,_______,_______,_______,_______,KC_VOLD,
_______ ,_______,_______, KC_EQL,_______,_______
),
[_ADJUST] = LAYOUT(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------|
BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------'
_______, _______, _______, _______, _______, _______
// `--------+--------+--------' `--------+--------+--------'
)
};
#ifdef AUDIO_ENABLE
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
persistent_default_layer_set(1UL<<_QWERTY);
}
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 ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
}
return true;
}

View File

@@ -2,7 +2,6 @@
"keyboard_name": "jc65",
"url": "",
"maintainer": "qmk",
"bootloader": "",
"width": 16,
"height": 5,
"layouts": {

View File

@@ -2,7 +2,6 @@
"keyboard_name": "jc65",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 16,
"height": 5,
"layouts": {

View File

@@ -18,13 +18,24 @@ Note that this is a complete replacement for the firmware, so you won't be
using Bootmapper Client to change any keyboard settings, since not all the
USB report options are supported.
In addition you may need the AVR toolchain and `bootloadHID` for flashing:
In addition you may need the AVR toolchain and `bootloadHID` ([GitHub repo](https://github.com/whiteneon/bootloadHID)) for flashing:
For macOS:
```
$ brew cask install crosspack-avr
$ brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
```
For Linux:
```
$ sudo apt install libusb-dev
$ wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz
$ tar -xzf bootloadHID.2012-12-08.tar.gz
$ cd bootloadHID.2012-12-08/commandline
$ make
$ sudo cp bootloadHID /usr/bin
```
In order to use the `./program` script, which can reboot the board into
the bootloader, you'll need Python 2 with PyUSB installed:
@@ -32,7 +43,7 @@ the bootloader, you'll need Python 2 with PyUSB installed:
$ pip install pyusb
```
If you prefer, you can just build it and flash the firmware directly with
If you prefer (or are having issues with a `program` flash), you can just build it (`make jj40:<keymap-name>` and flash the firmware (`.hex` file) directly with
`bootloadHID` if you boot the board while holding down `Backspace` (`Top Right Key`) to keep it
in the bootloader:

View File

@@ -15,7 +15,7 @@ enum jj40_layers {
_FUNC,
_MFNC,
_ADJUST,
_DYN
_MOUSE
};
enum jj40_keycodes {
@@ -27,6 +27,7 @@ enum jj40_keycodes {
MLWR,
RAISE,
MRSE,
MOUSE,
DYNAMIC_MACRO_RANGE
};
@@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
* `-----------------------------------------------------------------------------------'
*/
[_FUNC] = KEYMAP(\
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
_______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ \
),
/* Lower
@@ -100,51 +101,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | Alt | Enter|Raise | | | | |
* | Mouse| | | | | Alt | Enter|Raise | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = KEYMAP(\
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | ???? | Reset|Qwerty| | | | | | | | | Del |
* | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
* | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | Prev | Vol- | Next | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | DYN | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = KEYMAP(\
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
),
/* DYN: Macro Recording and Playback
* ,-----------------------------------------------------------------------------------.
* | | | | | | REC1 | REC2 | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | PLAY1| PLAY2| | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | STOP | STOP | | | | | |
* | | | | | | STOP | STOP | Prev | Vol- | Next | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_DYN]= KEYMAP(\
_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
[_ADJUST] = KEYMAP(\
M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\
KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
/* Mouse
* ,-----------------------------------------------------------------------------------.
* | ESC | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_MOUSE] = KEYMAP(\
KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,\
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
),
[_MAC]= KEYMAP(\
@@ -247,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
// These would trigger when you hit a key mapped as M(0)
if (record->event.pressed) {
switch(keycode) {
case 0: // Some custom string here
SEND_STRING("");
return false;
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) {
// These would trigger when you hit a key mapped as M(0)
case 0:
if (record->event.pressed) {
return MACRO(
// SENSITIVE
END
);
}
break;
case 1: // Word Select
if (record->event.pressed) {
return MACRO(
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
END
);
}
case 2: // Word Select - MAC
if (record->event.pressed) {
return MACRO(
DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT),
END
);
}
case 1: // Word Select
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
return false;
case 2: // Word Select Mac
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
return false;
}
}
return MACRO_NONE;
};

View File

@@ -27,7 +27,7 @@ Activated when `fn` held in the above `qwerty` layer.
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
##### Lower Layer
Activated when `Lower` is held in the above `qwerty` layer.
@@ -56,38 +56,37 @@ Activated when `Lower` is held in the above `qwerty` layer.
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
| | | | | | Alt | Enter |Raise | | | | |
| Mouse | | | | | Alt | Enter |Raise | | | | |
##### Lower + Raise
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
* Audio controls in the same position as cursor keys from the `Raise` layer.
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
* Reset: Enter bootloader for flashing firmware to the keyboard.
* CAPS: Toggle caps lock.
* DYN: Enter `DYN` layer.
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
MRSE with RAISE and MFNC with FUNC respectively.
* REC1, REC2: Start recording macro.
* PLAY1, PLAY2: Playback macro.
* STOP1, STOP2: Stop recording macro.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| ???? | Reset|Qwerty| | | | | | | | | Del |
| CAPS | | | | | | | Mute | Vol+ | Play | | |
| MAC | | | | | | | Prev | Vol- | Next | | |
| | | | | | | | | DYN | | | |
##### DYN
Activated when `DYN` held along with `Lower` and `Raise`
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
| | | | | | | | | | | | |
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| | | | | | REC1 | REC2 | | | | | |
| | | | | | PLAY1| PLAY2| | | | | |
| | | | | | STOP | STOP | | | | | |
| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | |
| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | |
| | | | | | | | | | | | |
##### Mouse
Activated when `fn` and `Raise` are held together.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
| | | | | | | | | | | | |
| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
| | | | | | | | | | | | |
####Manual Flashing of hex file
`bootloadHID -r .build/jj40_ajp10304.hex`

View File

@@ -2,4 +2,5 @@ ifndef QUANTUM_DIR
include ../../../../Makefile
endif
AUDIO_ENABLE = no
AUDIO_ENABLE = no
MOUSEKEY_ENABLE = yes

View File

@@ -4,6 +4,6 @@
#include "../../config.h"
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_TERM 300
// #define TAPPING_TERM 300
#endif

View File

@@ -4,6 +4,7 @@
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2
#define _NUMPAD 3
enum custom_keycodes {
QWERTY = SAFE_RANGE,
@@ -15,66 +16,84 @@ void matrix_scan_user(void) {
// runs at every matrix scan.
}
enum {
TD_H_E = 0
};
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_H_E] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END)
};
// enum {
// TD_H_E = 0
// };
//
// qk_tap_dance_action_t tap_dance_actions[] = {
// [TD_H_E] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END)
// };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Ctrl | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = KEYMAP( \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
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 , \
TD(TD_H_E), KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
),
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Ctrl | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = KEYMAP( \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
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 , \
TO(_NUMPAD),KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = KEYMAP( \
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_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, _______, _______,_______, _______, _______, \
BL_TOGG, BL_STEP, BL_BRTG, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 | RGB | RGB | RGB | RGB |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | RGB | RGB | RGB | | | Next | Vol- | Vol+ | Play | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = KEYMAP( \
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_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, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, _______, \
_______, RGB_SAD, RGB_SAI, RGB_HUI, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 | RGB | RGB | RGB | RGB |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | RGB | RGB | RGB | RGB | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = KEYMAP( \
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_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, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, _______, \
RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
)
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 | Home | End | PgUp | PgDn |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Prev | Play | Next | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = KEYMAP( \
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_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_HOME, KC_END, KC_PGUP, KC_PGDN, _______, \
_______, KC_MRWD, KC_MPLY, KC_MNXT, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
),
/* Numpad
* ,-----------------------------------------------------------------------------------.
* | Esc | 7 | 8 | 9 | * | / | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | <-- | 4 | 5 | 6 | + | - | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | 1 | 2 | 3 |Enter |Enter | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Qwerty| 0 | . | . |Enter |Enter | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_NUMPAD] = KEYMAP( \
KC_ESC, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, _______, _______, _______, _______, _______, _______, \
KC_BSPC, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PMNS, _______, _______, _______, _______, _______, _______, \
_______, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT, _______, _______, _______, _______, _______, _______, \
TO(_QWERTY),KC_P0, KC_PDOT, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______ \
)
};

View File

@@ -1,2 +1,4 @@
# krusli
Default JJ40 keymap, adapted with RGB underglow support. GUI and LAlt is also swapped.
JJ40 keymap based off the default Planck layout with a numpad layer and with RGB underglow controls.
GUI and LAlt is also swapped to their standard positions.

View File

@@ -1 +1 @@
TAP_DANCE_ENABLE = yes
# TAP_DANCE_ENABLE = yes

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -139,7 +139,7 @@
* @brief Enables the SERIAL over USB subsystem.
*/
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL_USB TRUE
#define HAL_USE_SERIAL_USB FALSE
#endif
/**

View File

@@ -2,7 +2,6 @@
"keyboard_name": "KBD75",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 16,
"height": 6,
"layouts": {

View File

@@ -2,7 +2,6 @@
"keyboard_name": "KC60",
"url": "",
"maintainer": "qmk",
"bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {

View File

@@ -29,18 +29,18 @@ enum custom_keycodes {
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt |Adjust|Lower |Space |Space |Raise | Left | Down | Up |Right |
* |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT( \
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \

Some files were not shown because too many files have changed in this diff Show More