Compare commits

...

5 Commits

Author SHA1 Message Date
Jack Humbert
993427e58b properly generate tables maybe 2017-08-12 22:34:04 -04:00
Jack Humbert
1b4b5e5c66 first run at rendering a list of identifiers 2017-08-12 22:34:04 -04:00
Balz Guenat
5ad103fa51 add description of new option to docs and add option (commented out) into template. 2017-08-11 16:54:10 -04:00
Balz Guenat
188ed682e3 add short comment to grave_esc_ctrl_override 2017-08-11 16:54:10 -04:00
Balz Guenat
897ceac26c add option to let ctrl override shift/gui for the GRAVE_ESC.
This enables the ctrl+shift+esc shortcut to task manager on windows.
2017-08-11 16:54:10 -04:00
6 changed files with 127 additions and 1 deletions

View File

@@ -116,7 +116,9 @@ https://github.com/tekezo/Karabiner/issues/403
## Esc and `~ on a key
Use `GRAVE_ESC` or `KC_GESC` in your keymap.
Use `GRAVE_ESC` or `KC_GESC` in your keymap. `GUI`+`GRAVE_ESC` results in `\`` and `SHIFT`+`GRAVE_ESC` results in `~`.
Note that this will break the CTRL+SHIFT+ESC shortcut to the Windows task manager. Use `#define GRAVE_ESC_CTRL_OVERRIDE` in your `config.h` to get the shortcut back. With this option, `ESC_GRAVE` results in `ESC` if `CTRL` is held, even if `SHIFT` or `GUI` are also held.
## Arrow on Right Modifier keys with Dual-Role
This turns right modifer keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**.

View File

@@ -0,0 +1,62 @@
# Keyboard Identifiers
|Keyboard|Vendor ID|Product ID|Device Ver|
| ------ |--------:| --------:| --------:|
|alps64|0xFEED|0x6464|0x0001|
|amj40|0xFEED|0x6072|0x0002|
|amj60|0xFEED|0x6066|0x0001|
|amjpad|0xFEED|0x6060|0x0003|
|atomic|0xFEED|0x6060|0x0001|
|atreus|0xFEED|0x6060|0x0001|
|atreus62|0xFEED|0x6062|0x0001|
|bananasplit|0xFEAE|0x8870|0x0001|
|bantam44|0xFEED|0x6060|0x0001|
|chibios_test|0xFEED|0x6464|0x0001|
|clueboard|0xC1ED|rev1: 0x2301<br />rev2: 0x2320<br />|rev1: 0x0003<br />rev2: 0x0001<br />|
|cluecard|0xC1ED|0x2330|0x0001|
|cluepad|0xC1ED|0x2312|0x0001|
|deltasplit75|v2: 0xFEED<br />|v2: 0x3060<br />|v2: 0x0001<br />|
|dk60|0xFEED|0x6060|0x0001|
|eco|0x1337|0x6006|rev1: 0x0001<br />rev2: 0x0002<br />|
|ergodox|ez: 0xFEED<br />infinity: 0xFEED<br />|ez: 0x1307<br />infinity: 0x6464<br />|ez: 0x0001<br />infinity: 0x0001<br />|
|frosty_flake|0xFEED|0x6060|0x0001|
|gh60|0xFEED|0x6060|0x0001|
|gherkin|0xFEED|0x6060|0x0001|
|gonnerd|0xFEED|0x6060|0x0001|
|hadron|0xFEED|0x6060|ver0: 0x0001<br />ver2: 0x0002<br />|
|hhkb|0xFEED|0xCAFE|0x0104|
|infinity60|0xFEED|0x6464|0x0001|
|jd40|0xFEED|0x6060|0x0001|
|jd45|0xFEED|0x6060|0x0001|
|kbd75|0xFEED|0x6060|0x0001|
|kc60|0xFEED|0x6060|0x0001|
|kinesis|0xFEED|alvicstep: 0x6060<br />stapelberg: 0x6060<br />|alvicstep: 0x0001<br />stapelberg: 0x0002<br />|
|kitten_paw|0xFEED|0x6050|0x0104|
|kmac|0xFEED|0x6050|0x0104|
|lets_split|rev1: 0xFEED<br />rev2: 0xFEED<br />|rev1: 0x3060<br />rev2: 0x3060<br />|rev1: 0x0001<br />rev2: 0x0001<br />|
|m10a|0xFEED|0x0007|0x0001|
|maxipad|0xFEED|0x6060|0x0001|
|mechmini|0x20A0|0x422D||
|minidox|0xFEED|0x3060|rev1: 0x0001<br />|
|mitosis|0xFEED|0x6060|0x0001|
|miuni32|0xFEED|0x6060|0x0001|
|nyquist|rev1: 0xCEEB<br />|rev1: 0x1156<br />|rev1: 0x0100<br />|
|orthodox|rev1: 0xFEED<br />|rev1: 0x3060<br />|rev1: 0x0001<br />|
|pegasushoof|0xFEED|0x6050|0x0104|
|phantom|0xFEED|0x6060|0x0003|
|planck|0xFEED|0x6060|rev3: 0x0003<br />rev4: 0x0004<br />|
|preonic|0xFEED|0x6061|0x0001|
|ps2avrGB|0x20A0|0x422D||
|roadkit|0xFEAE|0x8846|0x0001|
|s60_x|0xFEED|0x6060|0x0001|
|s65_x|0xFEED|0x6060|0x0001|
|satan|0xFEED|0x6060|0x0003|
|sixkeyboard|0xFEED|0x6062|0x0001|
|tada68|0xFEED|0x6060|0x0003|
|tiger_lily|0xFEED|0x6060|0x0001|
|tv44|0xFEAE|0x8844|0x0002|
|uk78|0x554B|0x004E|0x0002|
|vision_division||||
|whitefox|0xFEED|0x0F0F|0x0001|
|xd60|0xFEED|0x6060|0x0001|
|xd75|0xCDCD|0x7575|0x0001|

View File

@@ -20,5 +20,6 @@
#include "../../config.h"
// place overrides here
#define GRAVE_ESC_CTRL_OVERRIDE
#endif

View File

@@ -478,6 +478,13 @@ bool process_record_quantum(keyrecord_t *record) {
void (*method)(uint8_t) = (record->event.pressed) ? &add_key : &del_key;
uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)
|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)));
#ifdef GRAVE_ESC_CTRL_OVERRIDE
// if CTRL is pressed, ESC is always read as ESC, even if SHIFT or GUI is pressed.
// this is handy for the ctrl+shift+esc shortcut on windows, among other things.
if (get_mods() & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)))
shifted = 0;
#endif
method(shifted ? KC_GRAVE : KC_ESCAPE);
send_keyboard_report();

View File

@@ -67,6 +67,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*

View File

@@ -0,0 +1,49 @@
#/bin/bash
echo "# Keyboard Identifiers
|Keyboard|Vendor ID|Product ID|Device Ver|
| ------ |--------:| --------:| --------:|" > docs/keyboard_identifiers.md
for project in $(find . -regex '\./keyboards/[a-z0-9_\-]+/config.h')
do
keyboard_name=$(printf $project | sed -r "s/\.\/keyboards\/([a-zA-Z0-9_\-]+).*/\1/g")
vendor_id=$(grep 'VENDOR_ID' $project | \
tr -d '\n' | \
sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
if [ -z $vendor_id ]; then
for subproject in $(find . -regex "\./keyboards/$keyboard_name/[a-z0-9_\-]+/config.h")
do
subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${keyboard_name}\/([a-zA-Z0-9_\-]+).*/\1/g")
subproject_vendor_id=$(grep 'VENDOR_ID' $subproject | \
tr -d '\n' | \
sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
vendor_id+=$(printf "%s: %s<br />" $subproject_name $subproject_vendor_id)
done
fi
product_id=$(grep 'PRODUCT_ID' $project | \
tr -d '\n' | \
sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
if [ -z $product_id ]; then
for subproject in $(find . -regex "\./keyboards/$keyboard_name/[a-z0-9_\-]+/config.h")
do
subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${keyboard_name}\/([a-zA-Z0-9_\-]+).*/\1/g")
subproject_product_id=$(grep 'PRODUCT_ID' $subproject | \
tr -d '\n' | \
sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
product_id+=$(printf "%s: %s<br />" $subproject_name $subproject_product_id)
done
fi
device_ver=$(grep 'DEVICE_VER' $project | \
tr -d '\n' | \
sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
if [ -z $device_ver ]; then
for subproject in $(find . -regex "\./keyboards/$keyboard_name/[a-z0-9_\-]+/config.h")
do
subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${keyboard_name}\/([a-zA-Z0-9_\-]+).*/\1/g")
subproject_device_ver=$(grep 'DEVICE_VER' $subproject | \
tr -d '\n' | \
sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
device_ver+=$(printf "%s: %s<br />" $subproject_name $subproject_device_ver)
done
fi
printf "|%s|%s|%s|%s|\n" "$keyboard_name" "$vendor_id" "$product_id" "$device_ver" >> docs/keyboard_identifiers.md
done