Creates a layouts/ folder for keymaps shared between keyboards (#1609)
* include variables and .h files as pp directives * start layout compilation * split ergodoxes up * don't compile all layouts for everything * might seg fault * reset layouts variable * actually reset layouts * include rules.mk instead * remove includes from rules.mk * update variable setting * load visualizer from path * adds some more examples * adds more layouts * more boards added * more boards added * adds documentation for layouts * use lowercase names for LAYOUT_ * add layout.json files for each layout * add community folder, default keymaps for layouts * touch-up default layouts * touch-up layouts, some keyboard rules.mk * update documentation for layouts * fix up serial/i2c switches
This commit is contained in:
		
							parent
							
								
									7260fc3eef
								
							
						
					
					
						commit
						d2ff66a985
					
				
					 451 changed files with 1651 additions and 1477 deletions
				
			
		
							
								
								
									
										7
									
								
								layouts/community/ergodox/pvinis/Changelog.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								layouts/community/ergodox/pvinis/Changelog.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
## v0.3
 | 
			
		||||
 | 
			
		||||
*2016-10-11*
 | 
			
		||||
 | 
			
		||||
### Starting point
 | 
			
		||||
 | 
			
		||||
* The starting point of this keymap. A beginner layout, and a couple placeholders.
 | 
			
		||||
							
								
								
									
										65
									
								
								layouts/community/ergodox/pvinis/Readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								layouts/community/ergodox/pvinis/Readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
pvinis' keymap
 | 
			
		||||
==============
 | 
			
		||||
 | 
			
		||||
This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
 | 
			
		||||
 | 
			
		||||
[ez]: https://ergodox-ez.com/
 | 
			
		||||
 | 
			
		||||
## Table of Contents
 | 
			
		||||
 | 
			
		||||
* [Todo](#todo)
 | 
			
		||||
* [Layouts](#layouts)
 | 
			
		||||
  - [Base layer](#base-layer)
 | 
			
		||||
  - [Beginner layer](#beginner-layer)
 | 
			
		||||
  - [QWERTY layer](#qwerty-layer)
 | 
			
		||||
  - [CARPALX layer](#carpalx-layer)
 | 
			
		||||
  - [System Control layer](#system-control-layer)
 | 
			
		||||
  - [Template layers](#template-layers)
 | 
			
		||||
* [Building](#building)
 | 
			
		||||
 | 
			
		||||
# Todo
 | 
			
		||||
 | 
			
		||||
- [ ] Generate images from keymap
 | 
			
		||||
- [ ] Implement algernon's heatmap
 | 
			
		||||
- [ ] Implement `KC_POP`
 | 
			
		||||
 | 
			
		||||
# Layouts
 | 
			
		||||
 | 
			
		||||
## Base layer
 | 
			
		||||
 | 
			
		||||
This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
 | 
			
		||||
Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
 | 
			
		||||
Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
 | 
			
		||||
 | 
			
		||||
[hammerspoon]: http://www.hammerspoon.org/
 | 
			
		||||
 | 
			
		||||
## Beginner layer
 | 
			
		||||
 | 
			
		||||
This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
 | 
			
		||||
 | 
			
		||||
## QWERTY layer
 | 
			
		||||
 | 
			
		||||
This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
 | 
			
		||||
 | 
			
		||||
## CARPALX layer
 | 
			
		||||
 | 
			
		||||
This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
 | 
			
		||||
 | 
			
		||||
[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
 | 
			
		||||
[white]: https://github.com/mw8/white_keyboard_layout
 | 
			
		||||
 | 
			
		||||
## System Control layer
 | 
			
		||||
 | 
			
		||||
This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
 | 
			
		||||
 | 
			
		||||
## Template layers
 | 
			
		||||
 | 
			
		||||
I have two commented out layers that are just templates, so I can easily create a new layer.
 | 
			
		||||
 | 
			
		||||
# Building
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ git clone https://github.com/qmk/qmk_firmware.git
 | 
			
		||||
$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
 | 
			
		||||
$ make
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										475
									
								
								layouts/community/ergodox/pvinis/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										475
									
								
								layouts/community/ergodox/pvinis/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,475 @@
 | 
			
		|||
// pvinis' ergodox keymap
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "mousekey.h"
 | 
			
		||||
 | 
			
		||||
// easier name for left ctrl-alt-gui
 | 
			
		||||
#define ALLM(kc) LCAG(kc)
 | 
			
		||||
 | 
			
		||||
// layers
 | 
			
		||||
enum {
 | 
			
		||||
  BASE = 0,
 | 
			
		||||
  BEGIN,
 | 
			
		||||
  QWERTY,
 | 
			
		||||
  CARPALX,
 | 
			
		||||
  SYSCTL,
 | 
			
		||||
  MOUSE,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// extra keys
 | 
			
		||||
enum {
 | 
			
		||||
  NONE = 0,
 | 
			
		||||
 | 
			
		||||
  // tap dance
 | 
			
		||||
  TD_FLSH, // flash keyboard
 | 
			
		||||
  TD_LAYR, // SYSCTL and MOUSE layer switch
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// application selection
 | 
			
		||||
// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
 | 
			
		||||
#define AP_SLCK ALLM(KC_S)
 | 
			
		||||
#define AP_XCOD ALLM(KC_X)
 | 
			
		||||
#define AP_MSGR ALLM(KC_M)
 | 
			
		||||
 | 
			
		||||
// keymaps
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* BASE
 | 
			
		||||
 * the base of the keyboard.
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
			
		||||
 * |4x FLASH|      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | 
			
		||||
 *   |      |      |      |      |      |                                       |SYSCTL|      |      |      |      |
 | 
			
		||||
 *   `----------------------------------'                                       `----------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |BEGIN |QWERTY|       |      |      |
 | 
			
		||||
 *                                 ,------|------|------|       |------+--------+------.
 | 
			
		||||
 *                                 |      |      |CARPAL|       |Slack |        |      |
 | 
			
		||||
 *                                 |Backsp|LShift|------|       |------| Enter  |Space |
 | 
			
		||||
 *                                 |      |      |SYSCTL|       |Msngr |        |      |
 | 
			
		||||
 *                                 `--------------------'       `----------------------'
 | 
			
		||||
 */
 | 
			
		||||
[BASE] = LAYOUT_ergodox(
 | 
			
		||||
 TD(TD_FLSH)    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO          ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO          ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
,KC_NO          ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO          ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
 | 
			
		||||
                                                          ,TG(BEGIN)  ,TD(TD_LAYR)
 | 
			
		||||
                                                                      ,TG(MOUSE)
 | 
			
		||||
                                                  ,KC_BSPC  ,KC_LSFT  ,TD(TD_LAYR)
 | 
			
		||||
 | 
			
		||||
                ,KC_NO    ,KC_NO  ,KC_NO       ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                ,KC_NO    ,KC_NO  ,KC_NO       ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                          ,KC_NO  ,KC_NO       ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                ,KC_NO    ,KC_NO  ,KC_NO       ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                                  ,MO(SYSCTL)  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
 | 
			
		||||
   ,TG(SYSCTL)  ,KC_NO
 | 
			
		||||
   ,AP_SLCK
 | 
			
		||||
   ,AP_MSGR     ,KC_ENT  ,KC_SPC
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* BEGIN
 | 
			
		||||
 * a beginner's keymap i currently use.
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
			
		||||
 * |        |   1  |   2  |   3  |   4  |   5  | opt  |           |   6  |   7  |   8  |   9  |   0  |   -  |   =    |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 | 
			
		||||
 * |  Tab   |   Q  |   W  |   E  |   R  |   T  |   [  |           |   ]  |   Y  |   U  |   I  |   O  |   P  |   \    |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |Esc/Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  | Enter  |
 | 
			
		||||
 * |--------+------+------+------+------+------|   (  |           |   )  |------+------+------+------+------+--------|
 | 
			
		||||
 * | LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   /  | RShift |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | 
			
		||||
 *   |      |   `  |  Cmd |      | Cmd  |                                       |      |      |      |   '  |      |
 | 
			
		||||
 *   `----------------------------------'                                       `----------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |      |      |       |      |      |
 | 
			
		||||
 *                                 ,------|------|------|       |------+--------+------.
 | 
			
		||||
 *                                 |      |      |      |       |      |        |      |
 | 
			
		||||
 *                                 |      |      |------|       |------|        |      |
 | 
			
		||||
 *                                 |      |      |      |       |      |        |      |
 | 
			
		||||
 *                                 `--------------------'       `----------------------'
 | 
			
		||||
 */
 | 
			
		||||
[BEGIN] = LAYOUT_ergodox(
 | 
			
		||||
 KC_TRNS          ,KC_1    ,KC_2     ,KC_3     ,KC_4      ,KC_5    ,KC_LALT
 | 
			
		||||
,KC_TAB           ,KC_Q    ,KC_W     ,KC_E     ,KC_R      ,KC_T    ,KC_LBRC
 | 
			
		||||
,CTL_T(KC_ESC)    ,KC_A    ,KC_S     ,KC_D     ,KC_F      ,KC_G
 | 
			
		||||
,KC_LSFT          ,KC_Z    ,KC_X     ,KC_C     ,KC_V      ,KC_B    ,KC_LPRN
 | 
			
		||||
,KC_TRNS          ,KC_GRV  ,KC_LGUI  ,KC_LEFT  ,KC_RIGHT
 | 
			
		||||
 | 
			
		||||
                                                                   ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
                                                                             ,KC_TRNS
 | 
			
		||||
                                                         ,KC_TRNS  ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
 | 
			
		||||
                ,KC_6       ,KC_7  ,KC_8     ,KC_9     ,KC_0     ,KC_MINS    ,KC_EQL
 | 
			
		||||
                ,KC_RBRC    ,KC_Y  ,KC_U     ,KC_I     ,KC_O     ,KC_P       ,KC_BSLS
 | 
			
		||||
                            ,KC_H  ,KC_J     ,KC_K     ,KC_L     ,KC_SCLN    ,KC_ENT
 | 
			
		||||
                ,KC_RPRN    ,KC_N  ,KC_M     ,KC_COMM  ,KC_DOT   ,KC_SLSH    ,KC_RSFT
 | 
			
		||||
                                   ,KC_TRNS  ,KC_DOWN  ,KC_TRNS  ,KC_QUOT    ,KC_TRNS
 | 
			
		||||
 | 
			
		||||
      ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
      ,KC_TRNS
 | 
			
		||||
      ,KC_TRNS  ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* QWERTY
 | 
			
		||||
 * the default qwerty keymap. not really used, but i'll keep it here for now.
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
			
		||||
 * |        |   1  |   2  |   3  |   4  |   5  |      |           |      |   6  |   7  |   8  |   9  |   0  |        |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 | 
			
		||||
 * |        |   Q  |   W  |   E  |   R  |   T  |      |           |      |   Y  |   U  |   I  |   O  |   P  |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   /  |        |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | 
			
		||||
 *   |      |      |      |      |      |                                       |      |      |      |      |      |
 | 
			
		||||
 *   `----------------------------------'                                       `----------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |      |      |       |      |      |
 | 
			
		||||
 *                                 ,------|------|------|       |------+--------+------.
 | 
			
		||||
 *                                 |      |      |      |       |      |        |      |
 | 
			
		||||
 *                                 |      |      |------|       |------|        |      |
 | 
			
		||||
 *                                 |      |      |      |       |      |        |      |
 | 
			
		||||
 *                                 `--------------------'       `----------------------'
 | 
			
		||||
 */
 | 
			
		||||
[QWERTY] = LAYOUT_ergodox(
 | 
			
		||||
 KC_TRNS    ,KC_1     ,KC_2     ,KC_3     ,KC_4     ,KC_5    ,KC_TRNS
 | 
			
		||||
,KC_TRNS    ,KC_Q     ,KC_W     ,KC_E     ,KC_R     ,KC_T    ,KC_TRNS
 | 
			
		||||
,KC_TRNS    ,KC_A     ,KC_S     ,KC_D     ,KC_F     ,KC_G
 | 
			
		||||
,KC_TRNS    ,KC_Z     ,KC_X     ,KC_C     ,KC_V     ,KC_B    ,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_6  ,KC_7     ,KC_8     ,KC_9     ,KC_0       ,KC_TRNS
 | 
			
		||||
                ,KC_TRNS    ,KC_Y  ,KC_U     ,KC_I     ,KC_O     ,KC_P       ,KC_TRNS
 | 
			
		||||
                            ,KC_H  ,KC_J     ,KC_K     ,KC_L     ,KC_SCLN    ,KC_TRNS
 | 
			
		||||
                ,KC_TRNS    ,KC_N  ,KC_M     ,KC_COMM  ,KC_DOT   ,KC_SLSH    ,KC_TRNS
 | 
			
		||||
                                   ,KC_TRNS  ,KC_TRNS  ,KC_TRNS  ,KC_TRNS    ,KC_TRNS
 | 
			
		||||
 | 
			
		||||
      ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
      ,KC_TRNS
 | 
			
		||||
      ,KC_TRNS  ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* CARPALX
 | 
			
		||||
 * the keymap i would like to transition to.
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
			
		||||
 * |        |   1  |   2  |   3  |   4  |   5  |      |           | RIGHT|   6  |   7  |   8  |   9  |   0  |        |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 | 
			
		||||
 * |        |   Q  |   G  |   M  |   L  |   W  |      |           |  L1  |   Y  |   F  |   U  |   B  |   ;  |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |   D  |   S  |   T  |   N  |   R  |------|           |------|   I  |   A  |   E  |   O  |   H  |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           | Meh  |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |   Z  |   X  |   C  |   V  |   J  |      |           |      |   K  |   P  |   ,  |   .  |   /  |        |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | 
			
		||||
 *   |      |      |      |      |      |                                       |  Up  |      |      |      |      |
 | 
			
		||||
 *   `----------------------------------'                                       `----------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |      |      |       |      |      |
 | 
			
		||||
 *                                 ,------|------|------|       |------+------+------.
 | 
			
		||||
 *                                 |      |      |      |       |      |      |      |
 | 
			
		||||
 *                                 |      |      |------|       |------|      |      |
 | 
			
		||||
 *                                 |      |      |      |       |      |      |      |
 | 
			
		||||
 *                                 `--------------------'       `--------------------'
 | 
			
		||||
 */
 | 
			
		||||
[CARPALX] = LAYOUT_ergodox(
 | 
			
		||||
 KC_TRNS    ,KC_1     ,KC_2     ,KC_3     ,KC_4     ,KC_5    ,KC_TRNS
 | 
			
		||||
,KC_TRNS    ,KC_Q     ,KC_G     ,KC_M     ,KC_L     ,KC_W    ,KC_TRNS
 | 
			
		||||
,KC_TRNS    ,KC_D     ,KC_S     ,KC_T     ,KC_N     ,KC_R
 | 
			
		||||
,KC_TRNS    ,KC_Z     ,KC_X     ,KC_C     ,KC_V     ,KC_J    ,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_6  ,KC_7     ,KC_8     ,KC_9     ,KC_0       ,KC_TRNS
 | 
			
		||||
                ,KC_TRNS    ,KC_Y  ,KC_F     ,KC_U     ,KC_B     ,KC_SCLN    ,KC_TRNS
 | 
			
		||||
                            ,KC_I  ,KC_A     ,KC_E     ,KC_O     ,KC_H       ,KC_TRNS
 | 
			
		||||
                ,KC_TRNS    ,KC_K  ,KC_P     ,KC_COMM  ,KC_DOT   ,KC_SLSH    ,KC_TRNS
 | 
			
		||||
                                   ,KC_TRNS  ,KC_TRNS  ,KC_TRNS  ,KC_TRNS    ,KC_TRNS
 | 
			
		||||
 | 
			
		||||
      ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
      ,KC_TRNS
 | 
			
		||||
      ,KC_TRNS  ,KC_TRNS  ,KC_TRNS
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* SYSCTL
 | 
			
		||||
 * a keymap to control my system.
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,------------------------------------------------------.
 | 
			
		||||
 * |   ^    |      |      |      |      |      |      |           |      |      |      |          |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+----------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      | Mute | Home |    Up    | End  |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+----------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |------|           |------|VolUp | Left |   Down   |Right |      | Lock   |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+----------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |VolDn | Prev |Play/Pause| Next |      | Sleep  |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+----------+------+------+--------'
 | 
			
		||||
 *   |      |      |      |      |      |                                       |      |          |      |      | Power|
 | 
			
		||||
 *   `----------------------------------'                                       `--------------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |      |      |       |      |      |
 | 
			
		||||
 *                                 ,------|------|------|       |------+------+------.
 | 
			
		||||
 *                                 |      |      |      |       |      |      |      |
 | 
			
		||||
 *                                 |      |      |------|       |------|      |      |
 | 
			
		||||
 *                                 |      |      |  ^   |       |      |      |      |
 | 
			
		||||
 *                                 `--------------------'       `--------------------'
 | 
			
		||||
 */
 | 
			
		||||
[SYSCTL] = LAYOUT_ergodox(
 | 
			
		||||
 KC_TRNS    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
 | 
			
		||||
                                                      ,KC_NO  ,KC_NO
 | 
			
		||||
                                                              ,KC_NO
 | 
			
		||||
                                              ,KC_NO  ,KC_NO  ,KC_TRNS
 | 
			
		||||
 | 
			
		||||
 /*,KC_POP ///  */,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
 | 
			
		||||
 /* /// ,KC_PTRN*/,KC_NO    ,KC_MUTE  ,KC_HOME  ,KC_UP    ,KC_END   ,KC_NO    ,KC_NO
 | 
			
		||||
                            ,KC_VOLU  ,KC_LEFT  ,KC_DOWN  ,KC_RGHT  ,KC_NO    ,LCTL(LSFT(KC_PWR))
 | 
			
		||||
                  ,KC_NO    ,KC_VOLD  ,KC_MPRV  ,KC_MPLY  ,KC_MNXT  ,KC_NO    ,KC_SLEP
 | 
			
		||||
                                      ,KC_TRNS  ,KC_NO    ,KC_NO    ,KC_NO    ,KC_PWR
 | 
			
		||||
 | 
			
		||||
          ,KC_NO  ,KC_NO
 | 
			
		||||
          ,KC_NO
 | 
			
		||||
          ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* MOUSE
 | 
			
		||||
 * a keymap to control my system.
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
			
		||||
 * |   ^    |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      | MsUp |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |------|           |------|      |MsLeft| MsDn |MsRght|      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | 
			
		||||
 *   |      |      |      |      |      |                                       |      |      |      |      |      |
 | 
			
		||||
 *   `----------------------------------'                                       `----------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |      |      |       |      |MidClk|
 | 
			
		||||
 *                                 ,------|------|------|       |------+------+------.
 | 
			
		||||
 *                                 |      |      |      |       |      |Left  |Right |
 | 
			
		||||
 *                                 |      |      |------|       |------| Click| Click|
 | 
			
		||||
 *                                 |      |      |  ^   |       |      |      |      |
 | 
			
		||||
 *                                 `--------------------'       `--------------------'
 | 
			
		||||
 */
 | 
			
		||||
[MOUSE] = LAYOUT_ergodox(
 | 
			
		||||
 KC_TRNS    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
 | 
			
		||||
                                                      ,KC_NO  ,KC_NO
 | 
			
		||||
                                                              ,KC_NO
 | 
			
		||||
                                              ,KC_NO  ,KC_NO  ,KC_TRNS
 | 
			
		||||
 | 
			
		||||
                  ,KC_NO    ,KC_NO  ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
 | 
			
		||||
                  ,KC_NO    ,KC_NO  ,KC_NO    ,KC_MS_U  ,KC_NO    ,KC_NO    ,KC_NO
 | 
			
		||||
                            ,KC_NO  ,KC_MS_L  ,KC_MS_D  ,KC_MS_R  ,KC_NO    ,KC_NO
 | 
			
		||||
                  ,KC_NO    ,KC_NO  ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
 | 
			
		||||
                                    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
 | 
			
		||||
 | 
			
		||||
          ,KC_NO  ,KC_NO
 | 
			
		||||
          ,KC_NO
 | 
			
		||||
          ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* TEMPLATE
 | 
			
		||||
 * keymap template with transparent and non-transparent keys
 | 
			
		||||
 *
 | 
			
		||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
 | 
			
		||||
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 | 
			
		||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
			
		||||
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | 
			
		||||
 *   |      |      |      |      |      |                                       |      |      |      |      |      |
 | 
			
		||||
 *   `----------------------------------'                                       `----------------------------------'
 | 
			
		||||
 *                                        ,-------------.       ,-------------.
 | 
			
		||||
 *                                        |      |      |       |      |      |
 | 
			
		||||
 *                                 ,------|------|------|       |------+--------+------.
 | 
			
		||||
 *                                 |      |      |      |       |      |        |      |
 | 
			
		||||
 *                                 |      |      |------|       |------|        |      |
 | 
			
		||||
 *                                 |      |      |      |       |      |        |      |
 | 
			
		||||
 *                                 `--------------------'       `----------------------'
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
[TEMPLATE] = LAYOUT_ergodox(
 | 
			
		||||
 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
 | 
			
		||||
,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  ,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  ,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
 | 
			
		||||
),
 | 
			
		||||
[TEMPLATE] = LAYOUT_ergodox(
 | 
			
		||||
 KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
 | 
			
		||||
                                                    ,KC_NO  ,KC_NO
 | 
			
		||||
                                                            ,KC_NO
 | 
			
		||||
                                            ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
 | 
			
		||||
                ,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                ,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                          ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                ,KC_NO    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
                                  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
 | 
			
		||||
 | 
			
		||||
        ,KC_NO  ,KC_NO
 | 
			
		||||
        ,KC_NO
 | 
			
		||||
        ,KC_NO  ,KC_NO  ,KC_NO
 | 
			
		||||
),
 | 
			
		||||
*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// keyboard initialization
 | 
			
		||||
void matrix_init_user() {
 | 
			
		||||
  ergodox_led_all_on();
 | 
			
		||||
  for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
 | 
			
		||||
    ergodox_led_all_set(i);
 | 
			
		||||
    wait_ms(5);
 | 
			
		||||
  }
 | 
			
		||||
  wait_ms(1000);
 | 
			
		||||
  for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
 | 
			
		||||
    ergodox_led_all_set(i);
 | 
			
		||||
    wait_ms(10);
 | 
			
		||||
  }
 | 
			
		||||
  ergodox_led_all_off();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// light up leds based on the layer
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
  uint8_t layer = biton32(layer_state);
 | 
			
		||||
 | 
			
		||||
  switch(layer) {
 | 
			
		||||
  case SYSCTL:
 | 
			
		||||
    ergodox_right_led_3_on();
 | 
			
		||||
    break;
 | 
			
		||||
  case MOUSE:
 | 
			
		||||
    ergodox_right_led_2_on();
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
    ergodox_right_led_1_off();
 | 
			
		||||
    ergodox_right_led_2_off();
 | 
			
		||||
    ergodox_right_led_3_off();
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// extra keys
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
			
		||||
  switch (id) {
 | 
			
		||||
  }
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// tap dances
 | 
			
		||||
 | 
			
		||||
// flash keyboard on 4x tap, with leds
 | 
			
		||||
void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  switch (state->count) {
 | 
			
		||||
  case 1:
 | 
			
		||||
    ergodox_right_led_3_on();
 | 
			
		||||
    break;
 | 
			
		||||
  case 2:
 | 
			
		||||
    ergodox_right_led_2_on();
 | 
			
		||||
    break;
 | 
			
		||||
  case 3:
 | 
			
		||||
    ergodox_right_led_1_on();
 | 
			
		||||
    break;
 | 
			
		||||
  case 4:
 | 
			
		||||
    ergodox_right_led_3_off();
 | 
			
		||||
    wait_ms(50);
 | 
			
		||||
    ergodox_right_led_2_off();
 | 
			
		||||
    wait_ms(50);
 | 
			
		||||
    ergodox_right_led_1_off();
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  if (state->count >= 4) {
 | 
			
		||||
    reset_keyboard();
 | 
			
		||||
    reset_tap_dance(state);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  ergodox_right_led_1_off();
 | 
			
		||||
  wait_ms(50);
 | 
			
		||||
  ergodox_right_led_2_off();
 | 
			
		||||
  wait_ms(50);
 | 
			
		||||
  ergodox_right_led_3_off();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SYSCTL on first tap, MOUSE ON second tap
 | 
			
		||||
void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  uint8_t layer = biton32(layer_state);
 | 
			
		||||
 | 
			
		||||
  switch(state->count) {
 | 
			
		||||
  case 1:
 | 
			
		||||
    switch(layer) {
 | 
			
		||||
    case SYSCTL:
 | 
			
		||||
      layer_off(SYSCTL);
 | 
			
		||||
      break;
 | 
			
		||||
    case MOUSE:
 | 
			
		||||
      layer_off(MOUSE);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      layer_on(SYSCTL);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
  case 2:
 | 
			
		||||
    layer_on(MOUSE);
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
 | 
			
		||||
  [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										7
									
								
								layouts/community/ergodox/pvinis/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								layouts/community/ergodox/pvinis/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
CONSOLE_ENABLE = no    # for debugging
 | 
			
		||||
 | 
			
		||||
SLEEP_LED_ENABLE = no  # no led blinking while sleeping
 | 
			
		||||
NKRO_ENABLE = yes      # disable for windows
 | 
			
		||||
TAP_DANCE_ENABLE = yes # tap-tap-tap
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue