Add support for GV604 LEDs

This commit is contained in:
Luke D. Jones
2023-04-25 12:13:20 +12:00
parent ca1c67e803
commit 45a354880a
5 changed files with 151 additions and 58 deletions

View File

@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Support for G733Z LED modes
- Support for GU604V LED modes
- Support for GX650P LED modes
- Support for GV604I LED modes
- Add device code for the Z13 ACRNM keyboard
- Add device code for the plain Z13 keyboard
### Changed
@@ -16,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add "sleep" animetion config options to anime config
- rog-control-center dark/light mode persistency
- Adjustments to keyboard detection
- Better support of using supergfxctl when available (tray icon and menu)
## [v4.6.0]
### Added

190
Cargo.lock generated
View File

@@ -4,9 +4,9 @@ version = 3
[[package]]
name = "ab_glyph"
version = "0.2.20"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe21446ad43aa56417a767f3e2f3d7c4ca522904de1dd640529a76e9c5c3b33c"
checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39"
dependencies = [
"ab_glyph_rasterizer",
"owned_ttf_parser",
@@ -106,9 +106,9 @@ dependencies = [
[[package]]
name = "aho-corasick"
version = "0.7.20"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
dependencies = [
"memchr",
]
@@ -175,7 +175,7 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
[[package]]
name = "asusctl"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"daemon",
@@ -358,9 +358,9 @@ checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
[[package]]
name = "atomic_refcell"
version = "0.1.9"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "857253367827bd9d0fd973f0ef15506a96e79e41b0ad7aa691203a4e3214f6c8"
checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31"
[[package]]
name = "atspi"
@@ -484,9 +484,9 @@ dependencies = [
[[package]]
name = "bumpalo"
version = "3.12.0"
version = "3.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8"
[[package]]
name = "bytemuck"
@@ -589,11 +589,12 @@ dependencies = [
[[package]]
name = "cfg-expr"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a35b255461940a32985c627ce82900867c61db1659764d3675ea81963f72a4c6"
checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9"
dependencies = [
"smallvec",
"target-lexicon",
]
[[package]]
@@ -638,6 +639,37 @@ dependencies = [
"winapi",
]
[[package]]
name = "cocoa"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
dependencies = [
"bitflags",
"block",
"cocoa-foundation",
"core-foundation",
"core-graphics",
"foreign-types",
"libc",
"objc",
]
[[package]]
name = "cocoa-foundation"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
dependencies = [
"bitflags",
"block",
"core-foundation",
"core-graphics-types",
"foreign-types",
"libc",
"objc",
]
[[package]]
name = "color_quant"
version = "1.1.0"
@@ -675,7 +707,7 @@ dependencies = [
[[package]]
name = "config-traits"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"log",
@@ -729,9 +761,9 @@ dependencies = [
[[package]]
name = "cpufeatures"
version = "0.2.6"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181"
checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58"
dependencies = [
"libc",
]
@@ -766,7 +798,7 @@ dependencies = [
[[package]]
name = "daemon"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"async-trait",
"cargo-husky",
@@ -790,7 +822,7 @@ dependencies = [
[[package]]
name = "daemon-user"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"config-traits",
@@ -894,7 +926,7 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
[[package]]
name = "ecolor"
version = "0.21.0"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"bytemuck",
]
@@ -902,30 +934,34 @@ dependencies = [
[[package]]
name = "eframe"
version = "0.21.3"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"bytemuck",
"cocoa",
"egui",
"egui-winit",
"egui_glow",
"glow",
"glutin",
"glutin-winit",
"image",
"js-sys",
"log",
"objc",
"percent-encoding",
"raw-window-handle",
"thiserror",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"winapi",
"winit",
]
[[package]]
name = "egui"
version = "0.21.0"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"accesskit",
"ahash",
@@ -937,13 +973,14 @@ dependencies = [
[[package]]
name = "egui-winit"
version = "0.21.1"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"accesskit_winit",
"arboard",
"egui",
"instant",
"log",
"raw-window-handle",
"smithay-clipboard",
"webbrowser",
"winit",
@@ -952,7 +989,7 @@ dependencies = [
[[package]]
name = "egui_glow"
version = "0.21.0"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"bytemuck",
"egui",
@@ -966,7 +1003,7 @@ dependencies = [
[[package]]
name = "emath"
version = "0.21.0"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"bytemuck",
]
@@ -1051,7 +1088,7 @@ dependencies = [
[[package]]
name = "epaint"
version = "0.21.0"
source = "git+https://github.com/emilk/egui#d486c76a9f146c12321b2a3fd0cedfe732e5783d"
source = "git+https://github.com/emilk/egui#92c7053a148ae0edac3efb1d990f25b54a2ec3bc"
dependencies = [
"ab_glyph",
"ahash",
@@ -1668,6 +1705,20 @@ dependencies = [
"unicode-normalization",
]
[[package]]
name = "image"
version = "0.24.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
dependencies = [
"bytemuck",
"byteorder",
"color_quant",
"num-rational",
"num-traits",
"png",
]
[[package]]
name = "indexmap"
version = "1.9.3"
@@ -1825,9 +1876,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.141"
version = "0.2.142"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
[[package]]
name = "libloading"
@@ -1863,9 +1914,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
version = "0.3.2"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f508063cc7bb32987c71511216bd5a32be15bccb6a80b52df8b9d7f01fc3aa2"
checksum = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf"
[[package]]
name = "lock_api"
@@ -2108,6 +2159,27 @@ dependencies = [
"zbus",
]
[[package]]
name = "num-integer"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.15"
@@ -2239,9 +2311,9 @@ dependencies = [
[[package]]
name = "owned_ttf_parser"
version = "0.18.1"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228"
checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4"
dependencies = [
"ttf-parser",
]
@@ -2367,9 +2439,9 @@ dependencies = [
[[package]]
name = "polling"
version = "2.7.0"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4be1c66a6add46bff50935c313dae30a5030cf8385c5206e8a95e9e9def974aa"
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
dependencies = [
"autocfg",
"bitflags",
@@ -2515,9 +2587,9 @@ dependencies = [
[[package]]
name = "regex"
version = "1.7.3"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
dependencies = [
"aho-corasick",
"memchr",
@@ -2526,13 +2598,13 @@ dependencies = [
[[package]]
name = "regex-syntax"
version = "0.6.29"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
[[package]]
name = "rog-control-center"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"daemon",
@@ -2564,7 +2636,7 @@ dependencies = [
[[package]]
name = "rog_anime"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"gif",
@@ -2581,7 +2653,7 @@ dependencies = [
[[package]]
name = "rog_aura"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"log",
@@ -2594,7 +2666,7 @@ dependencies = [
[[package]]
name = "rog_dbus"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"rog_anime",
@@ -2606,7 +2678,7 @@ dependencies = [
[[package]]
name = "rog_platform"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"concat-idents",
@@ -2623,7 +2695,7 @@ dependencies = [
[[package]]
name = "rog_profiles"
version = "4.6.0"
version = "4.6.1-RC1"
dependencies = [
"cargo-husky",
"serde",
@@ -2670,9 +2742,9 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.37.12"
version = "0.37.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "722529a737f5a942fdbac3a46cee213053196737c5eaa3386d52e85b786f2659"
checksum = "d9b864d3c18a5785a05953adeed93e2dca37ed30f18e69bba9f30079d51f363f"
dependencies = [
"bitflags",
"errno",
@@ -2942,8 +3014,8 @@ dependencies = [
[[package]]
name = "supergfxctl"
version = "5.1.0-RC5"
source = "git+https://gitlab.com/asus-linux/supergfxctl.git#92d82977b47c54d868aa92e54a22d10a2e858598"
version = "5.1.0"
source = "git+https://gitlab.com/asus-linux/supergfxctl.git#d020d26c0344477e86ce7ed5fe8ed2dfbdac0f9f"
dependencies = [
"log",
"logind-zbus",
@@ -2990,9 +3062,9 @@ dependencies = [
[[package]]
name = "system-deps"
version = "6.0.4"
version = "6.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "555fc8147af6256f3931a36bb83ad0023240ce9cf2b319dec8236fd1f220b05f"
checksum = "d0fe581ad25d11420b873cf9aedaca0419c2b411487b134d4d21065f3d092055"
dependencies = [
"cfg-expr",
"heck 0.4.1",
@@ -3011,6 +3083,12 @@ dependencies = [
"zbus",
]
[[package]]
name = "target-lexicon"
version = "0.12.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5"
[[package]]
name = "tauri-winrt-notification"
version = "0.1.0"
@@ -3082,9 +3160,9 @@ checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
[[package]]
name = "tiny-skia"
version = "0.8.3"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfef3412c6975196fdfac41ef232f910be2bb37b9dd3313a49a1a6bc815a5bdb"
checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67"
dependencies = [
"arrayref",
"arrayvec",
@@ -3096,9 +3174,9 @@ dependencies = [
[[package]]
name = "tiny-skia-path"
version = "0.8.3"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4b5edac058fc98f51c935daea4d805b695b38e2f151241cad125ade2a2ac20d"
checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c"
dependencies = [
"arrayref",
"bytemuck",
@@ -3213,13 +3291,13 @@ dependencies = [
[[package]]
name = "tracing-attributes"
version = "0.1.23"
version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
"syn 2.0.15",
]
[[package]]
@@ -3233,9 +3311,9 @@ dependencies = [
[[package]]
name = "ttf-parser"
version = "0.18.1"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
checksum = "44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746"
[[package]]
name = "typenum"

View File

@@ -2,7 +2,7 @@
members = ["asusctl", "config-traits", "daemon", "daemon-user", "rog-platform", "rog-dbus", "rog-anime", "rog-aura", "rog-profiles", "rog-control-center"]
[workspace.package]
version = "4.6.0"
version = "4.6.1-RC1"
[workspace.dependencies]
async-trait = "^0.1"

View File

@@ -440,6 +440,13 @@
basic_zones: [],
advanced_type: None,
),
(
board_name: "GV604V",
layout_name: "ga401q",
basic_modes: [Static, Breathe, Strobe, Pulse],
basic_zones: [],
advanced_type: None,
),
(
board_name: "GX502",
layout_name: "gx502",

View File

@@ -280,7 +280,13 @@ impl KeyLayout {
/// Find a layout matching the name in `LaptopLedData` in the provided dir
pub fn find_layout(led_data: LaptopLedData, mut data_path: PathBuf) -> Result<Self, Error> {
// TODO: locales
let layout_file = format!("{}_US.ron", led_data.layout_name);
let layout_name = if led_data.layout_name.is_empty() {
"ga401q".to_owned() // Need some sort of default here due to ROGCC
// expecting it
} else {
led_data.layout_name
};
let layout_file = format!("{layout_name}_US.ron");
data_path.push("layouts");
data_path.push(layout_file);
let path = data_path.as_path();