Compare commits
5 Commits
0.5.99
...
keyboard_i
Author | SHA1 | Date | |
---|---|---|---|
|
993427e58b | ||
|
1b4b5e5c66 | ||
|
5ad103fa51 | ||
|
188ed682e3 | ||
|
897ceac26c |
@@ -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**.
|
||||
|
62
docs/keyboard_identifiers.md
Normal file
62
docs/keyboard_identifiers.md
Normal 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|
|
@@ -20,5 +20,6 @@
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
#define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
#endif
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
*
|
||||
|
49
util/keyboard_identifier_generator.sh
Normal file
49
util/keyboard_identifier_generator.sh
Normal 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
|
Reference in New Issue
Block a user