From 4561bf5606fcf802f9f617c663f83125f4e98561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Wo=C5=BAniak?= Date: Wed, 3 Jan 2024 17:19:45 +0100 Subject: [PATCH] Add agents --- .cargo/config.toml | 8 + Cargo.lock | 754 +++++++++++++++++- Cargo.toml | 4 + build.rs | 242 ++++++ memory.x | 17 + rust-toolchain.toml | 12 + src/backlight.rs | 43 +- src/keycodes/mod.rs | 1340 ++++++++++++++++++++++++++++++++ src/{keycodes.rs => keycodes_} | 7 +- src/lib.rs | 3 + src/main.rs | 2 +- 11 files changed, 2401 insertions(+), 31 deletions(-) create mode 100644 .cargo/config.toml create mode 100644 build.rs create mode 100644 memory.x create mode 100644 rust-toolchain.toml create mode 100644 src/keycodes/mod.rs rename src/{keycodes.rs => keycodes_} (99%) diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..39e13b3 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,8 @@ +[target.'cfg(all(target_arch = "arm", target_os = "none"))'] +runner = "probe-rs run --chip RP2040" + +[build] +target = "thumbv6m-none-eabi" # Cortex-M0 and Cortex-M0+ + +[env] +DEFMT_LOG = "debug" \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 9118042..4f95431 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,21 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "aho-corasick" version = "1.1.2" @@ -80,6 +95,21 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + [[package]] name = "bare-metal" version = "0.2.5" @@ -89,6 +119,12 @@ dependencies = [ "rustc_version 0.2.3", ] +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + [[package]] name = "bit-set" version = "0.5.3" @@ -122,6 +158,12 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + [[package]] name = "byte-slice-cast" version = "0.3.5" @@ -146,6 +188,21 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -162,6 +219,22 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + [[package]] name = "cortex-m" version = "0.7.7" @@ -708,6 +781,15 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -721,9 +803,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "fixed" version = "1.24.0" @@ -792,6 +880,30 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + [[package]] name = "futures" version = "0.3.30" @@ -858,11 +970,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-core", + "futures-io", "futures-macro", "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", + "slab", ] [[package]] @@ -904,6 +1019,31 @@ dependencies = [ "wasi", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "half" version = "2.3.1" @@ -968,12 +1108,93 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "indexmap" version = "2.1.0" @@ -984,6 +1205,12 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + [[package]] name = "is-terminal" version = "0.4.10" @@ -992,7 +1219,7 @@ checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ "hermit-abi", "rustix", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1004,6 +1231,21 @@ dependencies = [ "either", ] +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "lalrpop" version = "0.19.12" @@ -1035,6 +1277,12 @@ dependencies = [ "regex", ] +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + [[package]] name = "libc" version = "0.2.151" @@ -1098,6 +1346,50 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc4010833aea396656c2f91ee704d51a6f1329ec2ab56ffd00bfd56f7481ea94" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "nb" version = "0.1.3" @@ -1134,6 +1426,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "num_enum" version = "0.5.11" @@ -1154,12 +1456,65 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "openssl" +version = "0.10.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "panic-probe" version = "0.3.1" @@ -1199,6 +1554,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + [[package]] name = "petgraph" version = "0.6.4" @@ -1270,6 +1631,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "pkg-config" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" + [[package]] name = "portable-atomic" version = "1.6.0" @@ -1355,6 +1722,7 @@ dependencies = [ "pio-proc", "portable-atomic", "rand", + "reqwest", "smart-leds", "st7789", "static_cell", @@ -1440,6 +1808,44 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +[[package]] +name = "reqwest" +version = "0.11.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + [[package]] name = "rgb" version = "0.8.37" @@ -1468,6 +1874,12 @@ dependencies = [ "crc-any", ] +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + [[package]] name = "rustc_version" version = "0.2.3" @@ -1496,7 +1908,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1505,12 +1917,50 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "0.9.0" @@ -1552,12 +2002,44 @@ dependencies = [ "syn 2.0.46", ] +[[package]] +name = "serde_json" +version = "1.0.110" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "siphasher" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" version = "1.11.2" @@ -1596,6 +2078,16 @@ dependencies = [ "managed", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.9.8" @@ -1684,6 +2176,40 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "term" version = "0.7.0" @@ -1733,18 +2259,119 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.35.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "typenum" version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "unicode-bidi" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + [[package]] name = "unicode-width" version = "0.1.11" @@ -1757,6 +2384,17 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + [[package]] name = "usb-device" version = "0.2.9" @@ -1804,6 +2442,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.4" @@ -1825,12 +2469,97 @@ dependencies = [ "vcell", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.46", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.46", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "web-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "winapi" version = "0.3.9" @@ -1862,6 +2591,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -1984,3 +2722,13 @@ name = "windows_x86_64_msvc" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] diff --git a/Cargo.toml b/Cargo.toml index d927b8b..0e52f66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,5 +55,9 @@ pio-proc = "0.2" pio = "0.2.1" rand = { version = "0.8.5", default-features = false } +[build-dependencies] +reqwest = { version = "0.11.23", features = ["blocking"] } + + [profile.release] debug = 2 diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..0ed5dea --- /dev/null +++ b/build.rs @@ -0,0 +1,242 @@ +use std::collections::{HashMap, HashSet}; +use std::env; +use std::fmt::{Display, Formatter}; +use std::fs::File; +use std::io::Write; +use std::path::{Path, PathBuf}; + +fn main() { + // Put `memory.x` in our output directory and ensure it's + // on the linker search path. + let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap()); + File::create(out.join("memory.x")) + .unwrap() + .write_all(include_bytes!("memory.x")) + .unwrap(); + println!("cargo:rustc-link-search={}", out.display()); + + // By default, Cargo will re-run a build script whenever + // any file in the project changes. By specifying `memory.x` + // here, we ensure the build script is only re-run when + // `memory.x` is changed. + println!("cargo:rerun-if-changed=memory.x"); + + println!("cargo:rustc-link-arg-bins=--nmagic"); + println!("cargo:rustc-link-arg-bins=-Tlink.x"); + println!("cargo:rustc-link-arg-bins=-Tlink-rp.x"); + println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); + + let client = reqwest::blocking::Client::new(); + let res = if Path::new("./target/keycodes.h").exists() { + std::fs::read_to_string("./target/keycodes.h").unwrap() + } else { + let res = client + .get("https://raw.githubusercontent.com/qmk/qmk_firmware/master/quantum/keycodes.h") + .send() + .unwrap() + .text() + .unwrap(); + std::fs::write("./target/keycodes.h", res.as_bytes()).unwrap(); + res + }; + + let mut log_file = std::fs::OpenOptions::new() + .create(true) + .append(false) + .write(true) + .open("./target/tokens.log") + .unwrap(); + + let mut global_register = HashMap::with_capacity(9086); + let mut enums = Vec::with_capacity(64); + let iter = res.lines(); + let mut is_block_comment = false; + for line in iter { + parse_line( + line, + &mut enums, + &mut is_block_comment, + &mut global_register, + &mut log_file, + ); + } + let mut mod_file = std::fs::OpenOptions::new() + .create(true) + .append(false) + .write(true) + .open("./src/keycodes/mod.rs") + .unwrap(); + for info in enums { + mod_file.write_fmt(format_args!("{info}\n")).unwrap(); + mod_file.flush().unwrap(); + } +} + +fn parse_line( + line: &str, + enums: &mut Vec, + is_block_comment: &mut bool, + global_register: &mut HashMap, + log_file: &mut File, +) { + log_file.write_fmt(format_args!("Line {line:?}\n")).unwrap(); + log_file.flush().unwrap(); + + let line = line.trim(); + let mut it = line + .split_ascii_whitespace() + .filter(|s| !s.is_empty()) + .peekable(); + while let Some(token) = it.next().map(ToOwned::to_owned) { + log_file + .write_fmt(format_args!("token {token:?}\n")) + .unwrap(); + log_file.flush().unwrap(); + println!("token {token:?}"); + match token.as_str() { + _ if token.starts_with("#") => { + return; + } + "//" => { + log_file + .write_fmt(format_args!("skip {token:?}\n")) + .unwrap(); + log_file.flush().unwrap(); + return; + } + "enum" => { + log_file + .write_fmt(format_args!("new enum {token:?}\n")) + .unwrap(); + log_file.flush().unwrap(); + enums.push(EnumInfo::new( + it.next().expect("enum must have name").to_owned(), + )); + } + "{" => {} + "," => {} + "}" | "};" => {} + _ if token.starts_with("/*") && token.ends_with("*/") => { + println!("closed comment"); + } + _ if token.ends_with("*/") => { + *is_block_comment = false; + } + _ if *is_block_comment || token.starts_with("/*") => { + *is_block_comment = true; + println!("comment {token:?}"); + log_file + .write_fmt(format_args!("comment {token:?}\n")) + .unwrap(); + log_file.flush().unwrap(); + + while let Some(t) = it.next() { + println!("looking for \"*/\" : {t:?}"); + log_file + .write_fmt(format_args!("looking for \"*/\" : {t:?}\n")) + .unwrap(); + log_file.flush().unwrap(); + if t.ends_with("*/") { + println!("ends looking for closing comment with {t:?}"); + *is_block_comment = false; + break; + } + } + } + _ => { + if enums.is_empty() { + return; + } + let name = token.as_str(); + println!("new variant name is {name:?}"); + it.next().expect("variant must be followed by ="); + let val = it.next().expect("variant must have value").trim_end_matches(","); + enums + .last_mut() + .expect("must have enum token before here") + .add_variant(name, val, global_register); + } + } + } +} + +pub type VariantName = String; +pub type VariantValue = String; +pub type EnumName = String; + +#[derive(Debug)] +pub struct EnumInfo { + pub name: String, + pub variants: HashMap, + pub values_cache: HashSet, +} + +impl Display for EnumInfo { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.write_str("#[derive(Debug)]\n")?; + f.write_str("#[repr(C)]\n")?; + f.write_str("pub enum ")?; + f.write_str(Self::rust_enum_name(&self.name).as_str())?; + f.write_str(" {\n")?; + for (var_name, var_val) in &self.variants { + f.write_fmt(format_args!( + " {} = {},\n", + Self::rust_enum_name(var_name), + var_val + ))?; + } + f.write_str("}")?; + Ok(()) + } +} + +impl EnumInfo { + const CACHE_SIZE: usize = 1024 * 5; + pub fn new(name: String) -> EnumInfo { + Self { + name, + variants: HashMap::with_capacity(Self::CACHE_SIZE), + values_cache: HashSet::with_capacity(Self::CACHE_SIZE), + } + } + + pub fn add_variant<'global>( + &mut self, + name: &str, + val: &str, + global_register: &'global mut HashMap, + ) { + println!("adding variant {name:?} {val:?}"); + if self.values_cache.contains(val) { + return; + } + self.variants.insert( + name.to_owned(), + global_register + .get(val) + .map(|enum_name| format!("{enum_name}::{val} as usize")) + .unwrap_or_else(|| val.to_owned()), + ); + global_register.insert(name.to_owned(), self.name.clone()); + } + + fn rust_enum_name(name: &str) -> String { + let mut prev_underscore = false; + name.chars() + .enumerate() + .filter_map(|(idx, c)| { + if idx == 0 { + Some(c.to_ascii_uppercase()) + } else if c == '_' { + prev_underscore = true; + None + } else if prev_underscore { + prev_underscore = false; + Some(c.to_ascii_uppercase()) + } else { + Some(c) + } + }) + .collect() + } +} diff --git a/memory.x b/memory.x new file mode 100644 index 0000000..771b8fa --- /dev/null +++ b/memory.x @@ -0,0 +1,17 @@ +MEMORY { + BOOT2 : ORIGIN = 0x10000000, LENGTH = 0x100 + FLASH : ORIGIN = 0x10000100, LENGTH = 2048K - 0x100 + + /* Pick one of the two options for RAM layout */ + + /* OPTION A: Use all RAM banks as one big block */ + /* Reasonable, unless you are doing something */ + /* really particular with DMA or other concurrent */ + /* access that would benefit from striping */ + RAM : ORIGIN = 0x20000000, LENGTH = 264K + + /* OPTION B: Keep the unstriped sections separate */ + /* RAM: ORIGIN = 0x20000000, LENGTH = 256K */ + /* SCRATCH_A: ORIGIN = 0x20040000, LENGTH = 4K */ + /* SCRATCH_B: ORIGIN = 0x20041000, LENGTH = 4K */ +} \ No newline at end of file diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..6ebf3f2 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,12 @@ +[toolchain] +channel = "stable" +components = [ "rust-src", "rustfmt", "llvm-tools" ] +targets = [ + "thumbv7em-none-eabi", + "thumbv7m-none-eabi", + "thumbv6m-none-eabi", + "thumbv7em-none-eabihf", + "thumbv8m.main-none-eabihf", + "riscv32imac-unknown-none-elf", + "wasm32-unknown-unknown", +] \ No newline at end of file diff --git a/src/backlight.rs b/src/backlight.rs index 8448204..d28f432 100644 --- a/src/backlight.rs +++ b/src/backlight.rs @@ -5,11 +5,11 @@ pub type BacklightLevel = u8; #[cfg(feature = "backlight_breathing")] pub struct BacklightBreathing { pub enabled: bool, - pub period: std::time::Duration, + pub period: core::time::Duration, } -pub struct Backlight<'d> { - pub pins: Vec>, +pub struct Backlight<'d, const PIN_COUNT: usize> { + pub pins: [Output<'d, AnyPin>; PIN_COUNT], pub on: bool, pub default_on: bool, pub lvl: BacklightLevel, @@ -18,8 +18,8 @@ pub struct Backlight<'d> { pub breathing: BacklightBreathing, } -impl<'d> Backlight<'d> { - pub fn new(pins: Vec>, default_lvl: BacklightLevel) -> Self { +impl<'d, const PIN_COUNT: usize> Backlight<'d, PIN_COUNT> { + pub fn new(pins: [Output<'d, AnyPin>; PIN_COUNT], default_lvl: BacklightLevel) -> Self { let mut bl = Self { pins, on: cfg!(feature = "backlight_default_on"), @@ -29,36 +29,29 @@ impl<'d> Backlight<'d> { #[cfg(feature = "backlight_breathing")] breathing: BacklightBreathing { enabled: cfg!(feature = "backlight_breathing_default_on"), - period: std::time::Duration::from_millis(66), + period: core::time::Duration::from_millis(66), }, }; bl.backlight_pins_off(); bl } - fn backlight_pin_on<'d>(pin: &mut Output<'d, AnyPin>) { - if cfg!(feature = "backlight_on_state") { - pin.set_high(); - } else { - pin.set_low(); - } - } - fn backlight_pin_off<'d>(pin: &mut Output<'d, AnyPin>) { - if cfg!(feature = "backlight_on_state") { - pin.set_low(); - } else { - pin.set_high(); - } - } - - pub fn backlight_pins_on<'d>(&mut self) { + pub fn backlight_pins_on(&mut self) { for pin in &mut self.pins { - Self::backlight_pin_on(pin); + if cfg!(feature = "backlight_on_state") { + pin.set_high(); + } else { + pin.set_low(); + } } } - pub fn backlight_pins_off<'d>(&mut self) { + pub fn backlight_pins_off(&mut self) { for pin in &mut self.pins { - Self::backlight_pin_off(pin); + if cfg!(feature = "backlight_on_state") { + pin.set_low(); + } else { + pin.set_high(); + } } } diff --git a/src/keycodes/mod.rs b/src/keycodes/mod.rs new file mode 100644 index 0000000..4a2c8f1 --- /dev/null +++ b/src/keycodes/mod.rs @@ -0,0 +1,1340 @@ +#[derive(Debug)] +#[repr(C)] +pub enum QkKeycodeRanges { + QKLAYERTAPTOGGLEMAX = 0x52DF, + QKONESHOTLAYER = 0x5280, + QKMODTAPMAX = 0x3FFF, + QKMIDIMAX = 0x71FF, + QKMOMENTARYMAX = 0x523F, + QKBASICMAX = 0x00FF, + QKQUANTUMMAX = 0x7DFF, + QKUNICODEMAPMAX = 0xBFFF, + QKLAYERMOD = 0x5000, + QKTAPDANCE = 0x5700, + QKLIGHTINGMAX = 0x78FF, + QKBASIC = 0x0000, + QKONESHOTLAYERMAX = 0x529F, + QKQUANTUM = 0x7C00, + QKONESHOTMODMAX = 0x52BF, + QKTOGGLELAYER = 0x5260, + QKSWAPHANDSMAX = 0x56FF, + QKSEQUENCERMAX = 0x73FF, + QKAUDIO = 0x7480, + QKAUDIOMAX = 0x74BF, + QKONESHOTMOD = 0x52A0, + QKLAYERMODMAX = 0x51FF, + QKJOYSTICK = 0x7400, + QKMODSMAX = 0x1FFF, + QKPROGRAMMABLEBUTTON = 0x7440, + QKTOGGLELAYERMAX = 0x527F, + QKUSER = 0x7E40, + QKUNICODE = 0x8000, + QKTO = 0x5200, + QKDEFLAYER = 0x5240, + QKMACRO = 0x7700, + QKMODS = 0x0100, + QKUNICODEMAPPAIRMAX = 0xFFFF, + QKLAYERTAPMAX = 0x4FFF, + QKTAPDANCEMAX = 0x57FF, + QKLAYERTAP = 0x4000, + QKKBMAX = 0x7E3F, + QKMODTAP = 0x2000, + QKMAGIC = 0x7000, + QKPROGRAMMABLEBUTTONMAX = 0x747F, + QKTOMAX = 0x521F, + QKKB = 0x7E00, + QKJOYSTICKMAX = 0x743F, + QKLAYERTAPTOGGLE = 0x52C0, + QKSWAPHANDS = 0x5600, + QKLIGHTING = 0x7800, + QKSTENO = 0x74C0, + QKUNICODEMAX = 0xFFFF, + QKSTENOMAX = 0x74FF, + QKUSERMAX = 0x7FFF, + QKMOMENTARY = 0x5220, + QKUNICODEMAPPAIR = 0xC000, + QKMACROMAX = 0x777F, + QKDEFLAYERMAX = 0x525F, + QKMIDI = 0x7100, + QKSEQUENCER = 0x7200, + QKUNICODEMAP = 0x8000, + QKMAGICMAX = 0x70FF, +} +#[derive(Debug)] +#[repr(C)] +pub enum QkKeycodeDefines { + QKKB22 = 0x7E16, + RGBMSN = qk_keycode_defines::RGB_MODE_SNAKE as usize, + TLLOWR = qk_keycode_defines::QK_TRI_LAYER_LOWER as usize, + HFCOND = qk_keycode_defines::QK_HAPTIC_CONTINUOUS_DOWN as usize, + QKMACRO10 = 0x770A, + QKMIDIVELOCITY10 = 0x7170, + MC20 = qk_keycode_defines::QK_MACRO_20 as usize, + KCLNG4 = qk_keycode_defines::KC_LANGUAGE_4 as usize, + QKKB21 = 0x7E15, + KCLNG2 = qk_keycode_defines::KC_LANGUAGE_2 as usize, + KCLGUI = qk_keycode_defines::KC_LEFT_GUI as usize, + RGBSAD = 0x7826, + QKSWAPHANDSMOMENTARYON = 0x56F2, + QKMIDINOTEASHARP1 = 0x7119, + QKMAGICCAPSLOCKASCONTROLON = 0x7004, + QKUNICODEMODELINUX = 0x7C33, + KCAGIN = qk_keycode_defines::KC_AGAIN as usize, + QKMIDITRANSPOSEN5 = 0x7158, + KCCLEARAGAIN = 0x00A2, + KCP2 = qk_keycode_defines::KC_KP_2 as usize, + KCLNUM = qk_keycode_defines::KC_LOCKING_NUM_LOCK as usize, + QKMIDINOTEC3 = 0x7127, + QKMIDITRANSPOSE6 = 0x7163, + KCWWWSTOP = 0x00B8, + QKMIDITRANSPOSE3 = 0x7160, + JS25 = qk_keycode_defines::QK_JOYSTICK_BUTTON_25 as usize, + UCMAC = qk_keycode_defines::QK_UNICODE_MODE_MACOS as usize, + QKMACRO29 = 0x771D, + KCMSWHRIGHT = 0x00DC, + QKMIDIMODULATION = 0x718B, + QKMACRO1 = 0x7701, + KCMSACCEL0 = 0x00DD, + _ = qk_keycode_defines::KC_TRANSPARENT as usize, + KCH = 0x000B, + KCLCAP = qk_keycode_defines::KC_LOCKING_CAPS_LOCK as usize, + MIB2 = qk_keycode_defines::QK_MIDI_NOTE_B_2 as usize, + KCLOCKINGCAPSLOCK = 0x0082, + MC17 = qk_keycode_defines::QK_MACRO_17 as usize, + QKAUDIOOFF = 0x7481, + QKBACKLIGHTDOWN = 0x7803, + QKREP = qk_keycode_defines::QK_REPEAT_KEY as usize, + MIA2 = qk_keycode_defines::QK_MIDI_NOTE_A_2 as usize, + QKMIDITRANSPOSE5 = 0x7162, + KCF2 = 0x003B, + KCG = 0x000A, + MITRSD = qk_keycode_defines::QK_MIDI_TRANSPOSE_DOWN as usize, + QKMIDIVELOCITY5 = 0x716B, + KCJ = 0x000D, + QKJOYSTICKBUTTON0 = 0x7400, + QKMUSICON = 0x7490, + QKMIDIPITCHBENDDOWN = 0x718E, + JS14 = qk_keycode_defines::QK_JOYSTICK_BUTTON_14 as usize, + QKKB25 = 0x7E19, + QKUSER15 = 0x7E4F, + QKMIDITRANSPOSEN1 = 0x715C, + QKMIDICHANNELDOWN = 0x7183, + MIFs = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_0 as usize, + KCLEFTBRACKET = 0x002F, + QKMIDIVELOCITY1 = 0x7167, + KCWWWFAVORITES = 0x00BA, + QKDYNAMICMACRORECORDSTOP = 0x7C55, + QKMIDICHANNEL8 = 0x717A, + PB28 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_28 as usize, + MIB1 = qk_keycode_defines::QK_MIDI_NOTE_B_1 as usize, + QKJOYSTICKBUTTON19 = 0x7413, + UCWIN = qk_keycode_defines::QK_UNICODE_MODE_WINDOWS as usize, + RGBMODEBREATHE = 0x782C, + QKMIDISOFT = 0x7189, + MIGb5 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_5 as usize, + JS2 = qk_keycode_defines::QK_JOYSTICK_BUTTON_2 as usize, + KCINT5 = qk_keycode_defines::KC_INTERNATIONAL_5 as usize, + QKMAGICUNSWAPGRAVEESC = 0x700D, + MIVL0 = qk_keycode_defines::QK_MIDI_VELOCITY_0 as usize, + KCKP8 = 0x0060, + KCRIGHTBRACKET = 0x0030, + QKHAPTICMODENEXT = 0x7C46, + QKMIDINOTEG5 = 0x7146, + MIDs3 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_3 as usize, + GUOFF = qk_keycode_defines::QK_MAGIC_GUI_OFF as usize, + QKJOYSTICKBUTTON31 = 0x741F, + KCZ = 0x001D, + QKDYNAMICMACRORECORDSTART1 = 0x7C53, + QKKEYOVERRIDETOGGLE = 0x7C5D, + QKPROGRAMMABLEBUTTON12 = 0x744B, + PB2 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_2 as usize, + MITRN2 = qk_keycode_defines::QK_MIDI_TRANSPOSE_N2 as usize, + MIAs4 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_4 as usize, + KCPAUS = qk_keycode_defines::KC_PAUSE as usize, + KCINTERNATIONAL8 = 0x008E, + QKMIDIOCTAVE3 = 0x7150, + QKMIDINOTEASHARP5 = 0x7149, + QKUNICODEMODEBSD = 0x7C35, + QKUSER30 = 0x7E5E, + MIVL10 = qk_keycode_defines::QK_MIDI_VELOCITY_10 as usize, + QKJOYSTICKBUTTON10 = 0x740A, + QKMACRO5 = 0x7705, + MIB4 = qk_keycode_defines::QK_MIDI_NOTE_B_4 as usize, + KCNO = 0x0000, + MIVL5 = qk_keycode_defines::QK_MIDI_VELOCITY_5 as usize, + DMREC1 = qk_keycode_defines::QK_DYNAMIC_MACRO_RECORD_START_1 as usize, + QKJOYSTICKBUTTON16 = 0x7410, + KCKP5 = 0x005D, + KCF14 = 0x0069, + KCVOLU = qk_keycode_defines::KC_AUDIO_VOL_UP as usize, + SHTOGG = qk_keycode_defines::QK_SWAP_HANDS_TOGGLE as usize, + KCKP4 = 0x005C, + KCWWWFORWARD = 0x00B7, + QKKB5 = 0x7E05, + QKJOYSTICKBUTTON4 = 0x7404, + JS4 = qk_keycode_defines::QK_JOYSTICK_BUTTON_4 as usize, + KCSLCT = qk_keycode_defines::KC_SELECT as usize, + QKMACRO25 = 0x7719, + ASUP = qk_keycode_defines::QK_AUTO_SHIFT_UP as usize, + QKMIDITRANSPOSEUP = 0x7165, + QKHAPTICFEEDBACKTOGGLE = 0x7C44, + MIEb3 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_3 as usize, + QKSECURELOCK = 0x7C60, + QKMIDIVELOCITY0 = 0x7166, + MIGs4 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_4 as usize, + KCF10 = 0x0043, + KC2 = 0x001F, + QKKB23 = 0x7E17, + SQTMPU = qk_keycode_defines::QK_SEQUENCER_TEMPO_UP as usize, + QKMAGICUNSWAPESCAPECAPSLOCK = 0x7021, + QKMACRO21 = 0x7715, + QKMIDINOTEE1 = 0x7113, + QKBACKLIGHTTOGGLE = 0x7802, + QKMIDINOTEG0 = 0x710A, + KCMYCM = qk_keycode_defines::KC_MY_COMPUTER as usize, + KCRGUI = qk_keycode_defines::KC_RIGHT_GUI as usize, + MIF5 = qk_keycode_defines::QK_MIDI_NOTE_F_5 as usize, + MICH2 = qk_keycode_defines::QK_MIDI_CHANNEL_2 as usize, + MIGs = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_0 as usize, + QKAUDIOON = 0x7480, + CLSWAP = qk_keycode_defines::QK_MAGIC_SWAP_CONTROL_CAPS_LOCK as usize, + KCE = 0x0008, + MIGs2 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_2 as usize, + UCWINC = qk_keycode_defines::QK_UNICODE_MODE_WINCOMPOSE as usize, + SQTMPD = qk_keycode_defines::QK_SEQUENCER_TEMPO_DOWN as usize, + KCLANGUAGE2 = 0x0091, + QKMIDITRANSPOSEN2 = 0x715B, + QKAUTOSHIFTUP = 0x7C11, + KCBTN3 = qk_keycode_defines::KC_MS_BTN3 as usize, + QKCOMBOOFF = 0x7C51, + QKCOMBOON = 0x7C50, + QKUSER25 = 0x7E59, + QKMAGICUNSWAPCONTROLCAPSLOCK = 0x7001, + CMTOGG = qk_keycode_defines::QK_COMBO_TOGGLE as usize, + QKMIDICHANNEL1 = 0x7173, + KCMFFD = qk_keycode_defines::KC_MEDIA_FAST_FORWARD as usize, + MIC3 = qk_keycode_defines::QK_MIDI_NOTE_C_3 as usize, + QKMIDINOTECSHARP0 = 0x7104, + QKAUDIOCLICKYDOWN = 0x748E, + PB25 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_25 as usize, + QKSTENOCOMB = 0x74F2, + QKMAGICNKROON = 0x7011, + BSTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE as usize, + QKMAGICSWAPLALTLGUI = 0x7005, + QKMIDINOTEASHARP3 = 0x7131, + KCF24 = 0x0073, + MC0 = qk_keycode_defines::QK_MACRO_0 as usize, + KC5 = 0x0022, + QKMACRO30 = 0x771E, + QKMAGICUNSWAPALTGUI = 0x7015, + KCMPRV = qk_keycode_defines::KC_MEDIA_PREV_TRACK as usize, + KCAUDIOMUTE = 0x00A8, + KCMEDIAEJECT = 0x00B0, + QKMIDITRANSPOSEN6 = 0x7157, + KCF4 = 0x003D, + MICH8 = qk_keycode_defines::QK_MIDI_CHANNEL_8 as usize, + KCLEFTGUI = 0x00E3, + QKUSER24 = 0x7E58, + QKMIDINOTEE2 = 0x711F, + QKMIDINOTEASHARP4 = 0x713D, + KCGRV = qk_keycode_defines::KC_GRAVE as usize, + KCPAST = qk_keycode_defines::KC_KP_ASTERISK as usize, + MIGb2 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_2 as usize, + KCCLR = qk_keycode_defines::KC_CLEAR as usize, + QKUSER0 = 0x7E40, + QKMIDINOTEG2 = 0x7122, + KCNUM = qk_keycode_defines::KC_NUM_LOCK as usize, + QKUNICODEMODEEMACS = 0x7C37, + KCHOME = 0x004A, + SETOGG = qk_keycode_defines::QK_SECURE_TOGGLE as usize, + VKTOGG = qk_keycode_defines::QK_VELOCIKEY_TOGGLE as usize, + JS19 = qk_keycode_defines::QK_JOYSTICK_BUTTON_19 as usize, + KCR = 0x0015, + KCBTN5 = qk_keycode_defines::KC_MS_BTN5 as usize, + MICs3 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_3 as usize, + QKMIDINOTED0 = 0x7105, + KCMSL = qk_keycode_defines::KC_MS_LEFT as usize, + KCN = 0x0011, + KCSLASH = 0x0038, + QKJOYSTICKBUTTON11 = 0x740B, + QKUSER5 = 0x7E45, + KCMNXT = qk_keycode_defines::KC_MEDIA_NEXT_TRACK as usize, + QKKB26 = 0x7E1A, + QKSWAPHANDSOFF = 0x56F4, + JS26 = qk_keycode_defines::QK_JOYSTICK_BUTTON_26 as usize, + KCACL0 = qk_keycode_defines::KC_MS_ACCEL0 as usize, + QKHAPTICBUZZTOGGLE = 0x7C45, + QKMIDICHANNELUP = 0x7184, + QKMIDINOTEF0 = 0x7108, + KCBTN8 = qk_keycode_defines::KC_MS_BTN8 as usize, + KCMUTE = qk_keycode_defines::KC_AUDIO_MUTE as usize, + MID3 = qk_keycode_defines::QK_MIDI_NOTE_D_3 as usize, + QKSPACECADETLEFTCTRLPARENTHESISOPEN = 0x7C18, + QKMIDIOCTAVEUP = 0x7156, + RGBMT = qk_keycode_defines::RGB_MODE_RGBTEST as usize, + QKKB2 = 0x7E02, + QKONESHOTTOGGLE = 0x7C5C, + KCINTERNATIONAL7 = 0x008D, + MITRN1 = qk_keycode_defines::QK_MIDI_TRANSPOSE_N1 as usize, + KCWHD = qk_keycode_defines::KC_MS_WH_DOWN as usize, + JS10 = qk_keycode_defines::QK_JOYSTICK_BUTTON_10 as usize, + MC15 = qk_keycode_defines::QK_MACRO_15 as usize, + QKMIDINOTEC2 = 0x711B, + KCBACKSLASH = 0x0031, + QKUSER19 = 0x7E53, + SCRCPC = qk_keycode_defines::QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE as usize, + KCBSLS = qk_keycode_defines::KC_BACKSLASH as usize, + KCINTERNATIONAL1 = 0x0087, + QKMACRO16 = 0x7710, + QKBOOTLOADER = 0x7C00, + KCF3 = 0x003C, + TLUPPR = qk_keycode_defines::QK_TRI_LAYER_UPPER as usize, + QKKB9 = 0x7E09, + MIE2 = qk_keycode_defines::QK_MIDI_NOTE_E_2 as usize, + MIDb = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_0 as usize, + KCBRK = qk_keycode_defines::KC_PAUSE as usize, + KCLOPT = qk_keycode_defines::KC_LEFT_ALT as usize, + KCLOCKINGSCROLLLOCK = 0x0084, + KCCAPSLOCK = 0x0039, + QKMACRO20 = 0x7714, + RGBMODEGRADIENT = 0x7832, + MIBb1 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_1 as usize, + QKPROGRAMMABLEBUTTON17 = 0x7450, + QKJOYSTICKBUTTON2 = 0x7402, + QKKB0 = 0x7E00, + QKMIDINOTEF4 = 0x7138, + QKMAGICTOGGLEESCAPECAPSLOCK = 0x7022, + QKSEQUENCERTEMPOUP = 0x7204, + QKAREP = qk_keycode_defines::QK_ALT_REPEAT_KEY as usize, + CKUP = qk_keycode_defines::QK_AUDIO_CLICKY_UP as usize, + MC2 = qk_keycode_defines::QK_MACRO_2 as usize, + KCMSBTN1 = 0x00D1, + KCLNG9 = qk_keycode_defines::KC_LANGUAGE_9 as usize, + QKJOYSTICKBUTTON24 = 0x7418, + QKLOCK = 0x7C59, + RGBMOD = qk_keycode_defines::RGB_MODE_FORWARD as usize, + KCF9 = 0x0042, + KCLNG6 = qk_keycode_defines::KC_LANGUAGE_6 as usize, + QKMIDINOTED1 = 0x7111, + KCWWWSEARCH = 0x00B4, + KCCRSL = qk_keycode_defines::KC_CRSEL as usize, + QKJOYSTICKBUTTON22 = 0x7416, + QKMIDINOTEC5 = 0x713F, + PB1 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_1 as usize, + MC19 = qk_keycode_defines::QK_MACRO_19 as usize, + KCLANGUAGE1 = 0x0090, + JS6 = qk_keycode_defines::QK_JOYSTICK_BUTTON_6 as usize, + QKKB11 = 0x7E0B, + KCY = 0x001C, + MIC = qk_keycode_defines::QK_MIDI_NOTE_C_0 as usize, + ECSWAP = qk_keycode_defines::QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK as usize, + QKHAPTICCONTINUOUSDOWN = 0x7C4A, + QKSPACECADETRIGHTSHIFTPARENTHESISCLOSE = 0x7C1B, + QKMIDINOTEB4 = 0x713E, + RGBRMOD = qk_keycode_defines::RGB_MODE_REVERSE as usize, + MITR0 = qk_keycode_defines::QK_MIDI_TRANSPOSE_0 as usize, + KCL = 0x000F, + QKUSER22 = 0x7E56, + QKSPACECADETRIGHTCTRLPARENTHESISCLOSE = 0x7C19, + KCMAIL = 0x00B1, + PB21 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_21 as usize, + RGBMODEKNIGHT = 0x7830, + KCLEFTALT = 0x00E2, + KCF16 = 0x006B, + KCESCAPE = 0x0029, + QKMIDIVELOCITY3 = 0x7169, + KCVOLD = qk_keycode_defines::KC_AUDIO_VOL_DOWN as usize, + QKHAPTICDWELLDOWN = 0x7C4C, + QKAUTOSHIFTOFF = 0x7C14, + KCMSU = qk_keycode_defines::KC_MS_UP as usize, + QKMACRO19 = 0x7713, + KCKBVOLUMEDOWN = 0x0081, + MICs2 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_2 as usize, + PB22 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_22 as usize, + QKSEQUENCERRESOLUTIONDOWN = 0x7205, + RGBHUI = 0x7823, + PB32 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_32 as usize, + KCINTERNATIONAL9 = 0x008F, + DMPLY2 = qk_keycode_defines::QK_DYNAMIC_MACRO_PLAY_2 as usize, + MITRN6 = qk_keycode_defines::QK_MIDI_TRANSPOSE_N6 as usize, + QKUSER9 = 0x7E49, + KCLNG7 = qk_keycode_defines::KC_LANGUAGE_7 as usize, + JS18 = qk_keycode_defines::QK_JOYSTICK_BUTTON_18 as usize, + QKJOYSTICKBUTTON1 = 0x7401, + KCI = 0x000C, + MION = qk_keycode_defines::QK_MIDI_ON as usize, + KCOPER = 0x00A1, + QKBACKLIGHTSTEP = 0x7805, + KCSLEP = qk_keycode_defines::KC_SYSTEM_SLEEP as usize, + PB17 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_17 as usize, + KCINT1 = qk_keycode_defines::KC_INTERNATIONAL_1 as usize, + BLTOGG = qk_keycode_defines::QK_BACKLIGHT_TOGGLE as usize, + QKMAGICEEHANDSRIGHT = 0x701F, + JS13 = qk_keycode_defines::QK_JOYSTICK_BUTTON_13 as usize, + KCBRID = qk_keycode_defines::KC_BRIGHTNESS_DOWN as usize, + AGLSWP = qk_keycode_defines::QK_MAGIC_SWAP_LALT_LGUI as usize, + QKAUDIOCLICKYOFF = 0x748C, + KCMSUP = 0x00CD, + KCMSBTN5 = 0x00D5, + QKMAKE = 0x7C04, + KCRSFT = qk_keycode_defines::KC_RIGHT_SHIFT as usize, + KCRCTL = qk_keycode_defines::KC_RIGHT_CTRL as usize, + BLDOWN = qk_keycode_defines::QK_BACKLIGHT_DOWN as usize, + MICH10 = qk_keycode_defines::QK_MIDI_CHANNEL_10 as usize, + MC11 = qk_keycode_defines::QK_MACRO_11 as usize, + KCMPLY = qk_keycode_defines::KC_MEDIA_PLAY_PAUSE as usize, + MILEG = qk_keycode_defines::QK_MIDI_LEGATO as usize, + MIGs1 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_1 as usize, + QKPROGRAMMABLEBUTTON21 = 0x7454, + QKJOYSTICKBUTTON7 = 0x7407, + QKALTREPEATKEY = 0x7C7A, + QKDYNAMICMACROPLAY2 = 0x7C57, + QKHAPTICTOGGLE = 0x7C42, + MIEb4 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_4 as usize, + QKPROGRAMMABLEBUTTON11 = 0x744A, + QKMIDIOCTAVE5 = 0x7152, + KCNUHS = qk_keycode_defines::KC_NONUS_HASH as usize, + RGBVAI = 0x7827, + QKMIDINOTEFSHARP0 = 0x7109, + KCF19 = 0x006E, + CGSWAP = qk_keycode_defines::QK_MAGIC_SWAP_CTL_GUI as usize, + KCMYCOMPUTER = 0x00B3, + MITRN3 = qk_keycode_defines::QK_MIDI_TRANSPOSE_N3 as usize, + JS29 = qk_keycode_defines::QK_JOYSTICK_BUTTON_29 as usize, + MIBNDD = qk_keycode_defines::QK_MIDI_PITCH_BEND_DOWN as usize, + MIOCN1 = qk_keycode_defines::QK_MIDI_OCTAVE_N1 as usize, + MIOCTU = qk_keycode_defines::QK_MIDI_OCTAVE_UP as usize, + KCWFAV = qk_keycode_defines::KC_WWW_FAVORITES as usize, + MIE3 = qk_keycode_defines::QK_MIDI_NOTE_E_3 as usize, + QKKB30 = 0x7E1E, + MIBNDU = qk_keycode_defines::QK_MIDI_PITCH_BEND_UP as usize, + MIC1 = qk_keycode_defines::QK_MIDI_NOTE_C_1 as usize, + NKON = qk_keycode_defines::QK_MAGIC_NKRO_ON as usize, + MIG = qk_keycode_defines::QK_MIDI_NOTE_G_0 as usize, + KCRALT = qk_keycode_defines::KC_RIGHT_ALT as usize, + MIMODD = qk_keycode_defines::QK_MIDI_MODULATION_SPEED_DOWN as usize, + KCF20 = 0x006F, + KCNUBS = qk_keycode_defines::KC_NONUS_BACKSLASH as usize, + QKMIDINOTEF1 = 0x7114, + QKMIDINOTECSHARP3 = 0x7128, + KCCLAG = qk_keycode_defines::KC_CLEAR_AGAIN as usize, + KCENT = qk_keycode_defines::KC_ENTER as usize, + QKSTENOBOLT = 0x74F0, + MUNEXT = qk_keycode_defines::QK_MUSIC_MODE_NEXT as usize, + KCWBAK = qk_keycode_defines::KC_WWW_BACK as usize, + MISUST = qk_keycode_defines::QK_MIDI_SUSTAIN as usize, + KCLANGUAGE4 = 0x0093, + QKSEQUENCERON = 0x7200, + CLCTRL = qk_keycode_defines::QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON as usize, + MIGb4 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_4 as usize, + QKUSER1 = 0x7E41, + GUON = qk_keycode_defines::QK_MAGIC_GUI_ON as usize, + MIE = qk_keycode_defines::QK_MIDI_NOTE_E_0 as usize, + QKSWAPHANDSON = 0x56F5, + QKAUTOSHIFTTOGGLE = 0x7C15, + QKMAGICTOGGLEALTGUI = 0x7016, + MIC5 = qk_keycode_defines::QK_MIDI_NOTE_C_5 as usize, + JS3 = qk_keycode_defines::QK_JOYSTICK_BUTTON_3 as usize, + QKMIDINOTEE4 = 0x7137, + MIDb1 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_1 as usize, + QKCLEAREEPROM = 0x7C03, + QKMIDIVELOCITY2 = 0x7168, + KCV = 0x0019, + CGLSWP = qk_keycode_defines::QK_MAGIC_SWAP_LCTL_LGUI as usize, + SQRESU = qk_keycode_defines::QK_SEQUENCER_RESOLUTION_UP as usize, + KCAGAIN = 0x0079, + KCF13 = 0x0068, + QKKB4 = 0x7E04, + MICH3 = qk_keycode_defines::QK_MIDI_CHANNEL_3 as usize, + QKOUTPUTBLUETOOTH = 0x7C22, + QKSTENOGEMINI = 0x74F1, + SQOFF = qk_keycode_defines::QK_SEQUENCER_OFF as usize, + MC30 = qk_keycode_defines::QK_MACRO_30 as usize, + MICs5 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_5 as usize, + KCMSBTN3 = 0x00D3, + PB29 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_29 as usize, + HFRST = qk_keycode_defines::QK_HAPTIC_RESET as usize, + KCINTERNATIONAL3 = 0x0089, + QKOUTPUTUSB = 0x7C21, + KCSEMICOLON = 0x0033, + MIC2 = qk_keycode_defines::QK_MIDI_NOTE_C_2 as usize, + QKMIDIPITCHBENDUP = 0x718F, + QKMIDINOTEG4 = 0x713A, + MIBb = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_0 as usize, + QKMAGICNKROOFF = 0x7012, + MIBb5 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_5 as usize, + MIVL7 = qk_keycode_defines::QK_MIDI_VELOCITY_7 as usize, + KCM = 0x0010, + RGBMODEREVERSE = 0x7822, + KCF11 = 0x0044, + QKPROGRAMMABLEBUTTON18 = 0x7451, + QKMIDINOTEGSHARP0 = 0x710B, + EHRGHT = qk_keycode_defines::QK_MAGIC_EE_HANDS_RIGHT as usize, + KCRIGHTALT = 0x00E6, + QKAUDIOTOGGLE = 0x7482, + KCUNDO = 0x007A, + KCKP1 = 0x0059, + KCEXSEL = 0x00A4, + KCPDOT = qk_keycode_defines::KC_KP_DOT as usize, + UCBSD = qk_keycode_defines::QK_UNICODE_MODE_BSD as usize, + KCTRANSPARENT = 0x0001, + SCLCPO = qk_keycode_defines::QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN as usize, + KCMEDIAPREVTRACK = 0x00AC, + QKMAGICUNSWAPBACKSLASHBACKSPACE = 0x700F, + QKUSER14 = 0x7E4E, + MIAs2 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_2 as usize, + QKMIDIOFF = 0x7101, + MC1 = qk_keycode_defines::QK_MACRO_1 as usize, + QKDYNAMICTAPPINGTERMDOWN = 0x7C72, + QKDYNAMICTAPPINGTERMUP = 0x7C71, + MITR6 = qk_keycode_defines::QK_MIDI_TRANSPOSE_6 as usize, + MICH15 = qk_keycode_defines::QK_MIDI_CHANNEL_15 as usize, + KCRCMD = qk_keycode_defines::KC_RIGHT_GUI as usize, + KCKBPOWER = 0x0066, + KCWWWHOME = 0x00B5, + QKMIDINOTEC0 = 0x7103, + QKMAGICGUION = 0x7009, + HFBUZZ = qk_keycode_defines::QK_HAPTIC_BUZZ_TOGGLE as usize, + QKMACRO14 = 0x770E, + QKJOYSTICKBUTTON18 = 0x7412, + PB13 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_13 as usize, + MIVL9 = qk_keycode_defines::QK_MIDI_VELOCITY_9 as usize, + MIOFF = qk_keycode_defines::QK_MIDI_OFF as usize, + PB4 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_4 as usize, + KCPAGEDOWN = 0x004E, + MC18 = qk_keycode_defines::QK_MACRO_18 as usize, + NKTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_NKRO as usize, + MIG1 = qk_keycode_defines::QK_MIDI_NOTE_G_1 as usize, + QKMIDICHANNEL3 = 0x7175, + KCMSBTN7 = 0x00D7, + QKONESHOTOFF = 0x7C5B, + QKSEQUENCERTOGGLE = 0x7202, + CGRSWP = qk_keycode_defines::QK_MAGIC_SWAP_RCTL_RGUI as usize, + KCCLEAR = 0x009C, + KCWWWBACK = 0x00B6, + QKKB7 = 0x7E07, + KC9 = 0x0026, + KCCALCULATOR = 0x00B2, + KCMSBTN2 = 0x00D2, + MIOC1 = qk_keycode_defines::QK_MIDI_OCTAVE_1 as usize, + MIOC3 = qk_keycode_defines::QK_MIDI_OCTAVE_3 as usize, + SCRSPC = qk_keycode_defines::QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE as usize, + KCMSWHUP = 0x00D9, + HFFDBK = qk_keycode_defines::QK_HAPTIC_FEEDBACK_TOGGLE as usize, + KCSYSTEMSLEEP = 0x00A6, + QKHAPTICDWELLUP = 0x7C4B, + MIOC7 = qk_keycode_defines::QK_MIDI_OCTAVE_7 as usize, + QKPROGRAMMABLEBUTTON5 = 0x7444, + QKJOYSTICKBUTTON20 = 0x7414, + QKMIDIPORTAMENTO = 0x7187, + QKPROGRAMMABLEBUTTON1 = 0x7440, + KCMEDIAFASTFORWARD = 0x00BB, + QKUSER26 = 0x7E5A, + QKKB31 = 0x7E1F, + KCBSPC = qk_keycode_defines::KC_BACKSPACE as usize, + MC12 = qk_keycode_defines::QK_MACRO_12 as usize, + QKUSER12 = 0x7E4C, + QKMIDINOTEB3 = 0x7132, + QKUSER13 = 0x7E4D, + SEREQ = qk_keycode_defines::QK_SECURE_REQUEST as usize, + JS5 = qk_keycode_defines::QK_JOYSTICK_BUTTON_5 as usize, + MICs4 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_4 as usize, + CKTOGG = qk_keycode_defines::QK_AUDIO_CLICKY_TOGGLE as usize, + KCLEFTCTRL = 0x00E0, + MID1 = qk_keycode_defines::QK_MIDI_NOTE_D_1 as usize, + KCLSFT = qk_keycode_defines::KC_LEFT_SHIFT as usize, + MID4 = qk_keycode_defines::QK_MIDI_NOTE_D_4 as usize, + QKMACRO17 = 0x7711, + KCCALC = qk_keycode_defines::KC_CALCULATOR as usize, + KCP1 = qk_keycode_defines::KC_KP_1 as usize, + QKMIDINOTEGSHARP4 = 0x713B, + KCUP = 0x0052, + AGTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_ALT_GUI as usize, + KCBTN4 = qk_keycode_defines::KC_MS_BTN4 as usize, + QKJOYSTICKBUTTON6 = 0x7406, + JS1 = qk_keycode_defines::QK_JOYSTICK_BUTTON_1 as usize, + QKKB14 = 0x7E0E, + QKONESHOTON = 0x7C5A, + KCLANGUAGE7 = 0x0096, + KCD = 0x0007, + MIOC4 = qk_keycode_defines::QK_MIDI_OCTAVE_4 as usize, + MITOGG = qk_keycode_defines::QK_MIDI_TOGGLE as usize, + OSON = qk_keycode_defines::QK_ONE_SHOT_ON as usize, + QKMACRO24 = 0x7718, + MICs1 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_1 as usize, + MIVL1 = qk_keycode_defines::QK_MIDI_VELOCITY_1 as usize, + KCKPPLUS = 0x0057, + QKMIDINOTED2 = 0x711D, + HFDWLU = qk_keycode_defines::QK_HAPTIC_DWELL_UP as usize, + MICHND = qk_keycode_defines::QK_MIDI_CHANNEL_DOWN as usize, + KCPGDN = qk_keycode_defines::KC_PAGE_DOWN as usize, + KCNONUSBACKSLASH = 0x0064, + KCACL2 = qk_keycode_defines::KC_MS_ACCEL2 as usize, + KCLBRC = qk_keycode_defines::KC_LEFT_BRACKET as usize, + RGBMR = qk_keycode_defines::RGB_MODE_RAINBOW as usize, + QKMAGICTOGGLECONTROLCAPSLOCK = 0x7002, + KCCNCL = qk_keycode_defines::KC_CANCEL as usize, + QKMACRO12 = 0x770C, + KCINSERT = 0x0049, + ACTOGG = qk_keycode_defines::QK_AUTOCORRECT_TOGGLE as usize, + KCLNG5 = qk_keycode_defines::KC_LANGUAGE_5 as usize, + KCO = 0x0012, + BSSWAP = qk_keycode_defines::QK_MAGIC_SWAP_BACKSLASH_BACKSPACE as usize, + MIAb = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_0 as usize, + AGRSWP = qk_keycode_defines::QK_MAGIC_SWAP_RALT_RGUI as usize, + CLCAPS = qk_keycode_defines::QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF as usize, + KCLANGUAGE6 = 0x0095, + JS22 = qk_keycode_defines::QK_JOYSTICK_BUTTON_22 as usize, + QKMAGICUNSWAPRCTLRGUI = 0x701A, + QKJOYSTICKBUTTON27 = 0x741B, + QKMIDINOTEA0 = 0x710C, + QKUNICODEMODEWINDOWS = 0x7C34, + QKMIDICHANNEL6 = 0x7178, + QKMAGICCAPSLOCKASCONTROLOFF = 0x7003, + MIBb2 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_2 as usize, + KCROPT = qk_keycode_defines::KC_RIGHT_ALT as usize, + KCMSLEFT = 0x00CF, + MIDs5 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_5 as usize, + MC27 = qk_keycode_defines::QK_MACRO_27 as usize, + QKUNICODEMODEWINCOMPOSE = 0x7C36, + PB9 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_9 as usize, + MIGb1 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_1 as usize, + QKMIDINOTEB2 = 0x7126, + KCPCMM = qk_keycode_defines::KC_KP_COMMA as usize, + QKAUTOCORRECTOFF = 0x7C75, + KCDEL = qk_keycode_defines::KC_DELETE as usize, + GENORM = qk_keycode_defines::QK_MAGIC_UNSWAP_GRAVE_ESC as usize, + SCSENT = qk_keycode_defines::QK_SPACE_CADET_RIGHT_SHIFT_ENTER as usize, + MIVELD = qk_keycode_defines::QK_MIDI_VELOCITY_DOWN as usize, + DBTOGG = qk_keycode_defines::QK_DEBUG_TOGGLE as usize, + KCMSTP = qk_keycode_defines::KC_MEDIA_STOP as usize, + QKMIDICHANNEL7 = 0x7179, + QKMACRO13 = 0x770D, + MIVL6 = qk_keycode_defines::QK_MIDI_VELOCITY_6 as usize, + MISOST = qk_keycode_defines::QK_MIDI_SOSTENUTO as usize, + JS16 = qk_keycode_defines::QK_JOYSTICK_BUTTON_16 as usize, + QKMIDINOTEF2 = 0x7120, + KC1 = 0x001E, + MIOC0 = qk_keycode_defines::QK_MIDI_OCTAVE_0 as usize, + QKMIDICHANNEL10 = 0x717C, + NKOFF = qk_keycode_defines::QK_MAGIC_NKRO_OFF as usize, + QKMIDINOTEE5 = 0x7143, + QKKB16 = 0x7E10, + PB18 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_18 as usize, + CGLNRM = qk_keycode_defines::QK_MAGIC_UNSWAP_LCTL_LGUI as usize, + QKMIDIMODULATIONSPEEDDOWN = 0x718C, + KCINTERNATIONAL5 = 0x008B, + MIDs4 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_4 as usize, + QKSWAPHANDSONESHOT = 0x56F6, + KCALGR = qk_keycode_defines::KC_RIGHT_ALT as usize, + QKUSER29 = 0x7E5D, + ASRPT = qk_keycode_defines::QK_AUTO_SHIFT_REPORT as usize, + RGBMK = qk_keycode_defines::RGB_MODE_KNIGHT as usize, + SHON = qk_keycode_defines::QK_SWAP_HANDS_ON as usize, + QKJOYSTICKBUTTON12 = 0x740C, + MIDb2 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_2 as usize, + KCRIGHT = 0x004F, + QKPROGRAMMABLEBUTTON3 = 0x7442, + SQTOGG = qk_keycode_defines::QK_SEQUENCER_TOGGLE as usize, + AGLNRM = qk_keycode_defines::QK_MAGIC_UNSWAP_LALT_LGUI as usize, + JS31 = qk_keycode_defines::QK_JOYSTICK_BUTTON_31 as usize, + KCCPNL = qk_keycode_defines::KC_CONTROL_PANEL as usize, + EHLEFT = qk_keycode_defines::QK_MAGIC_EE_HANDS_LEFT as usize, + QKMIDITRANSPOSE2 = 0x715F, + QKUSER27 = 0x7E5B, + KCEXSL = qk_keycode_defines::KC_EXSEL as usize, + SQSCLR = qk_keycode_defines::QK_SEQUENCER_STEPS_CLEAR as usize, + KCBTN6 = qk_keycode_defines::KC_MS_BTN6 as usize, + QKMAGICTOGGLEBACKSLASHBACKSPACE = 0x7010, + MIA4 = qk_keycode_defines::QK_MIDI_NOTE_A_4 as usize, + KCQUOTE = 0x0034, + PB7 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_7 as usize, + BLUP = qk_keycode_defines::QK_BACKLIGHT_UP as usize, + QKMACRO28 = 0x771C, + KCLANGUAGE9 = 0x0098, + CKON = qk_keycode_defines::QK_AUDIO_CLICKY_ON as usize, + QKMIDINOTEDSHARP4 = 0x7136, + KCSLSH = qk_keycode_defines::KC_SLASH as usize, + PB15 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_15 as usize, + QKMIDIMODULATIONSPEEDUP = 0x718D, + QKPROGRAMMABLEBUTTON6 = 0x7445, + MIFs4 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_4 as usize, + KCP0 = qk_keycode_defines::KC_KP_0 as usize, + KCPAGEUP = 0x004B, + KCMSR = qk_keycode_defines::KC_MS_RIGHT as usize, + MC3 = qk_keycode_defines::QK_MACRO_3 as usize, + MC5 = qk_keycode_defines::QK_MACRO_5 as usize, + QKMIDINOTEA3 = 0x7130, + KCCRSEL = 0x00A3, + KCMEDIASELECT = 0x00AF, + RGBMODERAINBOW = 0x782D, + KCP3 = qk_keycode_defines::KC_KP_3 as usize, + MC10 = qk_keycode_defines::QK_MACRO_10 as usize, + QKMAGICSWAPLCTLLGUI = 0x7017, + QKMACRO4 = 0x7704, + KCLOCKINGNUMLOCK = 0x0083, + QKMACRO9 = 0x7709, + QKSPACECADETLEFTSHIFTPARENTHESISOPEN = 0x7C1A, + QKSWAPHANDSTOGGLE = 0x56F0, + KCINT2 = qk_keycode_defines::KC_INTERNATIONAL_2 as usize, + DTDOWN = qk_keycode_defines::QK_DYNAMIC_TAPPING_TERM_DOWN as usize, + RGBSPD = 0x782A, + KCKPMINUS = 0x0056, + QKUNICODEMODENEXT = 0x7C30, + QKKB3 = 0x7E03, + QKMIDINOTEGSHARP3 = 0x712F, + MIEb1 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_1 as usize, + QKCAPSWORDTOGGLE = 0x7C73, + ECTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK as usize, + KCF21 = 0x0070, + MIF2 = qk_keycode_defines::QK_MIDI_NOTE_F_2 as usize, + RGBVAD = 0x7828, + KCINT6 = qk_keycode_defines::KC_INTERNATIONAL_6 as usize, + MIF3 = qk_keycode_defines::QK_MIDI_NOTE_F_3 as usize, + QKMACRO23 = 0x7717, + QKMIDIVELOCITY7 = 0x716D, + MC26 = qk_keycode_defines::QK_MACRO_26 as usize, + MICs = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_0 as usize, + QKMIDINOTEFSHARP2 = 0x7121, + KCEQUAL = 0x002E, + KCRETN = qk_keycode_defines::KC_RETURN as usize, + KCSCLN = qk_keycode_defines::KC_SEMICOLON as usize, + KCMEDIAPLAYPAUSE = 0x00AE, + MC25 = qk_keycode_defines::QK_MACRO_25 as usize, + MID2 = qk_keycode_defines::QK_MIDI_NOTE_D_2 as usize, + QKMIDINOTEDSHARP3 = 0x712A, + QKSECUREREQUEST = 0x7C63, + UCEMAC = qk_keycode_defines::QK_UNICODE_MODE_EMACS as usize, + RGBMODESNAKE = 0x782F, + QKAUDIOCLICKYON = 0x748B, + KCEQL = qk_keycode_defines::KC_EQUAL as usize, + JS8 = qk_keycode_defines::QK_JOYSTICK_BUTTON_8 as usize, + KCKPENTER = 0x0058, + QKMACRO11 = 0x770B, + AGNORM = qk_keycode_defines::QK_MAGIC_UNSWAP_ALT_GUI as usize, + QKPROGRAMMABLEBUTTON19 = 0x7452, + KCSPC = qk_keycode_defines::KC_SPACE as usize, + KCSCROLLLOCK = 0x0047, + QKPROGRAMMABLEBUTTON7 = 0x7446, + KCF7 = 0x0040, + RGBMX = qk_keycode_defines::RGB_MODE_XMAS as usize, + MC8 = qk_keycode_defines::QK_MACRO_8 as usize, + KCQUOT = qk_keycode_defines::KC_QUOTE as usize, + KCKPDOT = 0x0063, + MIEb2 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_2 as usize, + MICH16 = qk_keycode_defines::QK_MIDI_CHANNEL_16 as usize, + QKMIDICHANNEL12 = 0x717E, + QKMACRO18 = 0x7712, + KCEJCT = qk_keycode_defines::KC_MEDIA_EJECT as usize, + KCBTN7 = qk_keycode_defines::KC_MS_BTN7 as usize, + PB30 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_30 as usize, + MITR4 = qk_keycode_defines::QK_MIDI_TRANSPOSE_4 as usize, + KCA = 0x0004, + QKMIDINOTED5 = 0x7141, + QKMAGICTOGGLEGUI = 0x700B, + QKKB29 = 0x7E1D, + QKJOYSTICKBUTTON26 = 0x741A, + KCPASTE = 0x007D, + QKMIDINOTEF5 = 0x7144, + RGBTOG = 0x7820, + MIC4 = qk_keycode_defines::QK_MIDI_NOTE_C_4 as usize, + MICH7 = qk_keycode_defines::QK_MIDI_CHANNEL_7 as usize, + DMREC2 = qk_keycode_defines::QK_DYNAMIC_MACRO_RECORD_START_2 as usize, + QKREBOOT = 0x7C01, + MIAb2 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_2 as usize, + KCKP6 = 0x005E, + QKMIDINOTEASHARP2 = 0x7125, + KCF17 = 0x006C, + JS27 = qk_keycode_defines::QK_JOYSTICK_BUTTON_27 as usize, + PB5 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_5 as usize, + AUNEXT = qk_keycode_defines::QK_AUDIO_VOICE_NEXT as usize, + KCLNG8 = qk_keycode_defines::KC_LANGUAGE_8 as usize, + QKCOMBOTOGGLE = 0x7C52, + BLBRTG = qk_keycode_defines::QK_BACKLIGHT_TOGGLE_BREATHING as usize, + QKKB13 = 0x7E0D, + QKMIDINOTEFSHARP5 = 0x7145, + KCCOMM = qk_keycode_defines::KC_COMMA as usize, + QKMIDICHANNEL9 = 0x717B, + QKPROGRAMMABLEBUTTON28 = 0x745B, + MIBb3 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_3 as usize, + QKJOYSTICKBUTTON3 = 0x7403, + QKMAGICUNSWAPRALTRGUI = 0x7008, + QKMIDIOCTAVE4 = 0x7151, + KCLANGUAGE3 = 0x0092, + KCF1 = 0x003A, + KCKPASTERISK = 0x0055, + QKGRAVEESCAPE = 0x7C16, + MIAs5 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_5 as usize, + MIDs2 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_2 as usize, + QKKB8 = 0x7E08, + MICH4 = qk_keycode_defines::QK_MIDI_CHANNEL_4 as usize, + MIE4 = qk_keycode_defines::QK_MIDI_NOTE_E_4 as usize, + KCLSCR = qk_keycode_defines::KC_LOCKING_SCROLL_LOCK as usize, + QKJOYSTICKBUTTON25 = 0x7419, + QKPROGRAMMABLEBUTTON25 = 0x7458, + KCAPPLICATION = 0x0065, + CKDOWN = qk_keycode_defines::QK_AUDIO_CLICKY_DOWN as usize, + QKMAGICUNSWAPCTLGUI = 0x701C, + QKMIDICHANNEL13 = 0x717F, + QKMAGICSWAPRALTRGUI = 0x7007, + QKMIDINOTEDSHARP1 = 0x7112, + QKMIDITRANSPOSEN4 = 0x7159, + KCINT9 = qk_keycode_defines::KC_INTERNATIONAL_9 as usize, + QKSPACECADETRIGHTSHIFTENTER = 0x7C1E, + QKMIDINOTED3 = 0x7129, + KCKPSLASH = 0x0054, + MC23 = qk_keycode_defines::QK_MACRO_23 as usize, + SHMOFF = qk_keycode_defines::QK_SWAP_HANDS_MOMENTARY_OFF as usize, + KCSEPR = qk_keycode_defines::KC_SEPARATOR as usize, + SHOFF = qk_keycode_defines::QK_SWAP_HANDS_OFF as usize, + MIF = qk_keycode_defines::QK_MIDI_NOTE_F_0 as usize, + KCF6 = 0x003F, + MITRSU = qk_keycode_defines::QK_MIDI_TRANSPOSE_UP as usize, + SCRAPC = qk_keycode_defines::QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE as usize, + PB6 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_6 as usize, + QKSEQUENCERRESOLUTIONUP = 0x7206, + KCMSD = qk_keycode_defines::KC_MS_DOWN as usize, + PB26 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_26 as usize, + QKPROGRAMMABLEBUTTON10 = 0x7449, + QKKB17 = 0x7E11, + KCPSTE = qk_keycode_defines::KC_PASTE as usize, + HFDWLD = qk_keycode_defines::QK_HAPTIC_DWELL_DOWN as usize, + QKMAGICTOGGLECTLGUI = 0x701D, + PB16 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_16 as usize, + QKAUTOSHIFTREPORT = 0x7C12, + QKMIDIVELOCITY8 = 0x716E, + QKMIDIVELOCITYDOWN = 0x7171, + QKUSER31 = 0x7E5F, + KCPSLS = qk_keycode_defines::KC_KP_SLASH as usize, + ASON = qk_keycode_defines::QK_AUTO_SHIFT_ON as usize, + KCERAS = qk_keycode_defines::KC_ALTERNATE_ERASE as usize, + JS23 = qk_keycode_defines::QK_JOYSTICK_BUTTON_23 as usize, + KCMRWD = qk_keycode_defines::KC_MEDIA_REWIND as usize, + QKMIDINOTEC4 = 0x7133, + KCMSWHDOWN = 0x00DA, + QKJOYSTICKBUTTON9 = 0x7409, + QKMAGICSWAPRCTLRGUI = 0x7019, + SEUNLK = qk_keycode_defines::QK_SECURE_UNLOCK as usize, + QKJOYSTICKBUTTON15 = 0x740F, + QKHAPTICON = 0x7C40, + QKMACRO0 = 0x7700, + KCP = 0x0013, + RGBSPI = 0x7829, + QKDYNAMICTAPPINGTERMPRINT = 0x7C70, + KCB = 0x0005, + KCBRIGHTNESSUP = 0x00BD, + QKAUDIOVOICEPREVIOUS = 0x7495, + KCLAUNCHPAD = 0x00C2, + RGBMODEPLAIN = 0x782B, + KCCOPY = 0x007C, + QKJOYSTICKBUTTON28 = 0x741C, + KCF5 = 0x003E, + MIAs1 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_1 as usize, + QKMACRO15 = 0x770F, + JS21 = qk_keycode_defines::QK_JOYSTICK_BUTTON_21 as usize, + QKPROGRAMMABLEBUTTON24 = 0x7457, + QKPROGRAMMABLEBUTTON13 = 0x744C, + KC7 = 0x0024, + KCWSTP = qk_keycode_defines::KC_WWW_STOP as usize, + JS28 = qk_keycode_defines::QK_JOYSTICK_BUTTON_28 as usize, + OSTOGG = qk_keycode_defines::QK_ONE_SHOT_TOGGLE as usize, + KCFIND = 0x007E, + KC8 = 0x0025, + MIAOFF = qk_keycode_defines::QK_MIDI_ALL_NOTES_OFF as usize, + QKMAGICTOGGLENKRO = 0x7013, + GUTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_GUI as usize, + MIE1 = qk_keycode_defines::QK_MIDI_NOTE_E_1 as usize, + KCPSCR = qk_keycode_defines::KC_PRINT_SCREEN as usize, + MIOCN2 = qk_keycode_defines::QK_MIDI_OCTAVE_N2 as usize, + AGRNRM = qk_keycode_defines::QK_MAGIC_UNSWAP_RALT_RGUI as usize, + MC29 = qk_keycode_defines::QK_MACRO_29 as usize, + CMON = qk_keycode_defines::QK_COMBO_ON as usize, + QKBOOT = qk_keycode_defines::QK_BOOTLOADER as usize, + KCWFWD = qk_keycode_defines::KC_WWW_FORWARD as usize, + CLTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK as usize, + QKMAGICSWAPALTGUI = 0x7014, + JS20 = qk_keycode_defines::QK_JOYSTICK_BUTTON_20 as usize, + PB20 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_20 as usize, + QKMIDILEGATO = 0x718A, + KCMEDIASTOP = 0x00AD, + KCINS = qk_keycode_defines::KC_INSERT as usize, + AUPREV = qk_keycode_defines::QK_AUDIO_VOICE_PREVIOUS as usize, + BLOFF = qk_keycode_defines::QK_BACKLIGHT_OFF as usize, + KOON = qk_keycode_defines::QK_KEY_OVERRIDE_ON as usize, + RGBMODEFORWARD = 0x7821, + DMRSTP = qk_keycode_defines::QK_DYNAMIC_MACRO_RECORD_STOP as usize, + MC9 = qk_keycode_defines::QK_MACRO_9 as usize, + KCSYRQ = qk_keycode_defines::KC_SYSTEM_REQUEST as usize, + QKMIDINOTEB5 = 0x714A, + HFTOGG = qk_keycode_defines::QK_HAPTIC_TOGGLE as usize, + QKMACRO6 = 0x7706, + QKMAGICUNSWAPLALTLGUI = 0x7006, + KCRETURN = 0x009E, + KCP9 = qk_keycode_defines::KC_KP_9 as usize, + MICHNU = qk_keycode_defines::QK_MIDI_CHANNEL_UP as usize, + MIMODU = qk_keycode_defines::QK_MIDI_MODULATION_SPEED_UP as usize, + KCGRAVE = 0x0035, + KCWHL = qk_keycode_defines::KC_MS_WH_LEFT as usize, + MICH9 = qk_keycode_defines::QK_MIDI_CHANNEL_9 as usize, + KCRBRC = qk_keycode_defines::KC_RIGHT_BRACKET as usize, + KCLNG1 = qk_keycode_defines::KC_LANGUAGE_1 as usize, + RGBMTW = qk_keycode_defines::RGB_MODE_TWINKLE as usize, + KCP8 = qk_keycode_defines::KC_KP_8 as usize, + PB27 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_27 as usize, + SCLAPO = qk_keycode_defines::QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN as usize, + MIDb5 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_5 as usize, + QKUSER6 = 0x7E46, + PB10 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_10 as usize, + RGBSAI = 0x7825, + KCINTERNATIONAL6 = 0x008C, + OUBT = qk_keycode_defines::QK_OUTPUT_BLUETOOTH as usize, + MICH13 = qk_keycode_defines::QK_MIDI_CHANNEL_13 as usize, + KCKP2 = 0x005A, + QKPROGRAMMABLEBUTTON15 = 0x744E, + QKAUTOCORRECTTOGGLE = 0x7C76, + KCALTERNATEERASE = 0x0099, + MC24 = qk_keycode_defines::QK_MACRO_24 as usize, + KCKP0 = 0x0062, + QKPROGRAMMABLEBUTTON32 = 0x745F, + QKJOYSTICKBUTTON21 = 0x7415, + QKMAGICEEHANDSLEFT = 0x701E, + KCESC = qk_keycode_defines::KC_ESCAPE as usize, + JS17 = qk_keycode_defines::QK_JOYSTICK_BUTTON_17 as usize, + MC14 = qk_keycode_defines::QK_MACRO_14 as usize, + MIG3 = qk_keycode_defines::QK_MIDI_NOTE_G_3 as usize, + KCSTOP = 0x0078, + DTUP = qk_keycode_defines::QK_DYNAMIC_TAPPING_TERM_UP as usize, + PB12 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_12 as usize, + KCF23 = 0x0072, + MC4 = qk_keycode_defines::QK_MACRO_4 as usize, + QKHAPTICCONTINUOUSUP = 0x7C49, + QKREPEATKEY = 0x7C79, + KCTAB = 0x002B, + KCCOMMA = 0x0036, + QKAUDIOCLICKYTOGGLE = 0x748A, + QKSPACECADETLEFTALTPARENTHESISOPEN = 0x7C1C, + KCMSACCEL1 = 0x00DE, + KCNONUSHASH = 0x0032, + QKUSER20 = 0x7E54, + RGBMODERGBTEST = 0x7833, + QKMIDICHANNEL16 = 0x7182, + MIG2 = qk_keycode_defines::QK_MIDI_NOTE_G_2 as usize, + KCPRINTSCREEN = 0x0046, + KCSELECT = 0x0077, + MIB3 = qk_keycode_defines::QK_MIDI_NOTE_B_3 as usize, + MIA3 = qk_keycode_defines::QK_MIDI_NOTE_A_3 as usize, + KCS = 0x0016, + QKAUTOSHIFTON = 0x7C13, + QKMIDITRANSPOSEDOWN = 0x7164, + QKMIDINOTEDSHARP0 = 0x7106, + MICH6 = qk_keycode_defines::QK_MIDI_CHANNEL_6 as usize, + QKMACRO3 = 0x7703, + RGBMODESWIRL = 0x782E, + OSOFF = qk_keycode_defines::QK_ONE_SHOT_OFF as usize, + SQON = qk_keycode_defines::QK_SEQUENCER_ON as usize, + QKPROGRAMMABLEBUTTON8 = 0x7447, + SELOCK = qk_keycode_defines::QK_SECURE_LOCK as usize, + QKKEYOVERRIDEON = 0x7C5E, + KCPGUP = qk_keycode_defines::KC_PAGE_UP as usize, + MC7 = qk_keycode_defines::QK_MACRO_7 as usize, + QKMIDIVELOCITY4 = 0x716A, + KCPPLS = qk_keycode_defines::KC_KP_PLUS as usize, + MIBb4 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_4 as usize, + QKMIDINOTEGSHARP2 = 0x7123, + MIAb1 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_1 as usize, + JS30 = qk_keycode_defines::QK_JOYSTICK_BUTTON_30 as usize, + KCX = 0x001B, + QKMIDINOTEE3 = 0x712B, + MIVL4 = qk_keycode_defines::QK_MIDI_VELOCITY_4 as usize, + KCKP3 = 0x005B, + KCEXECUTE = 0x0074, + QKVELOCIKEYTOGGLE = 0x7C17, + KCF8 = 0x0041, + RGBMP = qk_keycode_defines::RGB_MODE_PLAIN as usize, + QKMAGICSWAPCTLGUI = 0x701B, + KCPWR = qk_keycode_defines::KC_SYSTEM_POWER as usize, + QKMIDIVELOCITY6 = 0x716C, + KCMINUS = 0x002D, + KCWSCH = qk_keycode_defines::KC_WWW_SEARCH as usize, + KCLCMD = qk_keycode_defines::KC_LEFT_GUI as usize, + MIAb4 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_4 as usize, + QKMIDISOSTENUTO = 0x7188, + QKMIDICHANNEL2 = 0x7174, + MC16 = qk_keycode_defines::QK_MACRO_16 as usize, + KCLANGUAGE8 = 0x0097, + QKMIDIOCTAVE1 = 0x714E, + QKMIDINOTEFSHARP4 = 0x7139, + AGSWAP = qk_keycode_defines::QK_MAGIC_SWAP_ALT_GUI as usize, + QKPROGRAMMABLEBUTTON29 = 0x745C, + MIOC5 = qk_keycode_defines::QK_MIDI_OCTAVE_5 as usize, + QKJOYSTICKBUTTON23 = 0x7417, + KCP5 = qk_keycode_defines::KC_KP_5 as usize, + KCSYSTEMREQUEST = 0x009A, + MIDb3 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_3 as usize, + KCLEFT = 0x0050, + QKMIDINOTEF3 = 0x712C, + SHMON = qk_keycode_defines::QK_SWAP_HANDS_MOMENTARY_ON as usize, + KCCUT = 0x007B, + QKMACRO2 = 0x7702, + KCBTN1 = qk_keycode_defines::KC_MS_BTN1 as usize, + QKPROGRAMMABLEBUTTON22 = 0x7455, + CWTOGG = qk_keycode_defines::QK_CAPS_WORD_TOGGLE as usize, + QKOUTPUTAUTO = 0x7C20, + MIVELU = qk_keycode_defines::QK_MIDI_VELOCITY_UP as usize, + KCKP7 = 0x005F, + CKOFF = qk_keycode_defines::QK_AUDIO_CLICKY_OFF as usize, + QKHAPTICCONTINUOUSTOGGLE = 0x7C48, + QKKB27 = 0x7E1B, + KCINT8 = qk_keycode_defines::KC_INTERNATIONAL_8 as usize, + MC13 = qk_keycode_defines::QK_MACRO_13 as usize, + KCBRIU = qk_keycode_defines::KC_BRIGHTNESS_UP as usize, + QKSWAPHANDSTAPTOGGLE = 0x56F1, + SCLSPO = qk_keycode_defines::QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN as usize, + QKAUDIOCLICKYUP = 0x748D, + MIPORT = qk_keycode_defines::QK_MIDI_PORTAMENTO as usize, + QKSEQUENCERSTEPSALL = 0x7207, + QKMAGICSWAPGRAVEESC = 0x700C, + MC28 = qk_keycode_defines::QK_MACRO_28 as usize, + QKKB1 = 0x7E01, + MC31 = qk_keycode_defines::QK_MACRO_31 as usize, + QKKB6 = 0x7E06, + QKMUSICMODENEXT = 0x7493, + QKSEQUENCEROFF = 0x7201, + MIAs = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_0 as usize, + QKKEYOVERRIDEOFF = 0x7C5F, + QKSEQUENCERTEMPODOWN = 0x7203, + KCQ = 0x0014, + QKHAPTICMODEPREVIOUS = 0x7C47, + KCPRIOR = 0x009D, + QKAUTOCORRECTON = 0x7C74, + HFCONU = qk_keycode_defines::QK_HAPTIC_CONTINUOUS_UP as usize, + KCLCTL = qk_keycode_defines::KC_LEFT_CTRL as usize, + RGBMG = qk_keycode_defines::RGB_MODE_GRADIENT as usize, + QKAUDIOVOICENEXT = 0x7494, + KC0 = 0x0027, + MITRN5 = qk_keycode_defines::QK_MIDI_TRANSPOSE_N5 as usize, + KCP7 = qk_keycode_defines::KC_KP_7 as usize, + QKHAPTICOFF = 0x7C41, + QKMIDIALLNOTESOFF = 0x7185, + QKMIDION = 0x7100, + KCBACKSPACE = 0x002A, + KCACL1 = qk_keycode_defines::KC_MS_ACCEL1 as usize, + MISOFT = qk_keycode_defines::QK_MIDI_SOFT as usize, + KCDOWN = 0x0051, + KCMSBTN4 = 0x00D4, + QKPROGRAMMABLEBUTTON14 = 0x744D, + MIG4 = qk_keycode_defines::QK_MIDI_NOTE_G_4 as usize, + KCWWWREFRESH = 0x00B9, + QKPROGRAMMABLEBUTTON23 = 0x7456, + AUOFF = qk_keycode_defines::QK_AUDIO_OFF as usize, + QKRBT = qk_keycode_defines::QK_REBOOT as usize, + MIGs5 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_5 as usize, + QKMUSICTOGGLE = 0x7492, + MITR3 = qk_keycode_defines::QK_MIDI_TRANSPOSE_3 as usize, + QKMIDINOTEC1 = 0x710F, + QKDEBUGTOGGLE = 0x7C02, + KCTRNS = qk_keycode_defines::KC_TRANSPARENT as usize, + KCLNG3 = qk_keycode_defines::KC_LANGUAGE_3 as usize, + QKMIDINOTEFSHARP1 = 0x7115, + KCRIGHTSHIFT = 0x00E5, + QKMAGICSWAPCONTROLCAPSLOCK = 0x7000, + KCKBMUTE = 0x007F, + QKMUSICOFF = 0x7491, + QKUNICODEMODEPREVIOUS = 0x7C31, + KCW = 0x001A, + KC3 = 0x0020, + QKJOYSTICKBUTTON29 = 0x741D, + KCMISSIONCONTROL = 0x00C1, + MICH5 = qk_keycode_defines::QK_MIDI_CHANNEL_5 as usize, + QKPROGRAMMABLEBUTTON26 = 0x7459, + QKUSER18 = 0x7E52, + ASDOWN = qk_keycode_defines::QK_AUTO_SHIFT_DOWN as usize, + KCASST = qk_keycode_defines::KC_ASSISTANT as usize, + PB3 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_3 as usize, + JS0 = qk_keycode_defines::QK_JOYSTICK_BUTTON_0 as usize, + QKKB24 = 0x7E18, + UCLINX = qk_keycode_defines::QK_UNICODE_MODE_LINUX as usize, + MIEb = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_0 as usize, + QKMIDINOTEA1 = 0x7118, + KCPENT = qk_keycode_defines::KC_KP_ENTER as usize, + JS12 = qk_keycode_defines::QK_JOYSTICK_BUTTON_12 as usize, + KCBRMD = qk_keycode_defines::KC_SCROLL_LOCK as usize, + QKSPACECADETRIGHTALTPARENTHESISCLOSE = 0x7C1D, + QKMIDICHANNEL11 = 0x717D, + QKMIDITOGGLE = 0x7102, + MID5 = qk_keycode_defines::QK_MIDI_NOTE_D_5 as usize, + SQRESD = qk_keycode_defines::QK_SEQUENCER_RESOLUTION_DOWN as usize, + KCLPAD = qk_keycode_defines::KC_LAUNCHPAD as usize, + KCEND = 0x004D, + MITR5 = qk_keycode_defines::QK_MIDI_TRANSPOSE_5 as usize, + KCMSEL = qk_keycode_defines::KC_MEDIA_SELECT as usize, + QKAUDIOCLICKYRESET = 0x748F, + KCBRIGHTNESSDOWN = 0x00BE, + QKMIDINOTEGSHARP1 = 0x7117, + MIOCTD = qk_keycode_defines::QK_MIDI_OCTAVE_DOWN as usize, + CLNORM = qk_keycode_defines::QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK as usize, + KCMINS = qk_keycode_defines::KC_MINUS as usize, + DMPLY1 = qk_keycode_defines::QK_DYNAMIC_MACRO_PLAY_1 as usize, + MIB = qk_keycode_defines::QK_MIDI_NOTE_B_0 as usize, + HFNEXT = qk_keycode_defines::QK_HAPTIC_MODE_NEXT as usize, + MIMOD = qk_keycode_defines::QK_MIDI_MODULATION as usize, + QKKB18 = 0x7E12, + QKSECUREUNLOCK = 0x7C61, + AUTOGG = qk_keycode_defines::QK_AUDIO_TOGGLE as usize, + MIDs = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_0 as usize, + QKMIDINOTEDSHARP5 = 0x7142, + KCF15 = 0x006A, + QKJOYSTICKBUTTON13 = 0x740D, + KCASSISTANT = 0x00C0, + MIVL2 = qk_keycode_defines::QK_MIDI_VELOCITY_2 as usize, + KCMCTL = qk_keycode_defines::KC_MISSION_CONTROL as usize, + QKMIDITRANSPOSEN3 = 0x715A, + QKMIDINOTEFSHARP3 = 0x712D, + KCCANCEL = 0x009B, + QKMIDINOTEGSHARP5 = 0x7147, + QKJOYSTICKBUTTON17 = 0x7411, + QKLEADER = 0x7C58, + KCF = 0x0009, + MIEb5 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_5 as usize, + MUON = qk_keycode_defines::QK_MUSIC_ON as usize, + PB31 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_31 as usize, + CMOFF = qk_keycode_defines::QK_COMBO_OFF as usize, + QKUSER17 = 0x7E51, + SHTT = qk_keycode_defines::QK_SWAP_HANDS_TAP_TOGGLE as usize, + MIE5 = qk_keycode_defines::QK_MIDI_NOTE_E_5 as usize, + MITR1 = qk_keycode_defines::QK_MIDI_TRANSPOSE_1 as usize, + MIAb5 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_5 as usize, + QKMACRO31 = 0x771F, + QKPROGRAMMABLEBUTTON31 = 0x745E, + CKRST = qk_keycode_defines::QK_AUDIO_CLICKY_RESET as usize, + XXXXXXX = qk_keycode_defines::KC_NO as usize, + DTPRNT = qk_keycode_defines::QK_DYNAMIC_TAPPING_TERM_PRINT as usize, + QKBACKLIGHTTOGGLEBREATHING = 0x7806, + QKMIDINOTEA2 = 0x7124, + QKMIDINOTECSHARP2 = 0x711C, + QKMIDIOCTAVE0 = 0x714D, + QKMACRO22 = 0x7716, + MC6 = qk_keycode_defines::QK_MACRO_6 as usize, + QKMIDICHANNEL4 = 0x7176, + QKBACKLIGHTUP = 0x7804, + QKUSER21 = 0x7E55, + KCWHOM = qk_keycode_defines::KC_WWW_HOME as usize, + QKMIDINOTED4 = 0x7135, + QKMIDINOTEE0 = 0x7107, + QKPROGRAMMABLEBUTTON20 = 0x7453, + QKMIDIOCTAVEDOWN = 0x7155, + KCDOT = 0x0037, + QKMIDIOCTAVE6 = 0x7153, + KCENTER = 0x0028, + MIVL8 = qk_keycode_defines::QK_MIDI_VELOCITY_8 as usize, + MIFs3 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_3 as usize, + KCKPEQUAL = 0x0067, + QKMACRO26 = 0x771A, + PB14 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_14 as usize, + KCK = 0x000E, + MITR2 = qk_keycode_defines::QK_MIDI_TRANSPOSE_2 as usize, + HFCONT = qk_keycode_defines::QK_HAPTIC_CONTINUOUS_TOGGLE as usize, + KCRIGHTGUI = 0x00E7, + KCSYSTEMWAKE = 0x00A7, + QKMIDINOTEASHARP0 = 0x710D, + MIGs3 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_3 as usize, + MIDb4 = qk_keycode_defines::QK_MIDI_NOTE_C_SHARP_4 as usize, + MIAb3 = qk_keycode_defines::QK_MIDI_NOTE_G_SHARP_3 as usize, + QKMIDICHANNEL15 = 0x7181, + QKSECURETOGGLE = 0x7C62, + RGBHUD = 0x7824, + KCKP9 = 0x0061, + QKAUTOSHIFTDOWN = 0x7C10, + QKTRILAYERLOWER = 0x7C77, + QKPROGRAMMABLEBUTTON16 = 0x744F, + RGBMSW = qk_keycode_defines::RGB_MODE_SWIRL as usize, + KOOFF = qk_keycode_defines::QK_KEY_OVERRIDE_OFF as usize, + QKBACKLIGHTON = 0x7800, + MIFs1 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_1 as usize, + BLON = qk_keycode_defines::QK_BACKLIGHT_ON as usize, + KCF22 = 0x0071, + KCP4 = qk_keycode_defines::KC_KP_4 as usize, + MICH1 = qk_keycode_defines::QK_MIDI_CHANNEL_1 as usize, + QKUSER8 = 0x7E48, + KCCONTROLPANEL = 0x00BF, + KCMSACCEL2 = 0x00DF, + KCMSWHLEFT = 0x00DB, + QKMIDINOTEB0 = 0x710E, + RGBMODEXMAS = 0x7831, + MIG5 = qk_keycode_defines::QK_MIDI_NOTE_G_5 as usize, + QKMIDITRANSPOSE4 = 0x7161, + UCPREV = qk_keycode_defines::QK_UNICODE_MODE_PREVIOUS as usize, + KCMSBTN8 = 0x00D8, + MIF1 = qk_keycode_defines::QK_MIDI_NOTE_F_1 as usize, + QKUSER3 = 0x7E43, + KCINT7 = qk_keycode_defines::KC_INTERNATIONAL_7 as usize, + KCINTERNATIONAL4 = 0x008A, + CGRNRM = qk_keycode_defines::QK_MAGIC_UNSWAP_RCTL_RGUI as usize, + KCWAKE = qk_keycode_defines::KC_SYSTEM_WAKE as usize, + EECLR = qk_keycode_defines::QK_CLEAR_EEPROM as usize, + QKMIDINOTEG3 = 0x712E, + QKTRILAYERUPPER = 0x7C78, + QKDYNAMICMACRORECORDSTART2 = 0x7C54, + MIB5 = qk_keycode_defines::QK_MIDI_NOTE_B_5 as usize, + MITRN4 = qk_keycode_defines::QK_MIDI_TRANSPOSE_N4 as usize, + KCRWIN = qk_keycode_defines::KC_RIGHT_GUI as usize, + KCOUT = 0x00A0, + QKMIDINOTECSHARP4 = 0x7134, + QKMAGICUNSWAPLCTLLGUI = 0x7018, + KCMEDIANEXTTRACK = 0x00AB, + KCPAUSE = 0x0048, + MIVL3 = qk_keycode_defines::QK_MIDI_VELOCITY_3 as usize, + QKMIDIOCTAVEN1 = 0x714C, + MIFs2 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_2 as usize, + KCWHR = qk_keycode_defines::KC_MS_WH_RIGHT as usize, + HFOFF = qk_keycode_defines::QK_HAPTIC_OFF as usize, + KCWHU = qk_keycode_defines::KC_MS_WH_UP as usize, + QKMIDINOTECSHARP5 = 0x7140, + QKMIDIOCTAVE7 = 0x7154, + KCU = 0x0018, + QKLEAD = qk_keycode_defines::QK_LEADER as usize, + KCC = 0x0006, + PB11 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_11 as usize, + SHOS = qk_keycode_defines::QK_SWAP_HANDS_ONE_SHOT as usize, + MIOC6 = qk_keycode_defines::QK_MIDI_OCTAVE_6 as usize, + UCNEXT = qk_keycode_defines::QK_UNICODE_MODE_NEXT as usize, + KCDELETE = 0x004C, + QKHAPTICRESET = 0x7C43, + KCHELP = 0x0075, + KCBTN2 = qk_keycode_defines::KC_MS_BTN2 as usize, + GESWAP = qk_keycode_defines::QK_MAGIC_SWAP_GRAVE_ESC as usize, + KCAUDIOVOLDOWN = 0x00AA, + QKUSER2 = 0x7E42, + MIA5 = qk_keycode_defines::QK_MIDI_NOTE_A_5 as usize, + ACOFF = qk_keycode_defines::QK_AUTOCORRECT_OFF as usize, + KCSCRL = qk_keycode_defines::KC_SCROLL_LOCK as usize, + QKMAGICSWAPBACKSLASHBACKSPACE = 0x700E, + BLSTEP = qk_keycode_defines::QK_BACKLIGHT_STEP as usize, + RGBMB = qk_keycode_defines::RGB_MODE_BREATHE as usize, + QKPROGRAMMABLEBUTTON30 = 0x745D, + MUOFF = qk_keycode_defines::QK_MUSIC_OFF as usize, + QKUSER16 = 0x7E50, + QKMIDINOTEB1 = 0x711A, + QKJOYSTICKBUTTON30 = 0x741E, + MID = qk_keycode_defines::QK_MIDI_NOTE_D_0 as usize, + QKDYNAMICMACROPLAY1 = 0x7C56, + QKJOYSTICKBUTTON14 = 0x740E, + QKKB19 = 0x7E13, + ACON = qk_keycode_defines::QK_AUTOCORRECT_ON as usize, + QKMIDITRANSPOSE0 = 0x715D, + ASOFF = qk_keycode_defines::QK_AUTO_SHIFT_OFF as usize, + KCPEQL = qk_keycode_defines::KC_KP_EQUAL as usize, + HFPREV = qk_keycode_defines::QK_HAPTIC_MODE_PREVIOUS as usize, + KCLEFTSHIFT = 0x00E1, + AUON = qk_keycode_defines::QK_AUDIO_ON as usize, + MUTOGG = qk_keycode_defines::QK_MUSIC_TOGGLE as usize, + QKSWAPHANDSMOMENTARYOFF = 0x56F3, + QKUNICODEMODEMACOS = 0x7C32, + JS24 = qk_keycode_defines::QK_JOYSTICK_BUTTON_24 as usize, + KCT = 0x0017, + KCMSDOWN = 0x00CE, + QKKB20 = 0x7E14, + SQSALL = qk_keycode_defines::QK_SEQUENCER_STEPS_ALL as usize, + KCP6 = qk_keycode_defines::KC_KP_6 as usize, + PB24 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_24 as usize, + KCSPACE = 0x002C, + KCKPEQUALAS400 = 0x0086, + QKMIDISUSTAIN = 0x7186, + KCMSRIGHT = 0x00D0, + KC4 = 0x0021, + KCEXEC = qk_keycode_defines::KC_EXECUTE as usize, + QKKB10 = 0x7E0A, + MIAs3 = qk_keycode_defines::QK_MIDI_NOTE_A_SHARP_3 as usize, + MIOC2 = qk_keycode_defines::QK_MIDI_OCTAVE_2 as usize, + QKUSER23 = 0x7E57, + KCSEPARATOR = 0x009F, + QKSTENOCOMBMAX = 0x74FC, + QKGESC = qk_keycode_defines::QK_GRAVE_ESCAPE as usize, + KCMENU = 0x0076, + CGTOGG = qk_keycode_defines::QK_MAGIC_TOGGLE_CTL_GUI as usize, + KOTOGG = qk_keycode_defines::QK_KEY_OVERRIDE_TOGGLE as usize, + JS15 = qk_keycode_defines::QK_JOYSTICK_BUTTON_15 as usize, + QKMAGICGUIOFF = 0x700A, + KCAUDIOVOLUP = 0x00A9, + QKMIDIVELOCITY9 = 0x716F, + KCSYSTEMPOWER = 0x00A5, + KCNUMLOCK = 0x0053, + QKMIDIOCTAVE2 = 0x714F, + QKPROGRAMMABLEBUTTON9 = 0x7448, + QKSEQUENCERSTEPSCLEAR = 0x7208, + KCRGHT = qk_keycode_defines::KC_RIGHT as usize, + JS11 = qk_keycode_defines::QK_JOYSTICK_BUTTON_11 as usize, + BSNORM = qk_keycode_defines::QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE as usize, + QKMACRO27 = 0x771B, + QKUSER28 = 0x7E5C, + QKBACKLIGHTOFF = 0x7801, + KCMSBTN6 = 0x00D6, + CGNORM = qk_keycode_defines::QK_MAGIC_UNSWAP_CTL_GUI as usize, + KCCAPS = qk_keycode_defines::KC_CAPS_LOCK as usize, + MIDs1 = qk_keycode_defines::QK_MIDI_NOTE_D_SHARP_1 as usize, + MIFs5 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_5 as usize, + QKMIDINOTEA4 = 0x713C, + QKUSER4 = 0x7E44, + OUAUTO = qk_keycode_defines::QK_OUTPUT_AUTO as usize, + KCMEDIAREWIND = 0x00BC, + QKJOYSTICKBUTTON8 = 0x7408, + KCPRIR = qk_keycode_defines::KC_PRIOR as usize, + QKPROGRAMMABLEBUTTON27 = 0x745A, + MIGb3 = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_3 as usize, + ECNORM = qk_keycode_defines::QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK as usize, + QKPROGRAMMABLEBUTTON2 = 0x7441, + JS9 = qk_keycode_defines::QK_JOYSTICK_BUTTON_9 as usize, + KCLANGUAGE5 = 0x0094, + KCPMNS = qk_keycode_defines::KC_KP_MINUS as usize, + QKMIDIVELOCITYUP = 0x7172, + KCAPP = qk_keycode_defines::KC_APPLICATION as usize, + KCLWIN = qk_keycode_defines::KC_LEFT_GUI as usize, + QKMIDITRANSPOSE1 = 0x715E, + MICH12 = qk_keycode_defines::QK_MIDI_CHANNEL_12 as usize, + OUUSB = qk_keycode_defines::QK_OUTPUT_USB as usize, + KCF12 = 0x0045, + QKMIDINOTEDSHARP2 = 0x711E, + QKPROGRAMMABLEBUTTON4 = 0x7443, + QKMIDICHANNEL5 = 0x7177, + PB23 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_23 as usize, + KC6 = 0x0023, + KCF18 = 0x006D, + QKMACRO7 = 0x7707, + QKKB28 = 0x7E1C, + MC22 = qk_keycode_defines::QK_MACRO_22 as usize, + PB19 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_19 as usize, + MICH14 = qk_keycode_defines::QK_MIDI_CHANNEL_14 as usize, + KCINT4 = qk_keycode_defines::KC_INTERNATIONAL_4 as usize, + PB8 = qk_keycode_defines::QK_PROGRAMMABLE_BUTTON_8 as usize, + RGBMODETWINKLE = 0x7834, + KCWREF = qk_keycode_defines::KC_WWW_REFRESH as usize, + QKMIDINOTEG1 = 0x7116, + KCRIGHTCTRL = 0x00E4, + MIGb = qk_keycode_defines::QK_MIDI_NOTE_F_SHARP_0 as usize, + KCLALT = qk_keycode_defines::KC_LEFT_ALT as usize, + JS7 = qk_keycode_defines::QK_JOYSTICK_BUTTON_7 as usize, + QKMAGICSWAPESCAPECAPSLOCK = 0x7020, + MICH11 = qk_keycode_defines::QK_MIDI_CHANNEL_11 as usize, + MIA1 = qk_keycode_defines::QK_MIDI_NOTE_A_1 as usize, + MC21 = qk_keycode_defines::QK_MACRO_21 as usize, + KCKPCOMMA = 0x0085, + MIF4 = qk_keycode_defines::QK_MIDI_NOTE_F_4 as usize, + KCINTERNATIONAL2 = 0x0088, + QKMIDIOCTAVEN2 = 0x714B, + QKMACRO8 = 0x7708, + QKMIDINOTEA5 = 0x7148, + QKUSER11 = 0x7E4B, + KCKBVOLUMEUP = 0x0080, + KCINT3 = qk_keycode_defines::KC_INTERNATIONAL_3 as usize, + QKUSER10 = 0x7E4A, + QKKB15 = 0x7E0F, + QKUSER7 = 0x7E47, + QKMIDICHANNEL14 = 0x7180, + MIA = qk_keycode_defines::QK_MIDI_NOTE_A_0 as usize, + ASTOGG = qk_keycode_defines::QK_AUTO_SHIFT_TOGGLE as usize, + KCBRMU = qk_keycode_defines::KC_PAUSE as usize, + QKJOYSTICKBUTTON5 = 0x7405, + QKKB12 = 0x7E0C, + QKMIDINOTECSHARP1 = 0x7110, + HFON = qk_keycode_defines::QK_HAPTIC_ON as usize, +} diff --git a/src/keycodes.rs b/src/keycodes_ similarity index 99% rename from src/keycodes.rs rename to src/keycodes_ index f0628e7..c16059d 100644 --- a/src/keycodes.rs +++ b/src/keycodes_ @@ -1,4 +1,5 @@ -pub enum QkKeycodeRanges { +/*#[repr(C)] +pub enum QkKeycodeRange { // Ranges QkBasic = 0x0000, QkBasicMax = 0x00FF, @@ -60,6 +61,7 @@ pub enum QkKeycodeRanges { // QkUnicodemapPairMax = 0xFFFF, } +#[repr(C)] enum QkKeycodeDefines { // Keycodes KcNo = 0x0000, @@ -762,7 +764,7 @@ enum QkKeycodeDefines { // Alias XXXXXXX = QkKeycodeDefines::KcNo as isize, - KcTrns = Keycodes::KcTransparent, + KcTrns = QkKeycodeDefines::KcTransparent as isize, KcEnt = Keycodes::KcEnter, KcEsc = Keycodes::KcEscape, KcBspc = Keycodes::KcBackspace, @@ -1338,3 +1340,4 @@ enum QkKeycodeDefines { QkRep = Keycodes::QkRepeatKey, QkArep = Keycodes::QkAltRepeatKey, } +*/ diff --git a/src/lib.rs b/src/lib.rs index 92d3f21..c8a5361 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,5 @@ +#![no_std] +#![no_main] + pub mod backlight; pub mod keycodes; diff --git a/src/main.rs b/src/main.rs index e3941d0..cd46b1a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,5 +11,5 @@ use {defmt_rtt as _, panic_probe as _}; #[embassy_executor::main] async fn main(_spawner: Spawner) { - let p = init(Default::default()); + let _p = init(Default::default()); }