summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitattributes93
-rw-r--r--doc/keymap.md29
-rw-r--r--keyboards/amj60/Makefile70
-rw-r--r--keyboards/amj60/amj60.c30
-rw-r--r--keyboards/amj60/amj60.h153
-rw-r--r--keyboards/amj60/config.h94
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/Makefile23
-rwxr-xr-xkeyboards/amj60/keymaps/iso_split_rshift/build.sh42
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/keymap.c147
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/readme.md30
-rwxr-xr-xkeyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh4
-rw-r--r--keyboards/amj60/readme.md57
-rw-r--r--keyboards/ergodox/infinity/infinity.c24
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo-Notes10
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo-layout.pdfbin0 -> 185426 bytes
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo_highres.pngbin0 -> 179460 bytes
-rw-r--r--keyboards/ergodox/keymaps/jafo/keymap.c183
-rw-r--r--keyboards/ergodox/keymaps/jafo/readme.md20
-rw-r--r--keyboards/ergodox/keymaps/ordinary/keymap.c347
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-base.pngbin99605 -> 98200 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-base.txt16
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-media.pngbin124144 -> 123435 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-media.txt36
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-special.pngbin63065 -> 68292 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-special.txt22
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-symbol.pngbin103735 -> 101255 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt20
-rw-r--r--keyboards/ergodox/keymaps/ordinary/readme.md71
-rw-r--r--keyboards/ergodox/keymaps/xyverz/keymap.c404
-rw-r--r--keyboards/ergodox/keymaps/xyverz/readme.md16
-rw-r--r--keyboards/kc60/keymaps/workman-dead/README.md17
-rw-r--r--keyboards/kc60/keymaps/workman-dead/kc60-wm-dead.pngbin0 -> 117155 bytes
-rw-r--r--keyboards/kc60/keymaps/workman-dead/keymap.c183
-rw-r--r--keyboards/kitten_paw/Makefile77
-rw-r--r--keyboards/kitten_paw/config.h162
-rw-r--r--keyboards/kitten_paw/keymaps/default/keymap.c51
-rw-r--r--keyboards/kitten_paw/kitten_paw.c30
-rw-r--r--keyboards/kitten_paw/kitten_paw.h47
-rw-r--r--keyboards/kitten_paw/led.c47
-rw-r--r--keyboards/kitten_paw/matrix.c164
-rw-r--r--keyboards/kitten_paw/readme.md32
-rw-r--r--keyboards/planck/keymaps/experimental/Makefile1
-rw-r--r--keyboards/planck/keymaps/experimental/keymap.c8
-rw-r--r--keyboards/planck/planck.c10
-rw-r--r--keyboards/preonic/preonic.c11
-rw-r--r--keyboards/readme.md1
-rw-r--r--keyboards/satan/keymaps/default/keymap.c4
-rw-r--r--keyboards/satan/keymaps/denolfe/keymap.c36
-rw-r--r--keyboards/satan/keymaps/iso_split_rshift/keymap.c16
-rw-r--r--keyboards/satan/keymaps/poker/keymap.c46
-rw-r--r--keyboards/satan/keymaps/stanleylai/keymap.c22
-rw-r--r--keyboards/satan/satan.h78
-rw-r--r--keyboards/tv44/keymaps/default/keymap.c2
-rw-r--r--keyboards/tv44/tv44.h2
-rw-r--r--quantum/process_keycode/process_unicode.c2
-rw-r--r--readme.md59
-rw-r--r--tmk_core/common.mk4
-rw-r--r--tmk_core/common/action.c82
-rw-r--r--tmk_core/common/action.h18
-rw-r--r--tmk_core/common/action_code.h28
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt2
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt2
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt90
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css106
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml26
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml36
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest66
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py76
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml192
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml68
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml228
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml1706
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml112
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml396
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml62
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml64
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml170
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml86
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml84
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml72
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml120
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml52
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml46
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml86
-rwxr-xr-xtmk_core/protocol/midi/Config/LUFAConfig.h186
-rw-r--r--tmk_core/tool/chibios/ch-bootloader-jump.patch204
86 files changed, 4770 insertions, 2749 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..8fd1fd7525
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,93 @@
+# auto for anything unspecified
+* text=auto
+
+# sources
+*.c text
+*.cc text
+*.cxx text
+*.cpp text
+*.c++ text
+*.hpp text
+*.h text
+*.h++ text
+*.hh text
+*.bat text
+*.coffee text
+*.css text
+*.htm text
+*.html text
+*.inc text
+*.ini text
+*.js text
+*.jsx text
+*.json text
+*.less text
+*.php text
+*.pl text
+*.py text
+*.rb text
+*.sass text
+*.scm text
+*.scss text
+*.sh text
+*.sql text
+*.styl text
+*.ts text
+*.xml text
+*.xhtml text
+
+# make files (need to always use lf for compatibility with Windows 10 bash)
+Makefile eol=lf
+*.mk eol=lf
+
+# make files (need to always use lf for compatibility with Windows 10 bash)
+*.sh eol=lf
+
+# documentation
+*.markdown text
+*.md text
+*.mdwn text
+*.mdown text
+*.mkd text
+*.mkdn text
+*.mdtxt text
+*.mdtext text
+*.txt text
+AUTHORS text
+CHANGELOG text
+CHANGES text
+CONTRIBUTING text
+COPYING text
+INSTALL text
+license text
+LICENSE text
+NEWS text
+readme text
+*README* text
+TODO text
+
+GRAPHICS
+*.ai binary
+*.bmp binary
+*.eps binary
+*.gif binary
+*.ico binary
+*.jng binary
+*.jp2 binary
+*.jpg binary
+*.jpeg binary
+*.jpx binary
+*.jxr binary
+*.pdf binary
+*.png binary
+*.psb binary
+*.psd binary
+*.svg text
+*.svgz binary
+*.tif binary
+*.tiff binary
+*.wbmp binary
+*.webp binary
+
+# hex files
+*.hex binary
diff --git a/doc/keymap.md b/doc/keymap.md
index d1985e567c..6f2a663fc8 100644
--- a/doc/keymap.md
+++ b/doc/keymap.md
@@ -455,6 +455,35 @@ Turn the backlight on and off without changing level.
+### 2.6 Swap-Hands Action
+The swap-hands action allows support for one-handed keyboards without requiring a separate layer. Set `ONEHAND_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd`
+
+### 2.6.1 Configuration
+The configuration table is a simple 2-dimensional array to map from column/row to new column/row. Example `hand_swap_config` for Planck:
+
+```
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+ {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+ {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+ {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
+};
+```
+
+Note that the array indices are reversed same as the matrix and the values are of type `keypos_t` which is `{col, row}` and all values are zero-based. In the example above, `hand_swap_config[2][4]` (third row, fifth column) would return {7, 2} (third row, eighth column).
+
+### 2.6.2 Advanced Swap Commands
+- **`ACTION_SWAP_HANDS()`** Swaps hands when pressed, returns to normal when released (momentary).
+- **`ACTION_SWAP_HANDS_TOGGLE()`** Toggles swap on and off with every keypress.
+- **`ACTION_SWAP_HANDS_TAP_TOGGLE()`** Toggles with a tap; momentary when held.
+- **`ACTION_SWAP_HANDS_TAP_KEY(key)`** Sends `key` with a tap; momentary swap when held.
+- **`ACTION_SWAP_HANDS_ON_OFF()`** Alias for `ACTION_SWAP_HANDS()`
+- **`ACTION_SWAP_HANDS_OFF_ON()`** Momentarily turns off swap.
+- **`ACTION_SWAP_HANDS_ON()`** Turns on swapping and leaves it on.
+- **`ACTION_SWAP_HANDS_OFF()`** Turn off swapping and leaves it off. Good for returning to a known state.
+
+
+
## 3. Layer switching Example
There are some ways to switch layer with 'Layer' actions.
diff --git a/keyboards/amj60/Makefile b/keyboards/amj60/Makefile
new file mode 100644
index 0000000000..1f695aa4d8
--- /dev/null
+++ b/keyboards/amj60/Makefile
@@ -0,0 +1,70 @@
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# 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*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+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
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
+MIDI_ENABLE ?= no # MIDI controls
+AUDIO_ENABLE ?= no
+UNICODE_ENABLE ?= no # Unicode
+BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
+
+ifndef QUANTUM_DIR
+ include ../../Makefile
+endif
diff --git a/keyboards/amj60/amj60.c b/keyboards/amj60/amj60.c
new file mode 100644
index 0000000000..993a5917db
--- /dev/null
+++ b/keyboards/amj60/amj60.c
@@ -0,0 +1,30 @@
+#include "amj60.h"
+#include "led.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ led_init_ports();
+};
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+ matrix_scan_user();
+};
+
+void led_init_ports(void) {
+ // * Set our LED pins as output
+ DDRB |= (1<<2);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // Turn capslock on
+ PORTB &= ~(1<<2);
+ } else {
+ // Turn capslock off
+ PORTB |= (1<<2);
+ }
+}
diff --git a/keyboards/amj60/amj60.h b/keyboards/amj60/amj60.h
new file mode 100644
index 0000000000..a0cb473310
--- /dev/null
+++ b/keyboards/amj60/amj60.h
@@ -0,0 +1,153 @@
+#ifndef AMJ60_H
+#define AMJ60_H
+
+#include "quantum.h"
+
+// readability
+#define XXX KC_NO
+
+/* AMJ60 layout to the best of my knowledge matrix layout
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49|
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
+}
+
+/*
+ * ANSI
+ * ,-----------------------------------------------------------.
+ * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
+ * |-----------------------------------------------------------|
+ * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
+ * |-----------------------------------------------------------|
+ * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
+ * |-----------------------------------------------------------|
+ * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
+ * |-----------------------------------------------------------|
+ * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
+ * `-----------------------------------------------------------'
+ */
+#define KEYMAP_ANSI( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
+ k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k20, k21, k22, k23,