Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moves features to their own files (process_*), adds tap dance feature #460

Merged
merged 79 commits into from
Jun 29, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
6d3b8c5
non-working commit
jackhumbert Jun 12, 2016
819a448
working
jackhumbert Jun 12, 2016
2ebdeff
Merge branch 'master' into subprojects
jackhumbert Jun 13, 2016
e8645ac
subprojects implemented for planck
jackhumbert Jun 13, 2016
ccdb60d
pass a subproject variable through to c
jackhumbert Jun 13, 2016
305d3c7
consolidates clueboard revisions
jackhumbert Jun 13, 2016
7547fb3
Merge branch 'master' into subprojects
jackhumbert Jun 18, 2016
dbfa563
thanks for letting me know about conflicts..
jackhumbert Jun 18, 2016
ebc4c40
turn off audio for yang's
jackhumbert Jun 18, 2016
f5ea5c1
corrects starting paths for subprojects
jackhumbert Jun 18, 2016
49310b2
messing around with travis
jackhumbert Jun 18, 2016
c296a46
semicolon
jackhumbert Jun 18, 2016
4eb7c7b
travis script
jackhumbert Jun 18, 2016
dffa7af
travis script
jackhumbert Jun 18, 2016
41bfd58
script for travis
jackhumbert Jun 19, 2016
46ed5d5
correct directory (probably), amend files to commit
Jun 19, 2016
1d9c2c5
remove origin before adding
jackhumbert Jun 19, 2016
0a27c36
git pull, correct syntax
jackhumbert Jun 19, 2016
efc298c
git checkout
jackhumbert Jun 19, 2016
a2053bf
git pull origin branch
jackhumbert Jun 19, 2016
7f6bd83
where are we?
jackhumbert Jun 19, 2016
93ae041
where are we?
jackhumbert Jun 19, 2016
82335e4
Merge branch 'subprojects' of https://github.com/jackhumbert/qmk_firm…
jackhumbert Jun 19, 2016
f985bc4
merging
jackhumbert Jun 19, 2016
f43c640
force things to happen
jackhumbert Jun 19, 2016
193a88c
adds commit message, adds add
jackhumbert Jun 19, 2016
6b43b75
rebase, no commit message
jackhumbert Jun 19, 2016
7d0b93d
rebase branch
jackhumbert Jun 19, 2016
dc3c408
idk!
jackhumbert Jun 19, 2016
8446f33
try just pull
jackhumbert Jun 19, 2016
f67ad15
fetch - merge
jackhumbert Jun 19, 2016
983df60
specify repo branch
jackhumbert Jun 19, 2016
f9c444e
checkout
jackhumbert Jun 19, 2016
8ee6d21
goddammit
jackhumbert Jun 19, 2016
60eeba6
merge? idk
jackhumbert Jun 19, 2016
289062f
pls
jackhumbert Jun 19, 2016
a0f304f
after all
jackhumbert Jun 19, 2016
5108de7
don't split up keyboards
jackhumbert Jun 19, 2016
f11b0a6
syntax
jackhumbert Jun 19, 2016
6967a92
Merge branch 'master' into subprojects
jackhumbert Jun 19, 2016
da4b601
adds quick for all-keyboards
jackhumbert Jun 19, 2016
2f64142
trying out new script
jackhumbert Jun 19, 2016
4111800
script update
jackhumbert Jun 19, 2016
63a0830
lowercase
jackhumbert Jun 19, 2016
0dc5297
all keyboards
jackhumbert Jun 19, 2016
f07209d
stop replacing compiled.hex automatically
jackhumbert Jun 19, 2016
a3721f4
adds if statement
jackhumbert Jun 19, 2016
9a29c05
skip automated build branches
jackhumbert Jun 19, 2016
4f05f28
forces push to automated build branch
jackhumbert Jun 19, 2016
b970f88
throw an add in there
jackhumbert Jun 19, 2016
d0bcfe5
upstream?
jackhumbert Jun 19, 2016
b9a30b0
adds AUTOGEN
jackhumbert Jun 19, 2016
5f45d48
ignore all .hex files again
jackhumbert Jun 21, 2016
ac4e73a
testing out new repo
jackhumbert Jun 22, 2016
25a3f7e
global ident
jackhumbert Jun 22, 2016
7e2585b
generate script, keyboard_keymap.hex
jackhumbert Jun 22, 2016
7177b26
skip generation for now, print pandoc info, submodule update
jackhumbert Jun 23, 2016
354bd13
try trusty
jackhumbert Jun 23, 2016
720531e
and sudo
jackhumbert Jun 23, 2016
0480576
try generate
jackhumbert Jun 23, 2016
7c76295
merging master
jackhumbert Jun 23, 2016
dde8870
updates subprojects to keyboards
jackhumbert Jun 23, 2016
bb99887
no idea
jackhumbert Jun 23, 2016
6d264f8
updates to keyboards
jackhumbert Jun 23, 2016
76e182e
merge in backlight stuff
jackhumbert Jun 24, 2016
426f3fe
cleans up clueboard stuff
jackhumbert Jun 24, 2016
8e23578
setup to use local readme
jackhumbert Jun 24, 2016
c50a1b8
updates cluepad, planck experimental
jackhumbert Jun 24, 2016
86c037a
remove extra led.c [ci skip]
jackhumbert Jun 24, 2016
e382e6f
Merge branch 'master' into subprojects
jackhumbert Jun 24, 2016
e2d095f
audio and midi moved over to separate files
jackhumbert Jun 25, 2016
287c8d1
chording, leader, unicode separated
jackhumbert Jun 25, 2016
5677ee2
consolidate each [skip ci]
jackhumbert Jun 25, 2016
887e4d8
correct include
jackhumbert Jun 25, 2016
5a17c77
quantum: Add a tap dance feature (#451)
algernon Jun 28, 2016
8665abf
Merge branch 'master' into quantum-keypress-process
jackhumbert Jun 29, 2016
8260c08
Merge branch 'master' into quantum-keypress-process
jackhumbert Jun 29, 2016
c21343c
Merge branch 'master' into quantum-keypress-process
jackhumbert Jun 29, 2016
27c5490
update build script
jackhumbert Jun 29, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Prev Previous commit
Next Next commit
merging master
  • Loading branch information
jackhumbert committed Jun 23, 2016
commit 7c76295e2faa4981bbd69ba8a1edca4193ece0dc
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
keyboard/planck/dfu-programmer.exe
keyboards/planck/dfu-programmer.exe
.dep
*.o
*.eep
Expand Down
11 changes: 6 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ starting_makefile := $(subst $(space),_SPACE_,$(abspath $(firstword $(MAKEFILE_L
mkfile_path := $(subst $(space),_SPACE_,$(abspath $(lastword $(MAKEFILE_LIST))))
abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))

ifneq (,$(findstring /keyboard/,$(starting_makefile)))
possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboard/%,%,$(starting_makefile))))
ifneq (,$(findstring /keyboards/,$(starting_makefile)))
possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboards/%,%,$(starting_makefile))))
ifneq (,$(findstring /keymaps/,$(possible_keyboard)))
KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard)))
KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard)))
Expand Down Expand Up @@ -63,9 +63,10 @@ ifneq (,$(findstring /,$(KEYBOARD)))
SUBPROJECT:=$(lastword $(subst /, ,$(TEMP)))
endif

KEYBOARD_PATH = $(TOP_DIR)/keyboard/$(KEYBOARD)
KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD)

ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","")
KEYBOARD_FILE = keyboard/$(KEYBOARD)/$(KEYBOARD).c
KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c
ifndef ARCH
include $(KEYBOARD_PATH)/Makefile
endif
Expand Down Expand Up @@ -106,7 +107,7 @@ ifndef KEYMAP
endif
KEYMAP_PATH = $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","")
KEYMAP_FILE = keyboard/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c
KEYMAP_FILE = keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c
-include $(KEYMAP_PATH)/Makefile
else
$(error "$(KEYMAP_PATH)/keymap.c" does not exist)
Expand Down
49 changes: 34 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,27 @@
[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware)
# Quantum Mechanical Keyboard Firmware

[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware)

This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.co), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/).

## Official website

For an easy-to-read version of this document and the repository, check out [http://qmk.fm](http://qmk.fm).

## Included Keyboards

* [Planck](/keyboards/planck/)
* [Preonic](/keyboards/preonic/)
* [Atomic](/keyboards/atomic/)
* [ErgoDox EZ](/keyboards/ergodox_ez/)
* [Clueboard rev.1](/keyboards/clueboard1/)
* [Clueboard rev.2](/keyboards/clueboard2/)
* [Cluepad](/keyboards/cluepad/)

The project also includes community support for [lots of other keyboards](/keyboards/).

## Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, TMK. In fact, this repo used to be a fork of TMK, and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons -- it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK, both the firmware and the person. :)

This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new).
Expand All @@ -13,7 +32,7 @@ The OLKB product firmwares are maintained by Jack, the Ergodox EZ by Erez, and t

This is not a tiny project. While this is the main Readme, there are many other files you might want to consult. Here are some points of interest:

* The Readme for your own keyboard: This is found under `keyboards/<your keyboards's name>/`. So for the ErgoDox EZ, it's [here](keyboard/ergodox_ez/); for the Atomic, it's [here](keyboard/atomic/) and so on.
* The Readme for your own keyboard: This is found under `keyboards/<your keyboards's name>/`. So for the ErgoDox EZ, it's [here](keyboards/ergodox_ez/); for the Atomic, it's [here](keyboards/atomic/) and so on.
* The [build guide](doc/BUILD_GUIDE.md), also mentioned in the next section. This is how you put your development environment together so you can compile the firmware.
* The list of possible keycodes you can use in your keymap is actually spread out in a few different places:
* [tmk_core/common/keycode.h](tmk_core/common/keycode.h) - the base TMK keycodes. This is the actual source file.
Expand All @@ -23,9 +42,9 @@ This is not a tiny project. While this is the main Readme, there are many other

## Getting started

* [BUILD_GUIDE.md](doc/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 `util/new_project.sh <project_name>`, which will create `/keyboard/<project_name>` with all the necessary components for a Quantum project.
* [BUILD_GUIDE.md](doc/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 `keyboards/`.
* If you're looking to customize a keyboard that currently runs QMK or TMK, find your keyboard's directory under `keyboards/` 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 `util/new_project.sh <project_name>`, which will create `/keyboards/<project_name>` with all the necessary components for a Quantum project.

### Makefile Options

Expand All @@ -38,13 +57,13 @@ You have access to a bunch of goodies! Check out the Makefile to enable/disable

### Customizing Makefile options on a per-keymap basis

If your keymap directory has a file called `makefile.mk` (note the lowercase filename, and the `.mk` extension), any Makefile options you set in that file will take precedence over other Makefile options (those set for Quantum as a whole or for your particular keyboard).
If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options (those set for Quantum as a whole or for your particular keyboard).

So let's say your keyboard's makefile has `CONSOLE_ENABLE = yes` (or maybe doesn't even list the `CONSOLE_ENABLE` option, which would cause it to revert to the global Quantum default). You want your particular keymap to not have the debug console, so you make a file called `makefile.mk` and specify `CONSOLE_ENABLE = no`.
So let's say your keyboard's makefile has `CONSOLE_ENABLE = yes` (or maybe doesn't even list the `CONSOLE_ENABLE` option, which would cause it to revert to the global Quantum default). You want your particular keymap to not have the debug console, so you make a file called `Makefile` and specify `CONSOLE_ENABLE = no`.

### Customizing config.h on a per-keymap basis

If you use the ErgoDox EZ, you can make a `config_user.h` file in your keymap directory and use it to override any `config.h` settings you don't like. Anything you set there will take precedence over the global `config.h` for the ErgoDox EZ. To see an example of this, check out `keymaps/erez_experimental`.
You can also make a `config.h` file in your keymap directory and use it to override any `config.h` settings you don't like. Anything you set there will take precedence over the global `config.h` for the ErgoDox EZ. To see an example of this, check out `keymaps/erez_experimental`.

## Quick aliases to common actions

Expand Down Expand Up @@ -134,12 +153,12 @@ Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/)

To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift.

It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your keymap like this:
It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this:

#define LSPO_KEY KC_9
#define RSPC_KEY KC_0

The only other thing you're going to want to do is create a `makefile.mk` in your keymap directory and set the following:
The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following:

```
COMMAND_ENABLE = no # Commands for debug and configuration
Expand Down Expand Up @@ -307,7 +326,7 @@ If you have a bunch of macros you want to refer to from your keymap, while keepi
#define EXT_PLV M(13)
```

As was done on the [Planck default keymap](/keyboard/planck/keymaps/default/keymap.c#L33-L40)
As was done on the [Planck default keymap](/keyboards/planck/keymaps/default/keymap.c#L33-L40)

#### Timer functionality

Expand Down Expand Up @@ -400,7 +419,7 @@ Enable the backlight from the Makefile.

Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 port, you can hook up a simple speaker and have it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.

The audio code lives in [quantum/audio/audio.h](/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](/keyboard/planck/keymaps/default/keymap.c). Here are the important bits:
The audio code lives in [quantum/audio/audio.h](/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](/keyboards/planck/keymaps/default/keymap.c). Here are the important bits:

```
#include "audio.h"
Expand Down Expand Up @@ -475,7 +494,7 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.

## RGB Under Glow Mod

![Planck with RGB Underglow](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg)
![Planck with RGB Underglow](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg)

Here is a quick demo on Youtube (with NPKC KC60) (https://www.youtube.com/watch?v=VKrpPAHlisY).

Expand All @@ -501,11 +520,11 @@ You'll need to edit `PORTF`, `DDRF`, and `PF4` on the first three lines to the p
#define ws2812_DDRREG DDRB
#define ws2812_pin PB3

The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboard/planck/keymaps/yang/keymap.c`
The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboards/planck/keymaps/yang/keymap.c`

### WS2812 Wiring

![WS2812 Wiring](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboard/planck/keymaps/yang/WS2812-wiring.jpg)
![WS2812 Wiring](https://raw.githubusercontent.com/yangliu/qmk_firmware/planck-rgb/keyboards/planck/keymaps/yang/WS2812-wiring.jpg)

Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20.

Expand Down
4 changes: 2 additions & 2 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Vagrant.configure(2) do |config|
# You can only have one config.vm.box uncommented at a time

# Comment this and uncomment another if you don't want to use the minimal Arch box
config.vm.box = "dragon788/arch-ala-elasticdog"
#config.vm.box = "dragon788/arch-ala-elasticdog"

# VMware/Virtualbox 64 bit
# config.vm.box = "phusion/ubuntu-14.04-amd64"
config.vm.box = "phusion/ubuntu-14.04-amd64"
#
# VMware/Virtualbox 64 bit
#config.vm.box = "puphpet/centos65-x64"
Expand Down
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.