diff --git a/docs/keyboard_identifiers.md b/docs/keyboard_identifiers.md new file mode 100644 index 0000000000..b10cb0b3f1 --- /dev/null +++ b/docs/keyboard_identifiers.md @@ -0,0 +1,61 @@ +# 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
rev2: 0x2320
|rev1: 0x0003
rev2: 0x0001
| +|cluecard|0xC1ED|0x2330|0x0001| +|cluepad|0xC1ED|0x2312|0x0001| +|deltasplit75|v2: 0xFEED
|v2: 0x3060
|v2: 0x0001
| +|dk60|0xFEED|0x6060|0x0001| +|eco|0x1337|0x6006|rev1: 0x0001
rev2: 0x0002
| +|ergodox|ez: 0xFEED
infinity: 0xFEED
|ez: 0x1307
infinity: 0x6464
|ez: 0x0001
infinity: 0x0001
| +|frosty_flake|0xFEED|0x6060|0x0001| +|gh60|0xFEED|0x6060|0x0001| +|gherkin|0xFEED|0x6060|0x0001| +|gonnerd|0xFEED|0x6060|0x0001| +|hadron|0xFEED|0x6060|ver0: 0x0001
ver2: 0x0002
| +|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
stapelberg: 0x6060
|alvicstep: 0x0001
stapelberg: 0x0002
| +|kitten_paw|0xFEED|0x6050|0x0104| +|kmac|0xFEED|0x6050|0x0104| +|lets_split|rev1: 0xFEED
rev2: 0xFEED
|rev1: 0x3060
rev2: 0x3060
|rev1: 0x0001
rev2: 0x0001
| +|m10a|0xFEED|0x0007|0x0001| +|maxipad|0xFEED|0x6060|0x0001| +|mechmini|0x20A0|0x422D|| +|minidox|0xFEED|0x3060|rev1: 0x0001
| +|mitosis|0xFEED|0x6060|0x0001| +|miuni32|0xFEED|0x6060|0x0001| +|nyquist|rev1: 0xCEEB
|rev1: 0x1156
|rev1: 0x0100
| +|orthodox|rev1: 0xFEED
|rev1: 0x3060
|rev1: 0x0001
| +|pegasushoof|0xFEED|0x6050|0x0104| +|phantom|0xFEED|0x6060|0x0003| +|planck|0xFEED|0x6060|rev3: 0x0003
rev4: 0x0004
| +|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| diff --git a/util/keyboard_identifier_generator.sh b/util/keyboard_identifier_generator.sh new file mode 100644 index 0000000000..5b326ebbf0 --- /dev/null +++ b/util/keyboard_identifier_generator.sh @@ -0,0 +1,48 @@ +#/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
" $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
" $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
" $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 \ No newline at end of file