Quellcode durchsuchen

Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware

Stephan Bösebeck vor 9 Jahren
Ursprung
Commit
3119778e0c

+ 3 - 1
.gitignore

@@ -1,3 +1,4 @@
+keyboard/planck/dfu-programmer.exe
 .dep
 *.o
 *.eep
@@ -18,4 +19,5 @@ build/
 # Eclipse Settings
 .cproject
 .project
-.settings/
+.settings/
+

+ 9 - 0
1-setup-path-win.bat

@@ -0,0 +1,9 @@
+@echo off
+setx /M path "%PATH%;C:\MinGW\bin;C:\MinGW\msys\1.0\bin" > nul 2>&1
+if NOT ["%errorlevel%"]==["0"] (
+	echo FAILED. Rerun with administrator privileges.
+	pause
+) else (
+	echo Success!
+	pause
+)

+ 41 - 0
2-setup-environment-win.bat

@@ -0,0 +1,41 @@
+@echo off
+setx /M test test > nul 2>&1
+if NOT ["%errorlevel%"]==["0"] (
+	echo FAILED. Rerun with administrator privileges.
+	pause
+	exit
+) 
+
+echo ------------------------------------------
+echo Installing wget and unzip
+echo ------------------------------------------
+mingw-get install msys-wget-bin msys-unzip-bin
+cd \MinGW\bin
+
+mkdir temp
+cd temp
+echo ------------------------------------------
+echo Installing dfu-programmer.
+echo ------------------------------------------
+wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip
+unzip dfu-programmer-win-0.7.2.zip
+copy dfu-programmer.exe ..
+
+echo ------------------------------------------
+echo Downloading driver
+echo ------------------------------------------
+wget http://iweb.dl.sourceforge.net/project/libusb-win32/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip
+unzip libusb-win32-bin-1.2.6.0.zip
+cp libusb-win32-bin-1.2.6.0\bin\x86\libusb0_x86.dll ../libusb0.dll
+
+echo ------------------------------------------
+echo Installing driver. Accept prompt.
+echo ------------------------------------------
+pnputil -i -a dfu-prog-usb-1.2.2\atmel_usb_dfu.inf
+
+cd ..
+rm -rf temp
+
+echo ------------------------------------------
+echo Finished!
+pause

Datei-Diff unterdrückt, da er zu groß ist
+ 55 - 0
BUILD_GUIDE.md


HAND-WIRE.md → HAND_WIRE.md


+ 3 - 2
README.md

@@ -12,8 +12,8 @@ The documentation below explains QMK customizations and elaborates on some of th
 
 ## Getting started
 
-* **If you're looking to customize a keyboard that currently runs QMK or TMK** , find your keyboard's directory under `/keyboard/` and read the README file. This will get you all set up.
-* Read the [QUICK_START.md](QUICK_START.md) if you want to hit the ground running with minimal fuss or you aren't a technical person and you just want to build the firmware with the least amount of hassle possible.
+* [BUILD_GUIDE.md](BUILD_GUIDE.md) contains instructions to set up a build environment, build the firmware, and deploy it to a keyboard. Once your build environment has been set up, all `make` commands to actually build the firmware must be run from a folder in `keyboard/`.
+* If you're looking to customize a keyboard that currently runs QMK or TMK, find your keyboard's directory under `keyboard/` and run the make commands from there.
 * If you're looking to apply this firmware to an entirely new hardware project (a new kind of keyboard), you can create your own Quantum-based project by using `./new_project.sh <project_name>`, which will create `/keyboard/<project_name>` with all the necessary components for a Quantum project.
 
 You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you.
@@ -309,3 +309,4 @@ what things are (and likely aren't) too risky.
 - EEPROM has around a 100000 write cycle.  You shouldn't rewrite the
   firmware repeatedly and continually; that'll burn the EEPROM
   eventually.
+					

+ 1 - 0
QUICK_START.md

@@ -23,3 +23,4 @@ See [doc/keymap.md](tmk_core/doc/keymap.md).
 The "easy" way to flash the firmware is using a tool from your host OS like the Teensy programming app. [ErgoDox EZ](keyboard/ergodox_ez/readme.md) gives a great example.
 
 If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version.
+	

+ 190 - 0
keyboard/ergodox_ez/keymaps/ordinary/keymap.c

@@ -0,0 +1,190 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+/*
+ * Ordinary Ergodox EZ keyboard layout, v1
+ * modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
+ * Details: http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html
+ */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |  Grv   |   1  |   2  |   3  |   4  |   5  | ESC  |           |  =   |   6  |   7  |   8  |   9  |   0  |   -    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Tab    |   Q  |   W  |   E  |   R  |   T  |   \  |           |   /  |   Y  |   U  |   I  |   O  |   P  |  ~L2   |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | ~L1    |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|  ~L1   |
+ * |--------+------+------+------+------+------|  [   |           |  ]   |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |'/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |LCtrl | Meh  |Hyper | LAlt | LGui |                                       | RGui | RAlt | Hyper|  Meh |RCtrl |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                      ,---------------.       ,---------------.
+ *                                      | Home   | End  |       | Left | Right  |
+ *                               ,------|--------|------|       |------+--------+------.
+ *                               |      |        | PgUp |       |  Up  |        |      |
+ *                               |Backsp|   Del  |------|       |------| Enter  | Space|
+ *                               |      |        | PgDn |       | Down |        |      |;
+ *                               `----------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_GRV, KC_1,        KC_2,  KC_3, KC_4, KC_5, KC_ESC,
+        KC_TAB, KC_Q,        KC_W,  KC_E, KC_R, KC_T, KC_BSLS,
+        KC_FN1, KC_A,        KC_S,  KC_D, KC_F, KC_G,
+        KC_LSFT,CTL_T(KC_Z), KC_X,  KC_C, KC_V, KC_B, KC_LBRC,
+        KC_LCTL,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI,
+                                             KC_HOME, KC_END,
+                                                      KC_PGUP,
+                                    KC_BSPC, KC_DEL,  KC_PGDN,
+                                                                // right hand
+                                                                KC_EQL,  KC_6, KC_7,    KC_8,    KC_9,        KC_0,          KC_MINS,
+                                                                KC_SLSH, KC_Y, KC_U,    KC_I,    KC_O,        KC_P,          LT(MDIA, KC_SLSH),
+                                                                         KC_H, KC_J,    KC_K,    KC_L,        KC_SCLN,       KC_FN1,
+                                                                KC_RBRC, KC_N, KC_M,    KC_COMM, KC_DOT,      CTL_T(KC_QUOT),KC_RSFT,
+                                                                               KC_RGUI, KC_RALT, ALL_T(KC_NO),MEH_T(KC_NO),  KC_RCTL,
+                                                                KC_LEFT, KC_RGHT,
+                                                                KC_UP,
+                                                                KC_DOWN, KC_ENT, KC_SPC
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | CAPS   |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |  CAPS  |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |    . |   0  |   =  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+       KC_CAPS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
+       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+                                               KC_TRNS,KC_TRNS,
+                                                       KC_TRNS,
+                                       KC_TRNS,KC_TRNS,KC_TRNS,
+                                                                     // right hand
+                                                                     KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+                                                                     KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,
+                                                                              KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,
+                                                                     KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_CAPS,
+                                                                                       KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,
+                                                                     KC_TRNS, KC_TRNS,
+                                                                     KC_TRNS,
+                                                                     KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      | Sleep|           |      |      |      |      |MyComp| Mail |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      | MsUp |ScrlUp|      |ScrlUp|           |ScrlUp|      |      |      |      | Mute |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |MsDown|ScrlDn|      |ScrlDn|           |ScrlDn|      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      | Lclk | Rclk |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | Stop |Refrsh|       | Prev | Next |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |Brwser|Brwser| Home |       |VolUp |      |      |
+ *                                 |Back  | Fwd  |------|       |------| Stop | Play |
+ *                                 |      |      |Search|       |VolDn |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_WH_U, KC_TRNS, KC_WH_U,
+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_D, KC_TRNS, KC_TRNS, KC_WH_D,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_WH_D,
+                                                    KC_WSTP, KC_WREF,
+                                                             KC_WHOM,
+                                           KC_WBAK, KC_TRNS, KC_WSCH,
+                                                                     // right hand
+                                                                     KC_WSCH,  KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_MAIL, KC_TRNS,
+                                                                     KC_WH_U,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS,
+                                                                               KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                                                     KC_WH_D,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                                                                        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+                                                                     KC_MPRV, KC_MNXT,
+                                                                     KC_VOLU,
+                                                                     KC_VOLD, KC_MSTP, KC_MPLY
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+        if (record->event.pressed) {
+          register_code(KC_RSFT);
+        } else {
+          unregister_code(KC_RSFT);
+        }
+        break;
+      }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void * matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void * matrix_scan_user(void) {
+
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+
+};

Datei-Diff unterdrückt, da er zu groß ist
+ 1122 - 0
keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex


BIN
keyboard/ergodox_ez/keymaps/ordinary/ordinary.png


+ 5 - 0
keyboard/ergodox_ez/keymaps/ordinary/readme.md

@@ -0,0 +1,5 @@
+# The Ordinary Layout. for  users of common keyboards
+
+You can read more about the reasoning behind this layout over at [Nicholas's blog](http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html). The idea is to make a layout that's as familiar as possible for users of "regular" keyboards.
+
+![Ordinary layout](ordinary.png)

Datei-Diff unterdrückt, da er zu groß ist
+ 237 - 0
keyboard/planck/CYGWIN_GUIDE.md


+ 27 - 3
keyboard/planck/PCB_GUIDE.md

@@ -3,10 +3,12 @@
 ## Setting up the environment
 
 ### Windows
+1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
+2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location.
+3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
+4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
+5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete!
 
-1. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler.
-2. Install [DFU-Programmer][dfu-prog] (the -win one).
-3. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver.
 
 ### Mac
 
@@ -52,6 +54,28 @@ Generally, the instructions to flash the PCB are as follows:
 4. Press the reset button on the PCB/press the key with the `RESET` keycode
 5. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here.
 
+## Troubleshooting
+If you see something like this
+
+          0 [main] sh 13384 sync_with_child: child 9716(0x178) died before initialization with status code 0xC0000142
+        440 [main] sh 13384 sync_with_child: *** child state waiting for longjmp
+    /usr/bin/sh: fork: Resource temporarily unavailable
+
+after running 'make' on Windows than you are encountering a very popular issue with WinAVR on Windows 8.1 and 10.
+You can easily fix this problem by replacing msys-1.0.dll in WinAVR/utils/bin with [this one](http://www.madwizard.org/download/electronics/msys-1.0-vista64.zip).
+Restart your system and everything should work fine!
+
+
+If you see this
+
+    dfu-programmer atmega32u4 erase
+    process_begin: CreateProcess(NULL, dfu-programmer atmega32u4 erase, ...) failed.
+    make (e=2): The system cannot find the file specified.
+    make: *** [dfu] Error 2
+
+when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to qmk_firmware/keyboard/planck.
+
+
 ## Quantum MK Firmware
 
 ### Keymap

+ 163 - 0
keyboard/planck/keymaps/lucas.c

@@ -0,0 +1,163 @@
+/* 
+This is the keymap of /u/deepshitgoeshere!
+Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german.
+The second layer has all the german umlauts I need and with capital and small letters on the 
+same layer there is no need to press shift+lower.
+This keymap is made to work with software implemented QWERTZ.
+The "Gaming" layer is mainly customized for CS:GO.
+If you have any question about this keymap feel free to shoot me a message on reddit!
+*/
+
+#include "keymap_common.h"
+#include "keymap_extras/keymap_german.h"
+#include "backlight.h"
+#include "debug.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Colemak   
+    * ,-----------------------------------------------------------------------.
+    * | Esc | q   | w   | f   | p   | g   | j   | l   | u   | y   | ;   |  -  |
+    * |-----------------------------------------------------------------------|
+    * | BS  | a   | r   | s   | t   | d   | h   | n   | e   | i   | o   |  '  |
+    * |-----------------------------------------------------------------------|
+    * | SFT | z   | x   | c   | v   | b   | k   | m   |  ,  |  .  |  /  | Ent |
+    * |-----------------------------------------------------------------------|
+    * | CTL | GUI | Tab | ALT |Lower|   Space   |Raise|Left |Down | Up  |Right|
+    * `-----------------------------------------------------------------------'
+    */
+  {KC_ESC,  KC_Q,    KC_W,   KC_F,    KC_P, KC_G, KC_J, KC_L, KC_U,    KC_Z,    DE_SCLN, DE_MINS},
+  {KC_BSPC, KC_A,    KC_R,   KC_S,    KC_T, KC_D, KC_H, KC_N, KC_E,    KC_I,    KC_O,    DE_QUOT},
+  {M(0),    KC_Y,    KC_X,   KC_C,    KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT,  DE_SLSH, KC_ENT},
+  {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+},
+[1] = { /* Symbols
+    * ,-----------------------------------------------------------------------.
+    * |     |     |     |     |     |     |     |     |     |     |  :  |     |
+    * |-----------------------------------------------------------------------|
+    * |     |     |     |     |     |     |     |     |     |     |     |  "  |
+    * |-----------------------------------------------------------------------|
+    * |     |     |     |     |     |     |     |     |  <  |  >  |  ?  |     |
+    * |-----------------------------------------------------------------------|
+    * |     |     |     |     |     |           |     |     |     |     |     |
+    * `-----------------------------------------------------------------------'
+    */
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT,  KC_TRNS},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1),    DE_MORE, DE_QST,  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}
+},
+[2] = { /* Raise
+    * ,-----------------------------------------------------------------------.
+    * |     |  Ä  |     |     |     |     |     |     |  Ü  |  Ö  |     |Game |
+    * |-----------------------------------------------------------------------|
+    * | Del |  ä  |     |  ß  |     |     |     |     |  ü  |  ö  |     |FVol+|
+    * |-----------------------------------------------------------------------|
+    * |     |     |     |     |     |     |     |     |Stop | Prv | Nxt |FVol-|
+    * |-----------------------------------------------------------------------|
+    * |LCTL |LGUI | Tab |LALT |Lower|   Space   |     |Mute |Vol- |Vol+ | P/P |
+    * `-----------------------------------------------------------------------'
+    */
+  {KC_NO,   S(DE_AE), KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,    KC_NO,   S(DE_UE), S(DE_OE), KC_NO,   F(4)},
+  {KC_DEL,  DE_AE,    KC_NO,   DE_SS,   KC_NO,   KC_NO,   KC_NO,    KC_NO,   DE_UE,    DE_OE,    KC_NO,   RALT(KC_F12)},
+  {KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,    KC_NO,   KC_MSTP,  KC_MPRV,  KC_MNXT, RALT(KC_F11)},
+  {KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_MUTE,  KC_VOLD,  KC_VOLU, KC_MPLY}
+},
+[3] = { /* Lower 
+    * ,-----------------------------------------------------------------------.
+    * |  ~  |  !  |  @  |  #  |  $  |  %  |  ^  |  &  |  *  |  (  |  )  |  +  |
+    * |-----------------------------------------------------------------------| 
+    * |  `  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |  =  |
+    * |-----------------------------------------------------------------------|
+    * |     |     |     |  |  |  [  |  ]  |  {  |  }  |  €  |     |  \  | Ent |
+    * |-----------------------------------------------------------------------|
+    * |LCTL |LGUI | Tab |LALT |     |   Space   |Raise|Home |PgDn |PgUp | End |
+    * `-----------------------------------------------------------------------'
+    */
+  {DE_TILD, DE_EXLM, DE_AT,   DE_HASH, DE_DLR,  DE_PERC, DE_CIRC,  DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS},
+  {DE_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,     KC_7,    KC_8,    KC_9,    KC_0,    DE_EQL},
+  {KC_NO,   KC_NO,   KC_NO,   DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR,  DE_RCBR, DE_EURO, KC_NO,   DE_BSLS, KC_ENT},
+  {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
+},
+[4] = { /* Function
+    * ,-----------------------------------------------------------------------.
+    * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
+    * |-----------------------------------------------------------------------|
+    * | F1  | F2  | F3  | F4  | F5  | F6  | F7  | F8  | F9  | F10 | F11 | F12 |
+    * |-----------------------------------------------------------------------|
+    * |     |     |     |     |     | KP- | KP+ |     |     |     |     |Reset| 
+    * |-----------------------------------------------------------------------|
+    * |     |Light|BL DN|BL UP|     |     |     |     |Mute |Vol- |Vol+ | P/P | 
+    * `-----------------------------------------------------------------------'
+    */
+  {KC_F13, KC_F14,  KC_F15, KC_F16, KC_F17,  KC_F18,  KC_F19,  KC_F20,  KC_F21,  KC_F22,  KC_F23,  KC_F24},
+  {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,  KC_NO,  KC_NO,   KC_PMNS, KC_PPLS, KC_NO,   KC_NO,   KC_NO,   RESET,   KC_NO},
+  {KC_NO,  BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[5] = { /* Gaming
+    * ,-----------------------------------------------------------------------.
+    * | Buy | ESC | q   | w   | e   | r   | t   | y   | u   | i   | o   |  p  |
+    * |-----------------------------------------------------------------------|
+    * | ENT | BS  | a   | s   | d   | f   | g   | h   | j   | k   | l   |  ;  |
+    * |-----------------------------------------------------------------------|
+    * | CTL | SFT | z   | x   | c   | v   | b   | n   |  m  |  ,  | Up  |  /  |
+    * |-----------------------------------------------------------------------|
+    * |     |     | Tab | ALT |     |   Space   |CrJmp| GUI |Left |Down |Right|
+    * `-----------------------------------------------------------------------'
+    */
+  {MO(6),   KC_ESC,  KC_Q,   KC_W,    KC_E,  KC_R,   KC_T,   KC_Z,         KC_U,    KC_I,    KC_O,    F(4)},
+  {KC_ENT,  KC_BSPC, KC_A,   KC_S,    KC_D,  KC_F,   KC_G,   KC_H,         KC_J,    KC_K,    KC_L,    DE_SCLN},
+  {KC_LCTL, KC_LSFT, KC_Y,   KC_X,    KC_C,  KC_V,   KC_B,   KC_N,         KC_M,    DE_DOT,  KC_UP,   DE_SLSH},
+  {KC_NO,   KC_NO,   KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT}
+},
+[6] = { /* Gaming 
+        /* CS:GO buy binds
+    * ,-----------------------------------------------------------------------.
+    * |     |     |     |     |     |     |     |     |  7  |  8  |  9  |     |
+    * |-----------------------------------------------------------------------|
+    * | BS  |     |     |     |     |     |     |     |  6  |  5  |  4  | End |
+    * |-----------------------------------------------------------------------|
+    * | CTL | SFT |     |     |     |     |     |     |  1  |  2  |  3  |Pgdn |
+    * |-----------------------------------------------------------------------|
+    * |     |     | Tab | ALT |     |   Space   |CrJmp|     |  0  | KP+ |PEnt |
+    * `-----------------------------------------------------------------------'
+    */
+  {KC_TRNS, KC_NO,   KC_Q,   KC_W,    KC_F,  KC_P,   KC_G,   KC_J,         KC_P7, KC_P8, KC_P9,   KC_NO},
+  {KC_BSPC, KC_NO,   KC_A,   KC_R,    KC_S,  KC_T,   KC_D,   KC_H,         KC_P4, KC_P5, KC_P6,   KC_END},
+  {KC_LCTL, KC_LSFT, KC_Y,   KC_X,    KC_C,  KC_V,   KC_B,   KC_K,         KC_P1, KC_P2, KC_P3,   KC_PGDN},
+  {KC_NO,   KC_NO,   KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT}
+},
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_MOMENTARY(2),              // to RAISE
+    [2] = ACTION_LAYER_MOMENTARY(3),              // to LOWER
+    [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC),         // to Function
+    [4] = ACTION_LAYER_TOGGLE(5),                 // toggle Gaming
+	[5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS),  //Shift on press, Caps on tap
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 
+{
+  switch(id) {
+    case 0: // M(0)
+        if (record->event.pressed) {
+            register_code(KC_LSFT);
+            layer_on(1);
+        } else {
+            layer_off(1);
+            unregister_code(KC_LSFT);
+        }
+        break;       
+    case 1: // M(1)
+        if (record->event.pressed) {
+            unregister_code(KC_LSFT);
+            register_code(DE_MORE);
+        } else {
+            unregister_code(DE_MORE);
+        }
+        break;    
+  }
+  return MACRO_NONE;
+
+};          

+ 1 - 2
new_project.sh

@@ -13,10 +13,9 @@ sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/config.h > keyboard/$KEYBOARD
 sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/README.md > keyboard/$KEYBOARD/README.md
 sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/Makefile > keyboard/$KEYBOARD/Makefile
 sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default.c > keyboard/$KEYBOARD/keymaps/default.c
-cp quantum/template/bootloader.hex keyboard/$KEYBOARD/bootloader.hex
 
 echo "######################################################"
 echo "# keyboard/$KEYBOARD project created. To start"
 echo "# working on things, use the following command:"
 echo "# cd keyboard/$KEYBOARD"
-echo "######################################################"
+echo "######################################################"

+ 19 - 0
quantum/keymap_extras/keymap_neo2.h

@@ -35,6 +35,25 @@
 #define NEO_UE DE_Y
 #define NEO_SS DE_UE
 
+#define NEO_DOT DE_DOT
+#define NEO_COMM DE_COMM
+
+#define NEO_1 DE_1
+#define NEO_2 DE_2
+#define NEO_3 DE_3
+#define NEO_4 DE_4
+#define NEO_5 DE_5
+#define NEO_6 DE_6
+#define NEO_7 DE_7
+#define NEO_8 DE_8
+#define NEO_9 DE_9
+#define NEO_0 DE_0
+#define NEO_MINS DE_SS
+
+#define NEO_ACUT DE_PLUS
+#define NEO_GRV DE_ACUT
+#define NEO_CIRC DE_CIRC
+
 #define NEO_L1_L KC_CAPS
 #define NEO_L1_R DE_HASH
 

+ 1 - 1
quantum/template/template.h

@@ -12,7 +12,7 @@
 // The second converts the arguments into a two-dimensional array
 #define KEYMAP( \
     k00, k01, k02, \
-      k10,  k11,   \
+      k10,  k11   \
 ) \
 { \
     { k00, k01,   k02 }, \