From 45a354880a62ee0b6b23c4796e7f859c81a7901e Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Tue, 25 Apr 2023 12:13:20 +1200 Subject: [PATCH] Add support for GV604 LEDs --- CHANGELOG.md | 2 + Cargo.lock | 190 +++++++++++++++++++++++---------- Cargo.toml | 2 +- rog-aura/data/aura_support.ron | 7 ++ rog-aura/src/layouts.rs | 8 +- 5 files changed, 151 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec94fe02..ba94313c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Cargo.lock b/Cargo.lock index 9362e0bf..1fa9bbdd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/Cargo.toml b/Cargo.toml index e10aa93c..6f5efee8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/rog-aura/data/aura_support.ron b/rog-aura/data/aura_support.ron index 93dbecb0..30e73ac5 100644 --- a/rog-aura/data/aura_support.ron +++ b/rog-aura/data/aura_support.ron @@ -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", diff --git a/rog-aura/src/layouts.rs b/rog-aura/src/layouts.rs index 4a7d6044..d7900eba 100644 --- a/rog-aura/src/layouts.rs +++ b/rog-aura/src/layouts.rs @@ -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 { // 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();