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

Merge from master branch #2

Merged
merged 47 commits into from
Jun 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
580cb2c
[Update] Files with Japanese translations related to #8822 (#9455)
mtei Jun 20, 2020
de79d55
New Keyboard: E8.5 TKL (#9447)
mechmerlin Jun 20, 2020
69b4846
Remove more useless code (#9475)
fauxpark Jun 20, 2020
0278197
[Docs] Improve Unicode documentation (#8676)
vomindoraan Jun 20, 2020
e58ab6d
update shell.nix (#8910)
thorstenweber83 Jun 20, 2020
b6e9ef8
CI: Run 'qmk info' on keyboard changes (#9212)
zvecr Jun 20, 2020
5c07363
spidey3 userspace: GUI F-Key lock was affecting some non-F-keys (#9469)
spidey3 Jun 20, 2020
d7f9e6f
Added missing RGB controls on layer 1. (#9481)
siano Jun 20, 2020
8252f37
Add velocikey to alice keymap (#9476)
stanrc85 Jun 20, 2020
30cdf93
Change `led` variable in rgb_matrix_drivers to avoid conflicts (#9412)
drashna Jun 20, 2020
f36112e
added keyboard 5x12 to boardsource folder (#9438)
daysgobye Jun 20, 2020
b7da69e
Adding information to feature_encoders.md (#9486)
AlexOConnorHub Jun 21, 2020
32340e1
Update newbs MSYS2 pacman instructions (#9445)
fauxpark Jun 21, 2020
2f85f6f
[Docs] Japanese translation of breaking_changes*.md (#8576)
mtei Jun 21, 2020
a91034b
[Update] Change Original TAGs of Japanese translations (#9453)
mtei Jun 21, 2020
b0a31f0
update ja/hardware_keyboard_guidelines.md (#9457)
mtei Jun 21, 2020
3e0f8f9
update docs/ja/feature_bootmagic.md (#9459)
mtei Jun 21, 2020
e79fb2c
[Docs] fix indentation (#9491)
shelaf Jun 21, 2020
af4bc25
Updates on Mixi default keymaps and fixes on configuration (#9467)
ohchiko Jun 21, 2020
cb13dd0
Enable NKRO on 1up's boards (#9434)
mechmerlin Jun 21, 2020
3d6d899
`qmk cformat` (#9500)
tzarc Jun 22, 2020
0b09189
[Keymap] New custom 'super alt' keymap for the Drop ALT (#9385)
ewersp Jun 22, 2020
82dc8fa
Fixing MIDI for ARM without NKRO enabled (#9466)
AlexOConnorHub Jun 22, 2020
98642ca
Improve keycode handling for RGB (#7677)
drashna Jun 22, 2020
4b13c49
user keymaps for ergodox_ez/dvorak_42_key / atreus/dvorak_42_key (#9429)
luc-vocab Jun 22, 2020
5f06fce
Fix info.json for Uni660 (#9489)
fauxpark Jun 22, 2020
924573e
[Docs] Japanese translation of docs/feature_macros.md (#9137)
umi-umi Jun 22, 2020
c7cc209
[Docs] Japanese translation of docs/feature_userspace.md (#9253)
umi-umi Jun 22, 2020
58af030
[Update] Japanese translation of newbs.md (#9388)
mtei Jun 22, 2020
1ab8f96
[Update] Japanese Translation of docs/faq_build.md (#9458)
mtei Jun 22, 2020
24b0cda
[Keyboard] add h60 PCB (#9242)
hineybush Jun 22, 2020
f0bde79
Update miryoku (#9442)
manna-harbour Jun 23, 2020
d353fcb
Add VIA support to Noxary x268 (#9450)
Rozakiin Jun 23, 2020
a8bb584
Update VIA support for Noxary 268.2 (#9451)
Rozakiin Jun 23, 2020
9ae8a45
fixed the layer limit of LT() (#9492)
shelaf Jun 23, 2020
b3b6176
[Docs] Japanese translation of docs/feature_layers.md (#9252)
umi-umi Jun 23, 2020
146873f
Add more community layout support to Discipline (#8540)
brandonschlack Jun 23, 2020
b0e3086
bm43a stevexyz keymap (#9468)
stevexyz Jun 23, 2020
a502ce4
create maja info json (#9472)
moyi4681 Jun 23, 2020
aea2d68
Fix error_log complaint about Big Series boards (#9510)
fauxpark Jun 23, 2020
3028662
[Keyboard] Add KBO-5000 keyboard (#9381)
nooges Jun 23, 2020
bd1b51c
Wazowski fixed keymap placement (#9408)
keebzdotnet Jun 23, 2020
8d792cf
[Keymap] Add personal keymap for Planck (#9424)
charlesrocket Jun 23, 2020
88ebf92
Fix info.json for Suihankey (#9490)
fauxpark Jun 23, 2020
39b483a
Fix maja info.json (#9511)
fauxpark Jun 23, 2020
c30170b
[Keyboard] added 4pplet keyboards (#8935)
Jun 24, 2020
9b398a8
Partial and window screenshots (#9332)
spidey3 Jun 24, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: PR Lint keyboards

on:
pull_request:
paths:
- 'keyboards/**'

jobs:
info:
runs-on: ubuntu-latest

container: qmkfm/base_container

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Print info
run: |
git rev-parse --short HEAD
echo ${{ github.event.pull_request.base.sha }}
git diff --name-only ${{ github.event.pull_request.base.sha }}...

- name: Run qmk info
shell: 'bash {0}'
run: |
QMK_CHANGES=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...)
QMK_KEYBOARDS=$(qmk list-keyboards)

exit_code=0
for KB in $QMK_KEYBOARDS; do
KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
if [[ -z "$KEYBOARD_CHANGES" ]]; then
# skip as no changes for this keyboard
continue
fi

KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/)
if [[ $KEYMAP_ONLY -gt 0 ]]; then
echo "linting ${KB}"

# TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines
qmk info -kb ${KB} 2>&1 | tee /tmp/$$
!(grep -cq ☒ /tmp/$$)
: $((exit_code = $exit_code + $?))
fi
done
exit $exit_code
2 changes: 1 addition & 1 deletion docs/feature_encoders.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ If your encoder's clockwise directions are incorrect, you can swap the A & B pad
#define ENCODER_DIRECTION_FLIP
```

Additionally, the resolution can be specified in the same file (the default & suggested is 4):
Additionally, the resolution, which defines how many pulses the encoder registers between each detent, can be defined with:

```c
#define ENCODER_RESOLUTION 4
Expand Down
2 changes: 1 addition & 1 deletion docs/feature_layers.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ These functions allow you to activate layers in various ways. Note that layers a

### Caveats :id=caveats

Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-16, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only.
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-15, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only.

Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.

Expand Down
89 changes: 46 additions & 43 deletions docs/feature_macros.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,34 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has

## The New Way: `SEND_STRING()` & `process_record_user`

Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string (i.e. a sequence of characters) for you. All ASCII characters that are easily translated to a keycode are supported (e.g. `\n\t`).
Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`).

Here is an example `keymap.c` for a two-key keyboard:

```c
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKBEST = SAFE_RANGE,
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;

}
return true;
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
}
return true;
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{QMKBEST, KC_ESC}
}
[0] = {
{QMKBEST, KC_ESC},
// ...
},
};
```

Expand All @@ -49,42 +49,45 @@ You can do that by adding another keycode and adding another case to the switch

```c
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKURL,
MY_OTHER_MACRO
QMKBEST = SAFE_RANGE,
QMKURL,
MY_OTHER_MACRO,
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;

case QMKURL:
if (record->event.pressed) {
// when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/\n");
} else {
// when keycode QMKURL is released
}
break;
if (record->event.pressed) {
// when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/\n");
} else {
// when keycode QMKURL is released
}
break;

case MY_OTHER_MACRO:
if (record->event.pressed) {
SEND_STRING(SS_LCTL("ac")); // selects all and copies
}
break;
}
return true;
if (record->event.pressed) {
SEND_STRING(SS_LCTL("ac")); // selects all and copies
}
break;
}
return true;
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO}
}
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO},
// ...
},
};
```

Expand Down
11 changes: 10 additions & 1 deletion docs/feature_rgb_matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,16 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) |

* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system
* `RGB_MODE_*` keycodes will generally work, but not all of the modes are currently mapped to the correct effects for the RGB Matrix system.

`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MATRIX_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.

!> By default, if you have both the [RGB Light](feature_rgblight.md) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.

## RGB Matrix Effects :id=rgb-matrix-effects

Expand Down Expand Up @@ -385,6 +393,7 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
#define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set
#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
```

## EEPROM storage :id=eeprom-storage
Expand Down
4 changes: 4 additions & 0 deletions docs/feature_rgblight.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ Changing the **Value** sets the overall brightness.<br>
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |

!> By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix.md) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.


## Configuration

Your RGB lighting can be configured by placing these `#define`s in your `config.h`:
Expand All @@ -76,6 +79,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level |
|`RGBLIGHT_SLEEP` |*Not defined*|If defined, the RGB lighting will be switched off when the host goes to sleep|
|`RGBLIGHT_SPLIT` |*Not defined*|If defined, synchronization functionality for split keyboards is added|
|`RGBLIGHT_DISABLE_KEYCODES`|*not defined*|If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature|

## Effects and Animations

Expand Down
Loading