From 11ad2476ca99339f27110ff21c397f0050dddbc7 Mon Sep 17 00:00:00 2001 From: guylamar2006 Date: Tue, 1 Apr 2025 11:29:36 -0500 Subject: [PATCH 1/3] Update steam_keys.rs --- src/steam_keys.rs | 226 +++++++++++++++++++++++----------------------- 1 file changed, 113 insertions(+), 113 deletions(-) diff --git a/src/steam_keys.rs b/src/steam_keys.rs index 45c43e9..cfb1574 100644 --- a/src/steam_keys.rs +++ b/src/steam_keys.rs @@ -1,130 +1,130 @@ -use evdev::Key; +use evdev::KeyCode; // Every key that Big Picture allows binding. pub const KEYS: &[Key] = &[ - Key::KEY_ESC, - Key::KEY_F1, - Key::KEY_F2, - Key::KEY_F3, - Key::KEY_F4, - Key::KEY_F5, - Key::KEY_F6, - Key::KEY_F7, - Key::KEY_F8, - Key::KEY_F9, - Key::KEY_F10, - Key::KEY_F11, - Key::KEY_F12, + Key::KeyCode_ESC, + Key::KeyCode_F1, + Key::KeyCode_F2, + Key::KeyCode_F3, + Key::KeyCode_F4, + Key::KeyCode_F5, + Key::KeyCode_F6, + Key::KeyCode_F7, + Key::KeyCode_F8, + Key::KeyCode_F9, + Key::KeyCode_F10, + Key::KeyCode_F11, + Key::KeyCode_F12, - Key::KEY_GRAVE, // ` - Key::KEY_1, - Key::KEY_2, - Key::KEY_3, - Key::KEY_4, - Key::KEY_5, - Key::KEY_6, - Key::KEY_7, - Key::KEY_8, - Key::KEY_9, - Key::KEY_0, - Key::KEY_MINUS, - Key::KEY_EQUAL, - Key::KEY_BACKSPACE, + Key::KeyCode_GRAVE, // ` + Key::KeyCode_1, + Key::KeyCode_2, + Key::KeyCode_3, + Key::KeyCode_4, + Key::KeyCode_5, + Key::KeyCode_6, + Key::KeyCode_7, + Key::KeyCode_8, + Key::KeyCode_9, + Key::KeyCode_0, + Key::KeyCode_MINUS, + Key::KeyCode_EQUAL, + Key::KeyCode_BACKSPACE, - Key::KEY_TAB, - Key::KEY_Q, - Key::KEY_W, - Key::KEY_E, - Key::KEY_R, - Key::KEY_T, - Key::KEY_Y, - Key::KEY_U, - Key::KEY_I, - Key::KEY_O, - Key::KEY_P, - Key::KEY_LEFTBRACE, - Key::KEY_RIGHTBRACE, - Key::KEY_BACKSLASH, + Key::KeyCode_TAB, + Key::KeyCode_Q, + Key::KeyCode_W, + Key::KeyCode_E, + Key::KeyCode_R, + Key::KeyCode_T, + Key::KeyCode_Y, + Key::KeyCode_U, + Key::KeyCode_I, + Key::KeyCode_O, + Key::KeyCode_P, + Key::KeyCode_LEFTBRACE, + Key::KeyCode_RIGHTBRACE, + Key::KeyCode_BACKSLASH, - Key::KEY_CAPSLOCK, - Key::KEY_A, - Key::KEY_S, - Key::KEY_D, - Key::KEY_F, - Key::KEY_G, - Key::KEY_H, - Key::KEY_J, - Key::KEY_K, - Key::KEY_L, - Key::KEY_SEMICOLON, - Key::KEY_APOSTROPHE, - Key::KEY_ENTER, + Key::KeyCode_CAPSLOCK, + Key::KeyCode_A, + Key::KeyCode_S, + Key::KeyCode_D, + Key::KeyCode_F, + Key::KeyCode_G, + Key::KeyCode_H, + Key::KeyCode_J, + Key::KeyCode_K, + Key::KeyCode_L, + Key::KeyCode_SEMICOLON, + Key::KeyCode_APOSTROPHE, + Key::KeyCode_ENTER, - Key::KEY_LEFTSHIFT, - Key::KEY_Z, - Key::KEY_X, - Key::KEY_C, - Key::KEY_V, - Key::KEY_B, - Key::KEY_N, - Key::KEY_M, - Key::KEY_COMMA, - Key::KEY_DOT, - Key::KEY_SLASH, - Key::KEY_RIGHTSHIFT, + Key::KeyCode_LEFTSHIFT, + Key::KeyCode_Z, + Key::KeyCode_X, + Key::KeyCode_C, + Key::KeyCode_V, + Key::KeyCode_B, + Key::KeyCode_N, + Key::KeyCode_M, + Key::KeyCode_COMMA, + Key::KeyCode_DOT, + Key::KeyCode_SLASH, + Key::KeyCode_RIGHTSHIFT, - Key::KEY_LEFTCTRL, - Key::KEY_RIGHTCTRL, - Key::KEY_LEFTMETA, - Key::KEY_LEFTALT, - Key::KEY_SPACE, - Key::KEY_RIGHTALT, + Key::KeyCode_LEFTCTRL, + Key::KeyCode_RIGHTCTRL, + Key::KeyCode_LEFTMETA, + Key::KeyCode_LEFTALT, + Key::KeyCode_SPACE, + Key::KeyCode_RIGHTALT, - Key::KEY_VOLUMEUP, - Key::KEY_VOLUMEDOWN, - Key::KEY_MUTE, - Key::KEY_PLAY, - Key::KEY_STOP, - Key::KEY_NEXT, - Key::KEY_PREVIOUS, - Key::KEY_PREVIOUSSONG, - Key::KEY_NEXTSONG, - Key::KEY_PLAYPAUSE, - Key::KEY_INSERT, - Key::KEY_HOME, - Key::KEY_PAGEUP, - Key::KEY_DELETE, - Key::KEY_END, - Key::KEY_PAGEDOWN, + Key::KeyCode_VOLUMEUP, + Key::KeyCode_VOLUMEDOWN, + Key::KeyCode_MUTE, + Key::KeyCode_PLAY, + Key::KeyCode_STOP, + Key::KeyCode_NEXT, + Key::KeyCode_PREVIOUS, + Key::KeyCode_PREVIOUSSONG, + Key::KeyCode_NEXTSONG, + Key::KeyCode_PLAYPAUSE, + Key::KeyCode_INSERT, + Key::KeyCode_HOME, + Key::KeyCode_PAGEUP, + Key::KeyCode_DELETE, + Key::KeyCode_END, + Key::KeyCode_PAGEDOWN, - Key::KEY_UP, - Key::KEY_LEFT, - Key::KEY_RIGHT, - Key::KEY_DOWN, + Key::KeyCode_UP, + Key::KeyCode_LEFT, + Key::KeyCode_RIGHT, + Key::KeyCode_DOWN, - Key::KEY_NUMLOCK, - Key::KEY_KPSLASH, - Key::KEY_KPASTERISK, - Key::KEY_KPMINUS, + Key::KeyCode_NUMLOCK, + Key::KeyCode_KPSLASH, + Key::KeyCode_KPASTERISK, + Key::KeyCode_KPMINUS, - Key::KEY_KP7, - Key::KEY_KP8, - Key::KEY_KP9, - Key::KEY_KPPLUS, + Key::KeyCode_KP7, + Key::KeyCode_KP8, + Key::KeyCode_KP9, + Key::KeyCode_KPPLUS, - Key::KEY_KP4, - Key::KEY_KP5, - Key::KEY_KP6, + Key::KeyCode_KP4, + Key::KeyCode_KP5, + Key::KeyCode_KP6, - Key::KEY_KP1, - Key::KEY_KP2, - Key::KEY_KP3, - Key::KEY_KPENTER, + Key::KeyCode_KP1, + Key::KeyCode_KP2, + Key::KeyCode_KP3, + Key::KeyCode_KPENTER, - Key::KEY_KP0, - Key::KEY_KPDOT, - Key::KEY_KPLEFTPAREN, - Key::KEY_KPRIGHTPAREN, - Key::KEY_102ND, // Output by < (less than key) + Key::KeyCode_KP0, + Key::KeyCode_KPDOT, + Key::KeyCode_KPLEFTPAREN, + Key::KeyCode_KPRIGHTPAREN, + Key::KeyCode_102ND, // Output by < (less than key) ]; From 30140c8691d512f30b308faeac1365372ef3806a Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 1 Apr 2025 11:40:45 -0500 Subject: [PATCH 2/3] Revert "Update steam_keys.rs" This reverts commit 11ad2476ca99339f27110ff21c397f0050dddbc7. --- src/steam_keys.rs | 226 +++++++++++++++++++++++----------------------- 1 file changed, 113 insertions(+), 113 deletions(-) diff --git a/src/steam_keys.rs b/src/steam_keys.rs index cfb1574..45c43e9 100644 --- a/src/steam_keys.rs +++ b/src/steam_keys.rs @@ -1,130 +1,130 @@ -use evdev::KeyCode; +use evdev::Key; // Every key that Big Picture allows binding. pub const KEYS: &[Key] = &[ - Key::KeyCode_ESC, - Key::KeyCode_F1, - Key::KeyCode_F2, - Key::KeyCode_F3, - Key::KeyCode_F4, - Key::KeyCode_F5, - Key::KeyCode_F6, - Key::KeyCode_F7, - Key::KeyCode_F8, - Key::KeyCode_F9, - Key::KeyCode_F10, - Key::KeyCode_F11, - Key::KeyCode_F12, + Key::KEY_ESC, + Key::KEY_F1, + Key::KEY_F2, + Key::KEY_F3, + Key::KEY_F4, + Key::KEY_F5, + Key::KEY_F6, + Key::KEY_F7, + Key::KEY_F8, + Key::KEY_F9, + Key::KEY_F10, + Key::KEY_F11, + Key::KEY_F12, - Key::KeyCode_GRAVE, // ` - Key::KeyCode_1, - Key::KeyCode_2, - Key::KeyCode_3, - Key::KeyCode_4, - Key::KeyCode_5, - Key::KeyCode_6, - Key::KeyCode_7, - Key::KeyCode_8, - Key::KeyCode_9, - Key::KeyCode_0, - Key::KeyCode_MINUS, - Key::KeyCode_EQUAL, - Key::KeyCode_BACKSPACE, + Key::KEY_GRAVE, // ` + Key::KEY_1, + Key::KEY_2, + Key::KEY_3, + Key::KEY_4, + Key::KEY_5, + Key::KEY_6, + Key::KEY_7, + Key::KEY_8, + Key::KEY_9, + Key::KEY_0, + Key::KEY_MINUS, + Key::KEY_EQUAL, + Key::KEY_BACKSPACE, - Key::KeyCode_TAB, - Key::KeyCode_Q, - Key::KeyCode_W, - Key::KeyCode_E, - Key::KeyCode_R, - Key::KeyCode_T, - Key::KeyCode_Y, - Key::KeyCode_U, - Key::KeyCode_I, - Key::KeyCode_O, - Key::KeyCode_P, - Key::KeyCode_LEFTBRACE, - Key::KeyCode_RIGHTBRACE, - Key::KeyCode_BACKSLASH, + Key::KEY_TAB, + Key::KEY_Q, + Key::KEY_W, + Key::KEY_E, + Key::KEY_R, + Key::KEY_T, + Key::KEY_Y, + Key::KEY_U, + Key::KEY_I, + Key::KEY_O, + Key::KEY_P, + Key::KEY_LEFTBRACE, + Key::KEY_RIGHTBRACE, + Key::KEY_BACKSLASH, - Key::KeyCode_CAPSLOCK, - Key::KeyCode_A, - Key::KeyCode_S, - Key::KeyCode_D, - Key::KeyCode_F, - Key::KeyCode_G, - Key::KeyCode_H, - Key::KeyCode_J, - Key::KeyCode_K, - Key::KeyCode_L, - Key::KeyCode_SEMICOLON, - Key::KeyCode_APOSTROPHE, - Key::KeyCode_ENTER, + Key::KEY_CAPSLOCK, + Key::KEY_A, + Key::KEY_S, + Key::KEY_D, + Key::KEY_F, + Key::KEY_G, + Key::KEY_H, + Key::KEY_J, + Key::KEY_K, + Key::KEY_L, + Key::KEY_SEMICOLON, + Key::KEY_APOSTROPHE, + Key::KEY_ENTER, - Key::KeyCode_LEFTSHIFT, - Key::KeyCode_Z, - Key::KeyCode_X, - Key::KeyCode_C, - Key::KeyCode_V, - Key::KeyCode_B, - Key::KeyCode_N, - Key::KeyCode_M, - Key::KeyCode_COMMA, - Key::KeyCode_DOT, - Key::KeyCode_SLASH, - Key::KeyCode_RIGHTSHIFT, + Key::KEY_LEFTSHIFT, + Key::KEY_Z, + Key::KEY_X, + Key::KEY_C, + Key::KEY_V, + Key::KEY_B, + Key::KEY_N, + Key::KEY_M, + Key::KEY_COMMA, + Key::KEY_DOT, + Key::KEY_SLASH, + Key::KEY_RIGHTSHIFT, - Key::KeyCode_LEFTCTRL, - Key::KeyCode_RIGHTCTRL, - Key::KeyCode_LEFTMETA, - Key::KeyCode_LEFTALT, - Key::KeyCode_SPACE, - Key::KeyCode_RIGHTALT, + Key::KEY_LEFTCTRL, + Key::KEY_RIGHTCTRL, + Key::KEY_LEFTMETA, + Key::KEY_LEFTALT, + Key::KEY_SPACE, + Key::KEY_RIGHTALT, - Key::KeyCode_VOLUMEUP, - Key::KeyCode_VOLUMEDOWN, - Key::KeyCode_MUTE, - Key::KeyCode_PLAY, - Key::KeyCode_STOP, - Key::KeyCode_NEXT, - Key::KeyCode_PREVIOUS, - Key::KeyCode_PREVIOUSSONG, - Key::KeyCode_NEXTSONG, - Key::KeyCode_PLAYPAUSE, - Key::KeyCode_INSERT, - Key::KeyCode_HOME, - Key::KeyCode_PAGEUP, - Key::KeyCode_DELETE, - Key::KeyCode_END, - Key::KeyCode_PAGEDOWN, + Key::KEY_VOLUMEUP, + Key::KEY_VOLUMEDOWN, + Key::KEY_MUTE, + Key::KEY_PLAY, + Key::KEY_STOP, + Key::KEY_NEXT, + Key::KEY_PREVIOUS, + Key::KEY_PREVIOUSSONG, + Key::KEY_NEXTSONG, + Key::KEY_PLAYPAUSE, + Key::KEY_INSERT, + Key::KEY_HOME, + Key::KEY_PAGEUP, + Key::KEY_DELETE, + Key::KEY_END, + Key::KEY_PAGEDOWN, - Key::KeyCode_UP, - Key::KeyCode_LEFT, - Key::KeyCode_RIGHT, - Key::KeyCode_DOWN, + Key::KEY_UP, + Key::KEY_LEFT, + Key::KEY_RIGHT, + Key::KEY_DOWN, - Key::KeyCode_NUMLOCK, - Key::KeyCode_KPSLASH, - Key::KeyCode_KPASTERISK, - Key::KeyCode_KPMINUS, + Key::KEY_NUMLOCK, + Key::KEY_KPSLASH, + Key::KEY_KPASTERISK, + Key::KEY_KPMINUS, - Key::KeyCode_KP7, - Key::KeyCode_KP8, - Key::KeyCode_KP9, - Key::KeyCode_KPPLUS, + Key::KEY_KP7, + Key::KEY_KP8, + Key::KEY_KP9, + Key::KEY_KPPLUS, - Key::KeyCode_KP4, - Key::KeyCode_KP5, - Key::KeyCode_KP6, + Key::KEY_KP4, + Key::KEY_KP5, + Key::KEY_KP6, - Key::KeyCode_KP1, - Key::KeyCode_KP2, - Key::KeyCode_KP3, - Key::KeyCode_KPENTER, + Key::KEY_KP1, + Key::KEY_KP2, + Key::KEY_KP3, + Key::KEY_KPENTER, - Key::KeyCode_KP0, - Key::KeyCode_KPDOT, - Key::KeyCode_KPLEFTPAREN, - Key::KeyCode_KPRIGHTPAREN, - Key::KeyCode_102ND, // Output by < (less than key) + Key::KEY_KP0, + Key::KEY_KPDOT, + Key::KEY_KPLEFTPAREN, + Key::KEY_KPRIGHTPAREN, + Key::KEY_102ND, // Output by < (less than key) ]; From 2bbc489bbe94659e4f32b64a57d707ca6f618471 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Tue, 1 Apr 2025 12:00:50 -0500 Subject: [PATCH 3/3] Upgrade all crates to latest versions. Remove unused import. --- Cargo.lock | 271 +++++++++++++++++----------------------------- Cargo.toml | 8 +- src/lib.rs | 90 +++++++-------- src/steam_keys.rs | 228 +++++++++++++++++++------------------- 4 files changed, 262 insertions(+), 335 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d84e91..336deef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,18 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +version = 4 [[package]] name = "bitflags" -version = "1.3.2" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bitvec" @@ -28,11 +22,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" dependencies = [ - "libc", + "shlex", ] [[package]] @@ -42,31 +36,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "dlib" -version = "0.5.2" +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading", -] +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys", +] [[package]] name = "evdev" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bed59fcc8cfd6b190814a509018388462d3b203cf6dd10db5c00087e72a83f3" +checksum = "a3c10865aeab1a7399b3c2d6046e8dcc7f5227b656f235ed63ef5ee45a47b8f8" dependencies = [ "bitvec", "cfg-if", "libc", - "nix 0.23.2", - "thiserror", + "nix", ] [[package]] @@ -85,129 +85,71 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "libc" -version = "0.2.150" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" - -[[package]] -name = "libloading" -version = "0.8.1" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" -dependencies = [ - "cfg-if", - "windows-sys", -] +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] -name = "log" -version = "0.4.20" +name = "linux-raw-sys" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "nix" -version = "0.23.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" -dependencies = [ - "bitflags", - "cc", - "cfg-if", - "libc", - "memoffset 0.6.5", -] +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "nix" -version = "0.26.4" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ "bitflags", "cfg-if", + "cfg_aliases", "libc", - "memoffset 0.7.1", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "quick-xml" -version = "0.28.2" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" +checksum = "a4ce8c88de324ff838700f36fb6ab86c96df0e3c4ab6ef3a9b2044465cce1369" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -219,27 +161,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "scoped-tls" -version = "1.0.1" +name = "rustix" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] [[package]] -name = "smallvec" -version = "1.11.2" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] -name = "syn" -version = "2.0.39" +name = "smallvec" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] name = "tap" @@ -247,64 +191,42 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "wayland-backend" -version = "0.1.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8" +checksum = "b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf" dependencies = [ "cc", "downcast-rs", - "io-lifetimes", - "nix 0.26.4", - "scoped-tls", + "rustix", "smallvec", "wayland-sys", ] [[package]] name = "wayland-client" -version = "0.30.2" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8" +checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" dependencies = [ "bitflags", - "nix 0.26.4", + "rustix", "wayland-backend", "wayland-scanner", ] [[package]] name = "wayland-protocols" -version = "0.30.1" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b28101e5ca94f70461a6c2d610f76d85ad223d042dd76585ab23d3422dd9b4d" +checksum = "0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc" dependencies = [ "bitflags", "wayland-backend", @@ -314,9 +236,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.30.1" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", "quick-xml", @@ -325,33 +247,32 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.30.1" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ - "dlib", - "log", "pkg-config", ] [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", + "windows_i686_gnullvm", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", @@ -360,45 +281,51 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "wyz" diff --git a/Cargo.toml b/Cargo.toml index 595f327..432671e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ['cdylib'] [dependencies] -evdev = "0.12.1" -once_cell = "1.17.1" -wayland-client = "0.30.1" -wayland-protocols = { version = "0.30.0", features = ["client", "unstable"] } +evdev = "0.13.1" +once_cell = "1.21.3" +wayland-client = "0.31.8" +wayland-protocols = { version = "0.32.6", features = ["client", "unstable"] } diff --git a/src/lib.rs b/src/lib.rs index 13ade74..0beef2f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,8 +5,8 @@ mod wayland; use wayland::get_axes_range; use evdev::{ - uinput::{VirtualDevice, VirtualDeviceBuilder}, - AbsInfo, AbsoluteAxisType, AttributeSet, EventType, InputEvent, Key, RelativeAxisType, + uinput::VirtualDevice, + AbsInfo, AbsoluteAxisCode as AbsoluteAxisType, AttributeSet, EventType, InputEvent, KeyCode, RelativeAxisCode as RelativeAxisType, UinputAbsSetup, }; use once_cell::sync::Lazy; @@ -23,35 +23,35 @@ pub struct Display { static DEVICE: Lazy> = Lazy::new(|| { let size = get_axes_range(); Mutex::new( - VirtualDeviceBuilder::new() - .unwrap() - .name("extest fake device") - .with_keys(&AttributeSet::from_iter( - [Key::BTN_LEFT, Key::BTN_RIGHT, Key::BTN_MIDDLE] - .into_iter() - .chain(KEYS.iter().copied()), - )) - .unwrap() - .with_relative_axes(&AttributeSet::from_iter( - [ - RelativeAxisType::REL_X, - RelativeAxisType::REL_Y, - RelativeAxisType::REL_WHEEL, - ] - )) - .unwrap() - .with_absolute_axis(&UinputAbsSetup::new( - AbsoluteAxisType::ABS_X, - AbsInfo::new(0, 0, size.width, 0, 0, 1), - )) - .unwrap() - .with_absolute_axis(&UinputAbsSetup::new( - AbsoluteAxisType::ABS_Y, - AbsInfo::new(0, 0, size.height, 0, 0, 1), - )) - .unwrap() - .build() - .unwrap(), + VirtualDevice::builder() + .unwrap() + .name("extest fake device") + .with_keys(&AttributeSet::from_iter( + [KeyCode::BTN_LEFT, KeyCode::BTN_RIGHT, KeyCode::BTN_MIDDLE] + .into_iter() + .chain(KEYS.iter().copied()), + )) + .unwrap() + .with_relative_axes(&AttributeSet::from_iter( + [ + RelativeAxisType::REL_X, + RelativeAxisType::REL_Y, + RelativeAxisType::REL_WHEEL, + ] + )) + .unwrap() + .with_absolute_axis(&UinputAbsSetup::new( + AbsoluteAxisType::ABS_X, + AbsInfo::new(0, 0, size.width, 0, 0, 1), + )) + .unwrap() + .with_absolute_axis(&UinputAbsSetup::new( + AbsoluteAxisType::ABS_Y, + AbsInfo::new(0, 0, size.height, 0, 0, 1), + )) + .unwrap() + .build() + .unwrap(), ) }); @@ -66,15 +66,15 @@ pub extern "C" fn XTestFakeKeyEvent( // Seems that X11 keycodes are just 8 + linux keycode - https://wiki.archlinux.org/title/Keyboard_input#Identifying_keycodes let key = match keycode { - 156 => Key::KEY_TAB, // I have no idea where this comes from - keycode => Key::new((keycode - 8) as u16), + 156 => KeyCode::KEY_TAB, // I have no idea where this comes from + keycode => KeyCode::new((keycode - 8) as u16), }; #[cfg(debug_assertions)] println!("emitting keycode {key:?}"); - dev.emit(&[InputEvent::new_now(EventType::KEY, key.0, is_press as i32)]) - .unwrap(); + dev.emit(&[InputEvent::new_now(EventType::KEY.0, key.0, is_press as i32)]) + .unwrap(); 1 } @@ -112,9 +112,9 @@ pub extern "C" fn XTestFakeButtonEvent( let mut dev = DEVICE.lock().unwrap(); // values determined via xev let key = match button.try_into() { - Ok(MouseButtons::LeftClick) => Key::BTN_LEFT, - Ok(MouseButtons::MiddleClick) => Key::BTN_MIDDLE, - Ok(MouseButtons::RightClick) => Key::BTN_RIGHT, + Ok(MouseButtons::LeftClick) => KeyCode::BTN_LEFT, + Ok(MouseButtons::MiddleClick) => KeyCode::BTN_MIDDLE, + Ok(MouseButtons::RightClick) => KeyCode::BTN_RIGHT, Ok(MouseButtons::ScrollUp | MouseButtons::ScrollDown) => { // These are sent with is_press true and is_press false like the other buttons, // but we only care about is_press because an "unpressed" scroll event doesn't make @@ -126,7 +126,7 @@ pub extern "C" fn XTestFakeButtonEvent( _ => unreachable!(), }; dev.emit(&[InputEvent::new_now( - EventType::RELATIVE, + EventType::RELATIVE.0, RelativeAxisType::REL_WHEEL.0, value, )]) @@ -140,8 +140,8 @@ pub extern "C" fn XTestFakeButtonEvent( } }; - dev.emit(&[InputEvent::new_now(EventType::KEY, key.0, is_press as i32)]) - .unwrap(); + dev.emit(&[InputEvent::new_now(EventType::KEY.0 as u16, key.0, is_press as i32)]) + .unwrap(); 1 } @@ -154,8 +154,8 @@ pub extern "C" fn XTestFakeRelativeMotionEvent( ) -> c_int { let mut dev = DEVICE.lock().unwrap(); let events = [ - InputEvent::new_now(EventType::RELATIVE, RelativeAxisType::REL_X.0, x), - InputEvent::new_now(EventType::RELATIVE, RelativeAxisType::REL_Y.0, y), + InputEvent::new_now(EventType::RELATIVE.0 as u16, RelativeAxisType::REL_X.0, x), + InputEvent::new_now(EventType::RELATIVE.0 as u16, RelativeAxisType::REL_Y.0, y), ]; dev.emit(&events).unwrap(); 1 @@ -171,8 +171,8 @@ pub extern "C" fn XTestFakeMotionEvent( ) -> c_int { let mut dev = DEVICE.lock().unwrap(); let events = [ - InputEvent::new_now(EventType::ABSOLUTE, AbsoluteAxisType::ABS_X.0, x), - InputEvent::new_now(EventType::ABSOLUTE, AbsoluteAxisType::ABS_Y.0, y), + InputEvent::new_now(EventType::ABSOLUTE.0 as u16, AbsoluteAxisType::ABS_X.0, x), + InputEvent::new_now(EventType::ABSOLUTE.0 as u16, AbsoluteAxisType::ABS_Y.0, y), ]; dev.emit(&events).unwrap(); 1 diff --git a/src/steam_keys.rs b/src/steam_keys.rs index 45c43e9..1bc735d 100644 --- a/src/steam_keys.rs +++ b/src/steam_keys.rs @@ -1,130 +1,130 @@ -use evdev::Key; +use evdev::KeyCode; // Every key that Big Picture allows binding. -pub const KEYS: &[Key] = &[ - Key::KEY_ESC, - Key::KEY_F1, - Key::KEY_F2, - Key::KEY_F3, - Key::KEY_F4, - Key::KEY_F5, - Key::KEY_F6, - Key::KEY_F7, - Key::KEY_F8, - Key::KEY_F9, - Key::KEY_F10, - Key::KEY_F11, - Key::KEY_F12, +pub const KEYS: &[KeyCode] = &[ + KeyCode::KEY_ESC, +KeyCode::KEY_F1, +KeyCode::KEY_F2, +KeyCode::KEY_F3, +KeyCode::KEY_F4, +KeyCode::KEY_F5, +KeyCode::KEY_F6, +KeyCode::KEY_F7, +KeyCode::KEY_F8, +KeyCode::KEY_F9, +KeyCode::KEY_F10, +KeyCode::KEY_F11, +KeyCode::KEY_F12, - Key::KEY_GRAVE, // ` - Key::KEY_1, - Key::KEY_2, - Key::KEY_3, - Key::KEY_4, - Key::KEY_5, - Key::KEY_6, - Key::KEY_7, - Key::KEY_8, - Key::KEY_9, - Key::KEY_0, - Key::KEY_MINUS, - Key::KEY_EQUAL, - Key::KEY_BACKSPACE, +KeyCode::KEY_GRAVE, // ` +KeyCode::KEY_1, +KeyCode::KEY_2, +KeyCode::KEY_3, +KeyCode::KEY_4, +KeyCode::KEY_5, +KeyCode::KEY_6, +KeyCode::KEY_7, +KeyCode::KEY_8, +KeyCode::KEY_9, +KeyCode::KEY_0, +KeyCode::KEY_MINUS, +KeyCode::KEY_EQUAL, +KeyCode::KEY_BACKSPACE, - Key::KEY_TAB, - Key::KEY_Q, - Key::KEY_W, - Key::KEY_E, - Key::KEY_R, - Key::KEY_T, - Key::KEY_Y, - Key::KEY_U, - Key::KEY_I, - Key::KEY_O, - Key::KEY_P, - Key::KEY_LEFTBRACE, - Key::KEY_RIGHTBRACE, - Key::KEY_BACKSLASH, +KeyCode::KEY_TAB, +KeyCode::KEY_Q, +KeyCode::KEY_W, +KeyCode::KEY_E, +KeyCode::KEY_R, +KeyCode::KEY_T, +KeyCode::KEY_Y, +KeyCode::KEY_U, +KeyCode::KEY_I, +KeyCode::KEY_O, +KeyCode::KEY_P, +KeyCode::KEY_LEFTBRACE, +KeyCode::KEY_RIGHTBRACE, +KeyCode::KEY_BACKSLASH, - Key::KEY_CAPSLOCK, - Key::KEY_A, - Key::KEY_S, - Key::KEY_D, - Key::KEY_F, - Key::KEY_G, - Key::KEY_H, - Key::KEY_J, - Key::KEY_K, - Key::KEY_L, - Key::KEY_SEMICOLON, - Key::KEY_APOSTROPHE, - Key::KEY_ENTER, +KeyCode::KEY_CAPSLOCK, +KeyCode::KEY_A, +KeyCode::KEY_S, +KeyCode::KEY_D, +KeyCode::KEY_F, +KeyCode::KEY_G, +KeyCode::KEY_H, +KeyCode::KEY_J, +KeyCode::KEY_K, +KeyCode::KEY_L, +KeyCode::KEY_SEMICOLON, +KeyCode::KEY_APOSTROPHE, +KeyCode::KEY_ENTER, - Key::KEY_LEFTSHIFT, - Key::KEY_Z, - Key::KEY_X, - Key::KEY_C, - Key::KEY_V, - Key::KEY_B, - Key::KEY_N, - Key::KEY_M, - Key::KEY_COMMA, - Key::KEY_DOT, - Key::KEY_SLASH, - Key::KEY_RIGHTSHIFT, +KeyCode::KEY_LEFTSHIFT, +KeyCode::KEY_Z, +KeyCode::KEY_X, +KeyCode::KEY_C, +KeyCode::KEY_V, +KeyCode::KEY_B, +KeyCode::KEY_N, +KeyCode::KEY_M, +KeyCode::KEY_COMMA, +KeyCode::KEY_DOT, +KeyCode::KEY_SLASH, +KeyCode::KEY_RIGHTSHIFT, - Key::KEY_LEFTCTRL, - Key::KEY_RIGHTCTRL, - Key::KEY_LEFTMETA, - Key::KEY_LEFTALT, - Key::KEY_SPACE, - Key::KEY_RIGHTALT, +KeyCode::KEY_LEFTCTRL, +KeyCode::KEY_RIGHTCTRL, +KeyCode::KEY_LEFTMETA, +KeyCode::KEY_LEFTALT, +KeyCode::KEY_SPACE, +KeyCode::KEY_RIGHTALT, - Key::KEY_VOLUMEUP, - Key::KEY_VOLUMEDOWN, - Key::KEY_MUTE, - Key::KEY_PLAY, - Key::KEY_STOP, - Key::KEY_NEXT, - Key::KEY_PREVIOUS, - Key::KEY_PREVIOUSSONG, - Key::KEY_NEXTSONG, - Key::KEY_PLAYPAUSE, - Key::KEY_INSERT, - Key::KEY_HOME, - Key::KEY_PAGEUP, - Key::KEY_DELETE, - Key::KEY_END, - Key::KEY_PAGEDOWN, +KeyCode::KEY_VOLUMEUP, +KeyCode::KEY_VOLUMEDOWN, +KeyCode::KEY_MUTE, +KeyCode::KEY_PLAY, +KeyCode::KEY_STOP, +KeyCode::KEY_NEXT, +KeyCode::KEY_PREVIOUS, +KeyCode::KEY_PREVIOUSSONG, +KeyCode::KEY_NEXTSONG, +KeyCode::KEY_PLAYPAUSE, +KeyCode::KEY_INSERT, +KeyCode::KEY_HOME, +KeyCode::KEY_PAGEUP, +KeyCode::KEY_DELETE, +KeyCode::KEY_END, +KeyCode::KEY_PAGEDOWN, - Key::KEY_UP, - Key::KEY_LEFT, - Key::KEY_RIGHT, - Key::KEY_DOWN, +KeyCode::KEY_UP, +KeyCode::KEY_LEFT, +KeyCode::KEY_RIGHT, +KeyCode::KEY_DOWN, - Key::KEY_NUMLOCK, - Key::KEY_KPSLASH, - Key::KEY_KPASTERISK, - Key::KEY_KPMINUS, +KeyCode::KEY_NUMLOCK, +KeyCode::KEY_KPSLASH, +KeyCode::KEY_KPASTERISK, +KeyCode::KEY_KPMINUS, - Key::KEY_KP7, - Key::KEY_KP8, - Key::KEY_KP9, - Key::KEY_KPPLUS, +KeyCode::KEY_KP7, +KeyCode::KEY_KP8, +KeyCode::KEY_KP9, +KeyCode::KEY_KPPLUS, - Key::KEY_KP4, - Key::KEY_KP5, - Key::KEY_KP6, +KeyCode::KEY_KP4, +KeyCode::KEY_KP5, +KeyCode::KEY_KP6, - Key::KEY_KP1, - Key::KEY_KP2, - Key::KEY_KP3, - Key::KEY_KPENTER, +KeyCode::KEY_KP1, +KeyCode::KEY_KP2, +KeyCode::KEY_KP3, +KeyCode::KEY_KPENTER, - Key::KEY_KP0, - Key::KEY_KPDOT, - Key::KEY_KPLEFTPAREN, - Key::KEY_KPRIGHTPAREN, - Key::KEY_102ND, // Output by < (less than key) +KeyCode::KEY_KP0, +KeyCode::KEY_KPDOT, +KeyCode::KEY_KPLEFTPAREN, +KeyCode::KEY_KPRIGHTPAREN, +KeyCode::KEY_102ND, // Output by < (less than key) ];