summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml11
-rw-r--r--Dockerfile3
-rw-r--r--Makefile40
-rw-r--r--build_keyboard.mk5
-rw-r--r--doc/BUILD_GUIDE.md4
-rwxr-xr-xdoc/CYGWIN_GUIDE.md2
-rw-r--r--doc/HAND_WIRE.md6
-rw-r--r--doc/PCB_GUIDE.md6
-rw-r--r--keyboards/atreus/readme.md2
-rw-r--r--keyboards/ergodox/keymaps/ab/readme.md2
-rw-r--r--keyboards/ergodox/keymaps/albert/Makefile5
-rw-r--r--keyboards/ergodox/keymaps/albert/config.h12
-rw-r--r--keyboards/ergodox/keymaps/albert/keymap.c661
-rw-r--r--keyboards/ergodox/keymaps/albert/readme.md188
-rw-r--r--keyboards/ergodox/keymaps/algernon/readme.md4
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/Makefile1
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.pngbin79741 -> 79488 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.pngbin55349 -> 79904 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.pngbin50926 -> 62258 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.pngbin43551 -> 58886 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/keymap.c426
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/readme.md60
-rw-r--r--keyboards/ergodox/keymaps/german-kinergo/readme.md2
-rw-r--r--keyboards/ergodox/keymaps/mclennon_osx/README.md2
-rw-r--r--keyboards/ergodox/keymaps/pvinis/Readme.md2
-rw-r--r--keyboards/ergodox/keymaps/software_neo2/keymap.c64
-rw-r--r--keyboards/ergodox/keymaps/supercoder/readme.md2
-rw-r--r--keyboards/ergodox/keymaps/win10_writers-block/readme.md2
-rw-r--r--keyboards/ergodox/readme.md2
-rw-r--r--keyboards/handwired/onekey/keymaps/default/keymap.c2
-rwxr-xr-xkeyboards/handwired/reddot/Makefile3
-rwxr-xr-xkeyboards/handwired/reddot/config.h162
-rwxr-xr-xkeyboards/handwired/reddot/keymaps/default/keymap.c29
-rwxr-xr-xkeyboards/handwired/reddot/keymaps/default/readme.md1
-rwxr-xr-xkeyboards/handwired/reddot/readme.md24
-rwxr-xr-xkeyboards/handwired/reddot/reddot.c7
-rwxr-xr-xkeyboards/handwired/reddot/reddot.h20
-rwxr-xr-xkeyboards/handwired/reddot/rules.mk88
-rw-r--r--keyboards/hhkb/readme.md2
-rw-r--r--keyboards/lets_split/config.h3
-rw-r--r--keyboards/lets_split/keymaps/i2c/config.h3
-rw-r--r--keyboards/lets_split/keymaps/serial/config.h3
-rw-r--r--keyboards/lets_split/lets_split.h3
-rw-r--r--keyboards/lets_split/readme.md4
-rw-r--r--keyboards/lets_split/rev2/rev2.h8
-rw-r--r--keyboards/lets_split/rev2fliphalf/Makefile3
-rw-r--r--keyboards/lets_split/rev2fliphalf/config.h91
-rw-r--r--keyboards/lets_split/rev2fliphalf/rev2fliphalf.c32
-rw-r--r--keyboards/lets_split/rev2fliphalf/rev2fliphalf.h28
-rw-r--r--keyboards/lets_split/rev2fliphalf/rules.mk5
-rw-r--r--keyboards/lets_split/rules.mk10
-rw-r--r--keyboards/planck/keymaps/callum/keymap.c6
-rw-r--r--keyboards/planck/keymaps/callum/readme.md2
-rw-r--r--keyboards/planck/keymaps/espynn/Makefile63
-rw-r--r--keyboards/planck/keymaps/espynn/keyboard-layout.jpgbin0 -> 52908 bytes
-rw-r--r--keyboards/planck/keymaps/espynn/keymap.c151
-rw-r--r--keyboards/planck/keymaps/espynn/layout.json271
-rw-r--r--keyboards/planck/keymaps/espynn/readme.md18
-rw-r--r--keyboards/planck/keymaps/smt/Makefile3
-rw-r--r--keyboards/planck/keymaps/smt/keymap.c229
-rw-r--r--keyboards/planck/keymaps/smt/readme.md103
-rw-r--r--keyboards/planck/keymaps/yale/Makefile25
-rw-r--r--keyboards/planck/keymaps/yale/config.h11
-rw-r--r--keyboards/planck/keymaps/yale/keymap.c108
-rw-r--r--keyboards/planck/keymaps/yale/yale_layout_picture.jpgbin0 -> 58141 bytes
-rw-r--r--keyboards/preonic/keymaps/smt/keymap.c30
-rw-r--r--keyboards/preonic/keymaps/smt/readme.md40
-rw-r--r--keyboards/s60-x/readme.md2
-rw-r--r--quantum/keymap_extras/keymap_br_abnt2.h16
-rw-r--r--quantum/process_keycode/process_combo.c134
-rw-r--r--quantum/process_keycode/process_combo.h43
-rw-r--r--quantum/process_keycode/process_tap_dance.c7
-rw-r--r--quantum/process_keycode/process_tap_dance.h1
-rw-r--r--quantum/process_keycode/process_unicode.c11
-rw-r--r--quantum/quantum.c73
-rw-r--r--quantum/quantum.h5
-rw-r--r--quantum/quantum_keycodes.h11
-rw-r--r--tmk_core/common/action.c16
-rw-r--r--tmk_core/protocol/lufa.mk3
-rw-r--r--tmk_core/protocol/lufa/lufa.c116
-rw-r--r--tmk_core/protocol/lufa/outputselect.c56
-rw-r--r--tmk_core/protocol/lufa/outputselect.h41
-rw-r--r--util/travis_build.sh22
-rw-r--r--util/travis_compiled_push.sh64
84 files changed, 3412 insertions, 314 deletions
diff --git a/.travis.yml b/.travis.yml
index b206d1451b..18ecde7e3c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,12 +5,10 @@ language: c
branches:
except:
- /^.*-automated-build$/
+ - /^[0-9]+\.[0-9]+\.[0-9]+/
env:
global:
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
- matrix:
- - TARGET=all-keyboards AUTOGEN=true
- - TARGET=test AUTOGEN=false
before_install:
- wget http://www.atmel.com/images/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
install:
@@ -19,7 +17,8 @@ install:
before_script:
- avr-gcc --version
script:
-- make $TARGET AUTOGEN=$AUTOGEN
+- make test AUTOGEN=false
+- bash util/travis_build.sh
addons:
apt:
packages:
@@ -30,6 +29,4 @@ addons:
- libnewlib-arm-none-eabi
- diffutils
after_success:
- if [ "$AUTOGEN" == "true" ]; then
- bash util/travis_compiled_push.sh;
- fi
+ bash util/travis_compiled_push.sh
diff --git a/Dockerfile b/Dockerfile
index c42bbeb32a..744ded8579 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -25,4 +25,5 @@ ENV subproject=ez
ENV keymap=default
VOLUME /qmk
-WORKDIR /qmk \ No newline at end of file
+WORKDIR /qmk
+CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap}
diff --git a/Makefile b/Makefile
index 9cc77c55cc..9d9c9629d5 100644
--- a/Makefile
+++ b/Makefile
@@ -16,10 +16,10 @@ ifdef SILENT
endif
# We need to make sure that silent is always turned off at the top level
-# Otherwise the [OK], [ERROR] and [WARN] messags won't be displayed correctly
+# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
override SILENT := false
-ON_ERROR := error_occured=1
+ON_ERROR := error_occurred=1
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
@@ -34,13 +34,13 @@ ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE))
STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR))
BUILD_DIR := $(ROOT_DIR)/.build
TEST_DIR := $(BUILD_DIR)/test
-ERROR_FILE := $(BUILD_DIR)/error_occured
+ERROR_FILE := $(BUILD_DIR)/error_occurred
MAKEFILE_INCLUDED=yes
# Helper function to process the newt element of a space separated path
# It works a bit like the traditional functional head tail
-# so the CURRENT_PATH_ELEMENT will beome the new head
+# so the CURRENT_PATH_ELEMENT will become the new head
# and the PATH_ELEMENTS are the rest that are still unprocessed
define NEXT_PATH_ELEMENT
$$(eval CURRENT_PATH_ELEMENT := $$(firstword $$(PATH_ELEMENTS)))
@@ -84,7 +84,7 @@ endif
# Only consider folders with makefiles, to prevent errors in case there are extra folders
KEYBOARDS := $(notdir $(patsubst %/Makefile,%,$(wildcard $(ROOT_DIR)/keyboards/*/Makefile)))
-#Compability with the old make variables, anything you specify directly on the command line
+#Compatibility with the old make variables, anything you specify directly on the command line
# always overrides the detected folders
ifdef keyboard
KEYBOARD := $(keyboard)
@@ -106,7 +106,7 @@ endif
#$(info Keyboards: $(KEYBOARDS))
-# Set the default goal depening on where we are running make from
+# Set the default goal depending on where we are running make from
# this handles the case where you run make without any arguments
.DEFAULT_GOAL := all
ifneq ($(KEYMAP),)
@@ -170,7 +170,7 @@ define TRY_TO_MATCH_RULE_FROM_LIST_HELPER3
endef
# A recursive helper function for finding the longest match
-# $1 The list to be checed
+# $1 The list to be checked
# It works by always removing the currently matched item from the list
# and call itself recursively, until a match is found
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
@@ -180,7 +180,7 @@ define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2
$$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER3,$1))
# If a match is found in the current list, otherwise just return what we had before
ifeq ($$(RULE_FOUND),true)
- # Save the best match so far and call itself recursivel
+ # Save the best match so far and call itself recursively
BEST_MATCH := $$(MATCHED_ITEM)
BEST_MATCH_RULE := $$(RULE)
RULE_FOUND := false
@@ -337,7 +337,7 @@ define PARSE_SUBPROJECT
$$(eval $$(call PARSE_ALL_KEYMAPS))
endif
else
- # As earlier mentione,d when allsb is specified, we call our self recursively
+ # As earlier mentioned when allsb is specified, we call our self recursively
# for all of the subprojects
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS)))
endif
@@ -403,11 +403,11 @@ define BUILD
printf "$$(MAKE_MSG)\n\n"; \
$$(MAKE_CMD) $$(MAKE_VARS) SILENT=false; \
if [ $$$$? -gt 0 ]; \
- then error_occured=1; \
+ then error_occurred=1; \
fi;
endef
-# Just parse all the keymaps for a specifc keyboard
+# Just parse all the keymaps for a specific keyboard
define PARSE_ALL_KEYMAPS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
endef
@@ -428,7 +428,7 @@ define BUILD_TEST
printf "$$(TEST_MSG)\n"; \
$$(TEST_EXECUTABLE); \
if [ $$$$? -gt 0 ]; \
- then error_occured=1; \
+ then error_occurred=1; \
fi; \
printf "\n";
endif
@@ -448,7 +448,7 @@ endef
# Set the silent mode depending on if we are trying to compile multiple keyboards or not
-# By default it's on in that case, but it can be overriden by specifying silent=false
+# By default it's on in that case, but it can be overridden by specifying silent=false
# from the command line
define SET_SILENT_MODE
ifdef SUB_IS_SILENT
@@ -465,16 +465,16 @@ include $(ROOT_DIR)/message.mk
# The empty line is important here, as it will force a new shell to be created for each command
# Otherwise the command line will become too long with a lot of keyboards and keymaps
define RUN_COMMAND
-+error_occured=0;\
++error_occurred=0;\
$(COMMAND_$(SILENT_MODE)_$(COMMAND))\
-if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi;
+if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
endef
define RUN_TEST
-+error_occured=0;\
++error_occurred=0;\
$($(TEST)_COMMAND)\
-if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi;
+if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
endef
@@ -487,7 +487,7 @@ $(SUBPROJECTS): %: %-allkm
.PHONY: %
%:
# Check if we have the CMP tool installed
- cmp --version >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
+ cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
# Check if the submodules are dirty, and display a warning if they are
ifndef SKIP_GIT
git submodule status --recursive 2>/dev/null | \
@@ -514,7 +514,7 @@ endif
.PHONY: all
all: all-keyboards test-all
-# Define some shortcuts, mostly for compability with the old syntax
+# Define some shortcuts, mostly for compatibility with the old syntax
.PHONY: all-keyboards
all-keyboards: allkb-allsp-allkm
@@ -537,4 +537,4 @@ BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
-include $(ROOT_DIR)/testlist.mk \ No newline at end of file
+include $(ROOT_DIR)/testlist.mk
diff --git a/build_keyboard.mk b/build_keyboard.mk
index b85557d4a9..2c64e93a28 100644
--- a/build_keyboard.mk
+++ b/build_keyboard.mk
@@ -144,6 +144,11 @@ ifeq ($(strip $(MIDI_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
+ifeq ($(strip $(COMBO_ENABLE)), yes)
+ OPT_DEFS += -DCOMBO_ENABLE
+ SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
+endif
+
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
diff --git a/doc/BUILD_GUIDE.md b/doc/BUILD_GUIDE.md
index 70a4e10fa5..1750191836 100644
--- a/doc/BUILD_GUIDE.md
+++ b/doc/BUILD_GUIDE.md
@@ -6,7 +6,7 @@
1. If you have ever installed WinAVR, uninstall it.
2. 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**.
3. 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.
-4. 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. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
6. 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!
7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell".
@@ -38,7 +38,7 @@ Debian/Ubuntu example:
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](VAGRANT_GUIDE.md).
## Verify Your Installation
-1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application.
+1. If you haven't already, obtain this repository ([https://github.com/qmk/qmk_firmware](https://github.com/qmk/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application.
2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead.
3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`.
4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below.
diff --git a/doc/CYGWIN_GUIDE.md b/doc/CYGWIN_GUIDE.md
index 05e7a55f76..05d71961a4 100755
--- a/doc/CYGWIN_GUIDE.md
+++ b/doc/CYGWIN_GUIDE.md
@@ -234,7 +234,7 @@ If you did everything else right. This part should be a snap! Grab the latest so
###Build Planck and Load the Firmware
```
$ cd ~/src
-$ git clone https://github.com/jackhumbert/qmk_firmware.git
+$ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware/keyboards/planck
$ make
```
diff --git a/doc/HAND_WIRE.md b/doc/HAND_WIRE.md
index 18cb7011ff..17ef3116f9 100644
--- a/doc/HAND_WIRE.md
+++ b/doc/HAND_WIRE.md
@@ -183,7 +183,7 @@ As you move along, be sure that the Teensy is staying in place - recutting and s
From here, you should have a working keyboard with the correct firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch.
-To start out, download [the firmware](https://github.com/jackhumbert/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/).
+To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/).
The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `<project_name>` replaced by the name of your project - it'll need to be different from any other project in the `keyboards/` folder:
@@ -276,7 +276,7 @@ This can be accomplished by