From 5c2bcad7c623f106145c2bfb882a7c9e96d5c1cb Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Sat, 1 Feb 2025 20:31:09 +1300 Subject: [PATCH] Various UI fixes --- Cargo.lock | 980 ++++++++++++++---- asusd/src/asus_armoury.rs | 53 +- asusd/src/ctrl_platform.rs | 1 + rog-aura/data/aura_support.ron | 11 +- rog-control-center/build.rs | 2 - rog-control-center/src/main.rs | 49 +- rog-control-center/src/ui/mod.rs | 13 +- rog-control-center/src/ui/setup_system.rs | 49 +- .../translations/en/rog-control-center.po | 18 +- rog-control-center/ui/main_window.slint | 1 + rog-control-center/ui/pages/system.slint | 70 +- rog-platform/src/asus_armoury.rs | 14 +- 12 files changed, 957 insertions(+), 304 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf3ea563..92069f21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,7 +46,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -172,7 +172,7 @@ dependencies = [ "rog_scsi", "rog_slash", "ron", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -198,7 +198,7 @@ dependencies = [ "serde", "tokio", "udev 0.8.0", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -215,7 +215,7 @@ dependencies = [ "ron", "serde", "smol", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -385,15 +385,38 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", "syn 2.0.96", ] +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -606,7 +629,16 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2", + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d59b4c170e16f0405a2e95aff44432a0d41aa97675f3d52623effe95792a037" +dependencies = [ + "objc2 0.6.0", ] [[package]] @@ -639,9 +671,9 @@ checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "by_address" @@ -687,6 +719,31 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.8.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + [[package]] name = "calloop" version = "0.13.0" @@ -734,9 +791,9 @@ checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad" [[package]] name = "cc" -version = "1.2.10" +version = "1.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +checksum = "e4730490333d58093109dc02c23174c3f4d490998c3fed3cc8e82d57afedb9cf" dependencies = [ "jobserver", "libc", @@ -932,7 +989,7 @@ dependencies = [ [[package]] name = "const-field-offset" version = "0.1.5" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "const-field-offset-macro", "field-offset", @@ -941,7 +998,7 @@ dependencies = [ [[package]] name = "const-field-offset-macro" version = "0.1.5" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "proc-macro2", "quote", @@ -1065,9 +1122,9 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1123,9 +1180,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-common" @@ -1730,6 +1787,64 @@ dependencies = [ "libc", ] +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -1758,7 +1873,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -1807,6 +1934,38 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + [[package]] name = "gl_generator" version = "0.14.0" @@ -1827,6 +1986,53 @@ dependencies = [ "serde", ] +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.8.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + [[package]] name = "glob" version = "0.3.2" @@ -1860,9 +2066,9 @@ dependencies = [ "glutin_glx_sys", "glutin_wgl_sys", "libloading", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "once_cell", "raw-window-handle", "wayland-sys", @@ -1911,6 +2117,69 @@ dependencies = [ "gl_generator", ] +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "gumdrop" version = "0.8.1" @@ -1996,6 +2265,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -2065,9 +2340,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -2083,9 +2358,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -2137,7 +2412,7 @@ dependencies = [ [[package]] name = "i-slint-backend-linuxkms" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "calloop 0.14.2", "drm", @@ -2155,7 +2430,7 @@ dependencies = [ [[package]] name = "i-slint-backend-selector" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "cfg-if", "i-slint-backend-linuxkms", @@ -2168,7 +2443,7 @@ dependencies = [ [[package]] name = "i-slint-backend-winit" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "cfg-if", "cfg_aliases", @@ -2183,7 +2458,8 @@ dependencies = [ "i-slint-renderer-femtovg", "i-slint-renderer-skia", "lyon_path", - "objc2-app-kit", + "muda", + "objc2-app-kit 0.3.0", "pin-weak", "raw-window-handle", "scoped-tls-hkt", @@ -2199,7 +2475,7 @@ dependencies = [ [[package]] name = "i-slint-common" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "cfg-if", "derive_more", @@ -2211,7 +2487,7 @@ dependencies = [ [[package]] name = "i-slint-compiler" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "by_address", "codemap", @@ -2233,13 +2509,14 @@ dependencies = [ "rowan", "smol_str 0.3.2", "strum", + "typed-index-collections", "url", ] [[package]] name = "i-slint-core" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "auto_enums", "bitflags 2.8.0", @@ -2283,7 +2560,7 @@ dependencies = [ [[package]] name = "i-slint-core-macros" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "quote", "serde_json", @@ -2293,7 +2570,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-femtovg" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "cfg-if", "const-field-offset", @@ -2322,7 +2599,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-skia" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "bytemuck", "cfg-if", @@ -2335,11 +2612,12 @@ dependencies = [ "i-slint-core", "i-slint-core-macros", "lyon_path", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "objc2-metal", - "objc2-quartz-core", + "objc2 0.6.0", + "objc2-app-kit 0.3.0", + "objc2-core-foundation", + "objc2-foundation 0.3.0", + "objc2-metal 0.3.0", + "objc2-quartz-core 0.3.0", "pin-weak", "raw-window-handle", "raw-window-metal", @@ -2610,7 +2888,7 @@ dependencies = [ "input-sys", "libc", "log", - "udev 0.9.1", + "udev 0.9.3", ] [[package]] @@ -2652,13 +2930,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" dependencies = [ "hermit-abi 0.4.0", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2741,6 +3019,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.8.0", + "serde", + "unicode-segmentation", +] + [[package]] name = "khronos_api" version = "3.1.0" @@ -2762,7 +3051,7 @@ dependencies = [ "once_cell", "paste", "serde", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -2807,9 +3096,9 @@ checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libfuzzer-sys" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9569d2f74e257076d8c6bfa73fb505b46b851e51ddaecc825944aa3bed17fa" +checksum = "cf78f52d400cf2d84a3a973a78a592b4adc535739e0a5597a0da6f0c357adc75" dependencies = [ "arbitrary", "cc", @@ -2864,6 +3153,25 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "libxdo" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00333b8756a3d28e78def82067a377de7fa61b24909000aeaa2b446a948d14db" +dependencies = [ + "libxdo-sys", +] + +[[package]] +name = "libxdo-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23b9e7e2b7831bbd8aac0bbeeeb7b68cbebc162b227e7052e8e55829a09212" +dependencies = [ + "libc", + "x11", +] + [[package]] name = "linereader" version = "0.4.0" @@ -2932,7 +3240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e506e37789ea005178eafda1a20aea3deb6efd35de1a41d79e4c726d07e1dbdc" dependencies = [ "serde", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -3102,7 +3410,7 @@ checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "log", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.48.0", ] @@ -3113,10 +3421,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] +[[package]] +name = "muda" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "libxdo", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", + "once_cell", + "png", + "thiserror", + "windows-sys 0.59.0", +] + [[package]] name = "ndk" version = "0.9.0" @@ -3193,7 +3521,7 @@ dependencies = [ "mac-notification-sys", "serde", "tauri-winrt-notification", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -3268,7 +3596,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.96", @@ -3310,6 +3638,15 @@ dependencies = [ "objc2-encode", ] +[[package]] +name = "objc2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3531f65190d9cff863b77a99857e74c314dd16bf56c538c4b57c7cbc3f3a6e59" +dependencies = [ + "objc2-encode", +] + [[package]] name = "objc2-app-kit" version = "0.2.2" @@ -3317,13 +3654,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ "bitflags 2.8.0", - "block2", + "block2 0.5.1", "libc", - "objc2", - "objc2-core-data", - "objc2-core-image", - "objc2-foundation", - "objc2-quartz-core", + "objc2 0.5.2", + "objc2-core-data 0.2.2", + "objc2-core-image 0.2.2", + "objc2-foundation 0.2.2", + "objc2-quartz-core 0.2.2", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5906f93257178e2f7ae069efb89fbd6ee94f0592740b5f8a1512ca498814d0fb" +dependencies = [ + "bitflags 2.8.0", + "block2 0.6.0", + "libc", + "objc2 0.6.0", + "objc2-cloud-kit 0.3.0", + "objc2-core-data 0.3.0", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image 0.3.0", + "objc2-foundation 0.3.0", + "objc2-quartz-core 0.3.0", ] [[package]] @@ -3333,10 +3689,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ "bitflags 2.8.0", - "block2", - "objc2", + "block2 0.5.1", + "objc2 0.5.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c1948a9be5f469deadbd6bcb86ad7ff9e47b4f632380139722f7d9840c0d42c" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-foundation 0.3.0", ] [[package]] @@ -3345,9 +3712,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -3357,9 +3724,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ "bitflags 2.8.0", - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f860f8e841f6d32f754836f51e6bc7777cd7e7053cf18528233f6811d3eceb4" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-foundation 0.3.0", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daeaf60f25471d26948a1c2f840e3f7d86f4109e3af4e8e4b5cd70c39690d925" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dca602628b65356b6513290a21a6405b4d4027b8b250f0b98dddbb28b7de02" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-core-foundation", + "objc2-io-surface", ] [[package]] @@ -3368,10 +3768,20 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2", - "objc2", - "objc2-foundation", - "objc2-metal", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal 0.2.2", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ffa6bea72bf42c78b0b34e89c0bafac877d5f80bf91e159a5d96ea7f693ca56" +dependencies = [ + "objc2 0.6.0", + "objc2-foundation 0.3.0", ] [[package]] @@ -3380,17 +3790,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "block2", - "objc2", + "block2 0.5.1", + "objc2 0.5.2", "objc2-contacts", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -3399,10 +3809,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.8.0", - "block2", + "block2 0.5.1", "dispatch", "libc", - "objc2", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a21c6c9014b82c39515db5b396f91645182611c97d24637cf56ac01e5f8d998" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161a8b87e32610086e1a7a9e9ec39f84459db7b3a0881c1f16ca5a2605581c19" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-core-foundation", ] [[package]] @@ -3411,10 +3843,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "block2", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -3424,9 +3856,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ "bitflags 2.8.0", - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-metal" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c41bc8b0e50ea7a5304a56f25e0066f526e99641b46fd7b9ad4421dd35bff6" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-foundation 0.3.0", ] [[package]] @@ -3436,10 +3879,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ "bitflags 2.8.0", - "block2", - "objc2", - "objc2-foundation", - "objc2-metal", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb3794501bb1bee12f08dcad8c61f2a5875791ad1c6f47faa71a0f033f20071" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-core-foundation", + "objc2-foundation 0.3.0", + "objc2-metal 0.3.0", ] [[package]] @@ -3448,8 +3904,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -3459,15 +3915,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ "bitflags 2.8.0", - "block2", - "objc2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-image", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-cloud-kit 0.2.2", + "objc2-core-data 0.2.2", + "objc2-core-image 0.2.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", "objc2-link-presentation", - "objc2-quartz-core", + "objc2-quartz-core 0.2.2", "objc2-symbols", "objc2-uniform-type-identifiers", "objc2-user-notifications", @@ -3479,9 +3935,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -3491,10 +3947,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ "bitflags 2.8.0", - "block2", - "objc2", + "block2 0.5.1", + "objc2 0.5.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] @@ -3553,6 +4009,31 @@ dependencies = [ "ttf-parser 0.25.1", ] +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "parking" version = "2.2.1" @@ -3719,13 +4200,56 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + [[package]] name = "proc-macro-crate" version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit", + "toml_edit 0.22.23", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", ] [[package]] @@ -3814,9 +4338,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" dependencies = [ "memchr", ] @@ -3857,7 +4381,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", ] [[package]] @@ -3918,13 +4442,14 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "raw-window-metal" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2000e45d7daa9b6d946e88dfa1d7ae330424a81918a6545741821c989eb80a9" +checksum = "40d213455a5f1dc59214213c7330e074ddf8114c9a42411eb890c767357ce135" dependencies = [ - "objc2", - "objc2-foundation", - "objc2-quartz-core", + "objc2 0.6.0", + "objc2-core-foundation", + "objc2-foundation 0.3.0", + "objc2-quartz-core 0.3.0", ] [[package]] @@ -3971,7 +4496,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.15", "libredox", "thiserror", ] @@ -4070,7 +4595,7 @@ dependencies = [ "supergfxctl", "tokio", "versions", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4084,7 +4609,7 @@ dependencies = [ "pix", "png_pong", "serde", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4095,7 +4620,7 @@ dependencies = [ "log", "ron", "serde", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4109,7 +4634,7 @@ dependencies = [ "rog_profiles", "rog_scsi", "rog_slash", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4122,7 +4647,7 @@ dependencies = [ "rusb", "serde", "udev 0.8.0", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4133,7 +4658,7 @@ dependencies = [ "rog_platform", "serde", "udev 0.8.0", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4143,7 +4668,7 @@ dependencies = [ "ron", "serde", "sg", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4162,7 +4687,7 @@ version = "6.1.0-rc7" dependencies = [ "dmi_id", "serde", - "zbus 5.3.0", + "zbus 5.3.1", ] [[package]] @@ -4234,9 +4759,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.43" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.8.0", "errno", @@ -4289,9 +4814,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -4384,9 +4909,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa", "memchr", @@ -4498,7 +5023,7 @@ dependencies = [ "bindgen 0.69.5", "cc", "flate2", - "heck", + "heck 0.5.0", "lazy_static", "regex", "serde_json", @@ -4530,7 +5055,7 @@ dependencies = [ [[package]] name = "slint" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "const-field-offset", "i-slint-backend-selector", @@ -4548,18 +5073,18 @@ dependencies = [ [[package]] name = "slint-build" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "derive_more", "i-slint-compiler", "spin_on", - "toml_edit", + "toml_edit 0.22.23", ] [[package]] name = "slint-macros" version = "1.10.0" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "i-slint-compiler", "proc-macro2", @@ -4679,9 +5204,9 @@ dependencies = [ "js-sys", "log", "memmap2", - "objc2", - "objc2-foundation", - "objc2-quartz-core", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-quartz-core 0.2.2", "raw-window-handle", "redox_syscall 0.5.8", "rustix", @@ -4740,7 +5265,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", @@ -4758,8 +5283,8 @@ dependencies = [ "serde_derive", "serde_json", "tokio", - "udev 0.9.1", - "zbus 5.3.0", + "udev 0.9.3", + "zbus 5.3.1", ] [[package]] @@ -4827,7 +5352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ "cfg-expr", - "heck", + "heck 0.5.0", "pkg-config", "toml", "version-compare 0.2.0", @@ -4869,13 +5394,13 @@ checksum = "bc1ee6eef34f12f765cb94725905c6312b6610ab2b0940889cfe58dae7bc3c72" [[package]] name = "tempfile" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if", "fastrand", - "getrandom", + "getrandom 0.3.1", "once_cell", "rustix", "windows-sys 0.59.0", @@ -5081,7 +5606,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.23", ] [[package]] @@ -5095,15 +5620,37 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.7.1", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.7.1", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.7.0", ] [[package]] @@ -5260,6 +5807,15 @@ dependencies = [ "core_maths", ] +[[package]] +name = "typed-index-collections" +version = "3.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d844b11f547a6fb9dee7ed073d9860174917a072aabe05df6ee60dbe79e7afa" +dependencies = [ + "serde", +] + [[package]] name = "typenum" version = "1.17.0" @@ -5281,9 +5837,9 @@ dependencies = [ [[package]] name = "udev" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d5c197b95f1769931c89f85c33c407801d1fb7a311113bc0b39ad036f1bd81" +checksum = "af4e37e9ea4401fc841ff54b9ddfc9be1079b1e89434c1a6a865dd68980f7e9f" dependencies = [ "io-lifetimes", "libc", @@ -5354,9 +5910,9 @@ checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-linebreak" @@ -5498,7 +6054,7 @@ dependencies = [ [[package]] name = "vtable" version = "0.2.1" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "const-field-offset", "portable-atomic", @@ -5509,7 +6065,7 @@ dependencies = [ [[package]] name = "vtable-macro" version = "0.2.1" -source = "git+https://github.com/slint-ui/slint.git#0d723953f9a64fe006dae68d7472e18eb7817a68" +source = "git+https://github.com/slint-ui/slint.git#2a5e35a5e808b390e8d4a623d61deba01ef6e1b4" dependencies = [ "proc-macro2", "quote", @@ -5541,6 +6097,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -5614,9 +6179,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +checksum = "b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf" dependencies = [ "cc", "downcast-rs", @@ -5628,9 +6193,9 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" +checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" dependencies = [ "bitflags 2.8.0", "rustix", @@ -5651,9 +6216,9 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b08bc3aafdb0035e7fe0fdf17ba0c09c268732707dca4ae098f60cb28c9e4c" +checksum = "a93029cbb6650748881a00e4922b076092a6a08c11e7fbdb923f064b23968c5d" dependencies = [ "rustix", "wayland-client", @@ -5662,9 +6227,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.5" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" +checksum = "0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc" dependencies = [ "bitflags 2.8.0", "wayland-backend", @@ -5674,9 +6239,9 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" +checksum = "7ccaacc76703fefd6763022ac565b590fcade92202492381c95b2edfdf7d46b3" dependencies = [ "bitflags 2.8.0", "wayland-backend", @@ -5687,9 +6252,9 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" +checksum = "248a02e6f595aad796561fa82d25601bd2c8c3b145b1c7453fc8f94c1a58f8b2" dependencies = [ "bitflags 2.8.0", "wayland-backend", @@ -5700,20 +6265,20 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", - "quick-xml 0.36.2", + "quick-xml 0.37.2", "quote", ] [[package]] name = "wayland-sys" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -6213,7 +6778,7 @@ dependencies = [ "android-activity", "atomic-waker", "bitflags 2.8.0", - "block2", + "block2 0.5.1", "bytemuck", "calloop 0.13.0", "cfg_aliases", @@ -6226,9 +6791,9 @@ dependencies = [ "libc", "memmap2", "ndk", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "objc2-ui-kit", "orbclient", "percent-encoding", @@ -6257,9 +6822,27 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.24" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" dependencies = [ "memchr", ] @@ -6273,6 +6856,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -6285,6 +6877,16 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + [[package]] name = "x11-clipboard" version = "0.9.3" @@ -6460,9 +7062,9 @@ dependencies = [ [[package]] name = "zbus" -version = "5.3.0" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "192a0d989036cd60a1e91a54c9851fb9ad5bd96125d41803eed79d2e2ef74bd7" +checksum = "2494e4b3f44d8363eef79a8a75fc0649efb710eef65a66b5e688a5eb4afe678a" dependencies = [ "async-broadcast", "async-executor", @@ -6487,9 +7089,9 @@ dependencies = [ "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow", + "winnow 0.6.26", "xdg-home", - "zbus_macros 5.3.0", + "zbus_macros 5.3.1", "zbus_names 4.1.1", "zvariant 5.2.0", ] @@ -6500,7 +7102,7 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.96", @@ -6509,11 +7111,11 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.3.0" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3685b5c81fce630efc3e143a4ded235b107f1b1cdf186c3f115529e5e5ae4265" +checksum = "445efc01929302aee95e2b25bbb62a301ea8a6369466e4278e58e7d1dfb23631" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.96", @@ -6541,7 +7143,7 @@ checksum = "519629a3f80976d89c575895b05677cbc45eaf9f70d62a364d819ba646409cc8" dependencies = [ "serde", "static_assertions", - "winnow", + "winnow 0.6.26", "zvariant 5.2.0", ] @@ -6656,7 +7258,7 @@ dependencies = [ "enumflags2", "serde", "static_assertions", - "winnow", + "winnow 0.6.26", "zvariant_derive 5.2.0", "zvariant_utils 3.1.0", ] @@ -6667,7 +7269,7 @@ version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.96", @@ -6680,7 +7282,7 @@ version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "573a8dd76961957108b10f7a45bac6ab1ea3e9b7fe01aff88325dc57bb8f5c8b" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.96", @@ -6709,5 +7311,5 @@ dependencies = [ "serde", "static_assertions", "syn 2.0.96", - "winnow", + "winnow 0.6.26", ] diff --git a/asusd/src/asus_armoury.rs b/asusd/src/asus_armoury.rs index 86c926de..b0ef4f6f 100644 --- a/asusd/src/asus_armoury.rs +++ b/asusd/src/asus_armoury.rs @@ -68,30 +68,41 @@ impl AsusArmouryAttribute { ) -> Result<(), RogError> { use zbus::export::futures_util::StreamExt; - let ctrl = self.clone(); let name = self.name(); - match self.attr.get_watcher() { - Ok(watch) => { - let name = <&str>::from(name); - tokio::spawn(async move { - let mut buffer = [0; 32]; - watch - .into_event_stream(&mut buffer) - .unwrap() - .for_each(|_| async { - debug!("{} changed", name); - ctrl.current_value_changed(&signal_ctxt).await.ok(); - }) - .await; - }); - } - Err(e) => info!( - "inotify watch failed: {}. You can ignore this if your device does not support \ - the feature", - e - ) + macro_rules! watch_value_notify { + ($attr_str:expr, $fn_prop_changed:ident) => { + match self.attr.get_watcher($attr_str) { + Ok(watch) => { + let name = <&str>::from(name); + let ctrl = self.clone(); + let sig = signal_ctxt.clone(); + tokio::spawn(async move { + let mut buffer = [0; 32]; + watch + .into_event_stream(&mut buffer) + .unwrap() + .for_each(|_| async { + debug!("{} changed", name); + ctrl.$fn_prop_changed(&sig).await.ok(); + }) + .await; + }); + } + Err(e) => info!( + "inotify watch failed: {}. You can ignore this if your device does not \ + support the feature", + e + ) + } + }; } + // "current_value", "default_value", "min_value", "max_value" + watch_value_notify!("current_value", current_value_changed); + watch_value_notify!("default_value", default_value_changed); + watch_value_notify!("min_value", min_value_changed); + watch_value_notify!("max_value", max_value_changed); + Ok(()) } } diff --git a/asusd/src/ctrl_platform.rs b/asusd/src/ctrl_platform.rs index 9596e349..249c53c6 100644 --- a/asusd/src/ctrl_platform.rs +++ b/asusd/src/ctrl_platform.rs @@ -372,6 +372,7 @@ impl CtrlPlatform { .enabled = false; self.config.lock().await.write(); + // TODO: Need to get supported profiles here and ensure we translate to one self.platform .set_platform_profile(policy.into()) .map_err(|err| { diff --git a/rog-aura/data/aura_support.ron b/rog-aura/data/aura_support.ron index cacb1e63..040df05d 100644 --- a/rog-aura/data/aura_support.ron +++ b/rog-aura/data/aura_support.ron @@ -80,6 +80,15 @@ advanced_type: None, power_zones: [Keyboard], ), + ( + device_name: "FX617X", + product_id: "", + layout_name: "fa506i", + basic_modes: [Static, Breathe, Pulse], + basic_zones: [], + advanced_type: None, + power_zones: [Keyboard], + ), ( device_name: "FX705D", product_id: "", @@ -854,4 +863,4 @@ advanced_type: None, power_zones: [Ally], ), -]) \ No newline at end of file +]) diff --git a/rog-control-center/build.rs b/rog-control-center/build.rs index a4aa1370..8b73f9e7 100644 --- a/rog-control-center/build.rs +++ b/rog-control-center/build.rs @@ -5,7 +5,6 @@ use slint_build::CompilerConfiguration; fn main() { // write_locales(); - let root = env!("CARGO_MANIFEST_DIR"); let mut main = PathBuf::from_str(root).unwrap(); main.push("ui/main_window.slint"); @@ -14,7 +13,6 @@ fn main() { include.push("ui"); slint_build::print_rustc_flags().unwrap(); - // slint_build::compile("ui/main_window.slint").unwrap(); slint_build::compile_with_config( main, CompilerConfiguration::new() diff --git a/rog-control-center/src/main.rs b/rog-control-center/src/main.rs index 1d1b2871..106b5dbc 100644 --- a/rog-control-center/src/main.rs +++ b/rog-control-center/src/main.rs @@ -84,7 +84,7 @@ async fn main() -> Result<()> { let board_name = dmi.board_name; let prod_family = dmi.product_family; info!("Running on {board_name}, product: {prod_family}"); - let is_rog_ally = prod_family == "RC71L"; + let is_rog_ally = prod_family == "RC71L" || prod_family == "RC72L"; let args: Vec = args().skip(1).collect(); @@ -120,7 +120,9 @@ async fn main() -> Result<()> { config.enable_tray_icon = false; config.run_in_background = false; config.startup_in_background = false; + config.start_fullscreen = true; } + config.write(); let enable_tray_icon = config.enable_tray_icon; let startup_in_background = config.startup_in_background; @@ -136,8 +138,8 @@ async fn main() -> Result<()> { // i_slint_backend_selector::with_platform(|_| Ok(())).unwrap(); if !startup_in_background { - if let Ok(mut lock) = app_state.lock() { - *lock = AppState::MainWindowShouldOpen; + if let Ok(mut app_state) = app_state.lock() { + *app_state = AppState::MainWindowShouldOpen; } } @@ -154,15 +156,15 @@ async fn main() -> Result<()> { let mut state = AppState::StartingUp; loop { // save as a var, don't hold the lock the entire time or deadlocks happen - if let Ok(lock) = app_state.lock() { - state = *lock; + if let Ok(app_state) = app_state.lock() { + state = *app_state; } // This sleep is required to give the event loop time to react sleep(Duration::from_millis(300)); if state == AppState::MainWindowShouldOpen { - if let Ok(mut lock) = app_state.lock() { - *lock = AppState::MainWindowOpen; + if let Ok(mut app_state) = app_state.lock() { + *app_state = AppState::MainWindowOpen; } let config_copy = config.clone(); @@ -174,20 +176,39 @@ async fn main() -> Result<()> { if let Some(ui) = ui.as_mut() { ui.window().show().unwrap(); ui.window().on_close_requested(move || { - if let Ok(mut lock) = app_state_copy.lock() { - *lock = AppState::MainWindowClosed; + if let Ok(mut app_state) = app_state_copy.lock() { + *app_state = AppState::MainWindowClosed; } slint::CloseRequestResponse::HideWindow }); } else { + let config_copy_2 = config_copy.clone(); let newui = setup_window(config_copy); - newui.window().show().unwrap(); newui.window().on_close_requested(move || { - if let Ok(mut lock) = app_state_copy.lock() { - *lock = AppState::MainWindowClosed; + if let Ok(mut app_state) = app_state_copy.lock() { + *app_state = AppState::MainWindowClosed; } slint::CloseRequestResponse::HideWindow }); + + let ui_copy = newui.as_weak(); + newui + .window() + .set_rendering_notifier(move |s, _| { + if let slint::RenderingState::RenderingSetup = s { + let config = config_copy_2.clone(); + ui_copy + .upgrade_in_event_loop(move |w| { + let fullscreen = + config.lock().is_ok_and(|c| c.start_fullscreen); + if fullscreen && !w.window().is_fullscreen() { + w.window().set_fullscreen(fullscreen); + } + }) + .ok(); + } + }) + .ok(); ui.replace(newui); } }); @@ -197,8 +218,8 @@ async fn main() -> Result<()> { slint::quit_event_loop().unwrap(); exit(0); } else if state != AppState::MainWindowOpen { - if let Ok(lock) = config.lock() { - if !lock.run_in_background { + if let Ok(config) = config.lock() { + if !config.run_in_background { slint::quit_event_loop().unwrap(); exit(0); } diff --git a/rog-control-center/src/ui/mod.rs b/rog-control-center/src/ui/mod.rs index 67677cf1..6138df32 100644 --- a/rog-control-center/src/ui/mod.rs +++ b/rog-control-center/src/ui/mod.rs @@ -8,7 +8,7 @@ use std::sync::{Arc, Mutex}; use config_traits::StdConfig; use log::warn; use rog_dbus::list_iface_blocking; -use slint::{ComponentHandle, PhysicalSize, SharedString, Weak}; +use slint::{ComponentHandle, SharedString, Weak}; use crate::config::Config; use crate::ui::setup_anime::setup_anime_page; @@ -87,15 +87,7 @@ pub fn setup_window(config: Arc>) -> MainWindow { .map_err(|e| warn!("Couldn't set application ID: {e:?}")) .ok(); let ui = MainWindow::new().unwrap(); - if let Ok(lock) = config.try_lock() { - let fullscreen = lock.start_fullscreen; - let width = lock.fullscreen_width; - let height = lock.fullscreen_height; - if fullscreen { - ui.window().set_fullscreen(fullscreen); - ui.window().set_size(PhysicalSize { width, height }); - } - }; + ui.window().show().unwrap(); let available = list_iface_blocking().unwrap_or_default(); ui.set_sidebar_items_avilable( @@ -129,6 +121,7 @@ pub fn setup_window(config: Arc>) -> MainWindow { if available.contains(&"xyz.ljones.FanCurves".to_string()) { setup_fan_curve_page(&ui, config); } + ui } diff --git a/rog-control-center/src/ui/setup_system.rs b/rog-control-center/src/ui/setup_system.rs index 51e6de65..41a6fe32 100644 --- a/rog-control-center/src/ui/setup_system.rs +++ b/rog-control-center/src/ui/setup_system.rs @@ -16,7 +16,7 @@ use crate::{set_ui_callbacks, set_ui_props_async, AttrMinMax, MainWindow, System const MINMAX: AttrMinMax = AttrMinMax { min: 0, max: 0, - val: -1.0 + current: -1.0 }; pub fn setup_system_page(ui: &MainWindow, _config: Arc>) { @@ -93,13 +93,13 @@ macro_rules! init_minmax_property { tokio::spawn(async move { let min = proxy_copy.min_value().await.unwrap(); let max = proxy_copy.max_value().await.unwrap(); - let val = proxy_copy.current_value().await.unwrap() as f32; + let current = proxy_copy.current_value().await.unwrap() as f32; handle_copy .upgrade_in_event_loop(move |handle| { concat_idents!(setter = set_, $property { handle .global::() - .setter(AttrMinMax { min, max, val }); + .setter(AttrMinMax { min, max, current }); }); }) .ok(); @@ -174,30 +174,41 @@ macro_rules! setup_external { } // For handling external value changes -macro_rules! setup_minmax_external { - ($property:ident, $handle:expr, $attr:expr, $platform:expr) => { +macro_rules! setup_value_watch { + ($property:ident, $handle:expr, $proxy:expr, $value_type:ident $($conv: tt)*) => { let handle_copy = $handle.as_weak(); - let proxy_copy = $attr.clone(); + let proxy_copy = $proxy.clone(); tokio::spawn(async move { - let mut x = proxy_copy.receive_current_value_changed().await; + let mut x = concat_idents!(recv = receive_, $value_type, _value_changed { + proxy_copy.recv().await + }); use zbus::export::futures_util::StreamExt; while let Some(e) = x.next().await { if let Ok(out) = e.get().await { concat_idents!(getter = get_, $property { - handle_copy - .upgrade_in_event_loop(move |handle| { - let mut tmp: AttrMinMax = - handle.global::().getter(); - tmp.val = out as f32; - concat_idents!(setter = set_, $property { - handle.global::().setter(tmp); - }); - }) - .ok(); + handle_copy + .upgrade_in_event_loop(move |handle| { + let mut tmp: AttrMinMax = + handle.global::().getter(); + tmp.$value_type = out $($conv)*; + dbg!(tmp.$value_type); + concat_idents!(setter = set_, $property { + handle.global::().setter(tmp); + }); + }) + .ok(); }); } } }); + }; +} + +macro_rules! setup_minmax_external { + ($property:ident, $handle:expr, $attr:expr, $platform:expr) => { + setup_value_watch!($property, $handle, $attr, current as f32); + setup_value_watch!($property, $handle, $attr, min); + setup_value_watch!($property, $handle, $attr, max); let handle_copy = $handle.as_weak(); let proxy_copy = $attr.clone(); @@ -210,13 +221,13 @@ macro_rules! setup_minmax_external { debug!("receive_platform_profile_changed, getting new {}", stringify!(attr)); let min = proxy_copy.min_value().await.unwrap(); let max = proxy_copy.max_value().await.unwrap(); - let val = proxy_copy.current_value().await.unwrap() as f32; + let current = proxy_copy.current_value().await.unwrap() as f32; handle_copy .upgrade_in_event_loop(move |handle| { concat_idents!(setter = set_, $property { handle .global::() - .setter(AttrMinMax { min, max, val }); + .setter(AttrMinMax { min, max, current }); }); }) .ok(); diff --git a/rog-control-center/translations/en/rog-control-center.po b/rog-control-center/translations/en/rog-control-center.po index 6d0c31e5..d937833f 100644 --- a/rog-control-center/translations/en/rog-control-center.po +++ b/rog-control-center/translations/en/rog-control-center.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2025-01-21 06:49+0000\n" +"POT-Creation-Date: 2025-02-01 07:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -733,42 +733,42 @@ msgctxt "confirm_reset" msgid "Are you sure you want to reset this?" msgstr "" -#: rog-control-center/ui/main_window.slint:54 +#: rog-control-center/ui/main_window.slint:55 msgctxt "MainWindow" msgid "ROG" msgstr "" -#: rog-control-center/ui/main_window.slint:56 +#: rog-control-center/ui/main_window.slint:57 msgctxt "Menu1" msgid "System Control" msgstr "" -#: rog-control-center/ui/main_window.slint:57 +#: rog-control-center/ui/main_window.slint:58 msgctxt "Menu2" msgid "Keyboard Aura" msgstr "" -#: rog-control-center/ui/main_window.slint:58 +#: rog-control-center/ui/main_window.slint:59 msgctxt "Menu3" msgid "AniMe Matrix" msgstr "" -#: rog-control-center/ui/main_window.slint:59 +#: rog-control-center/ui/main_window.slint:60 msgctxt "Menu4" msgid "Fan Curves" msgstr "" -#: rog-control-center/ui/main_window.slint:60 +#: rog-control-center/ui/main_window.slint:61 msgctxt "Menu5" msgid "App Settings" msgstr "" -#: rog-control-center/ui/main_window.slint:61 +#: rog-control-center/ui/main_window.slint:62 msgctxt "Menu6" msgid "About" msgstr "" -#: rog-control-center/ui/main_window.slint:73 +#: rog-control-center/ui/main_window.slint:74 msgctxt "MainWindow" msgid "Quit App" msgstr "" diff --git a/rog-control-center/ui/main_window.slint b/rog-control-center/ui/main_window.slint index f8c965d4..acfdf437 100644 --- a/rog-control-center/ui/main_window.slint +++ b/rog-control-center/ui/main_window.slint @@ -19,6 +19,7 @@ export { AppSize, AttrMinMax, SystemPageData, AnimePageData, AppSettingsPageData export component MainWindow inherits Window { title: "ROG Control"; + always-on-top: true; default-font-family: "Noto Sans"; default-font-size: 14px; default-font-weight: 400; diff --git a/rog-control-center/ui/pages/system.slint b/rog-control-center/ui/pages/system.slint index ba58e329..5f2a91c2 100644 --- a/rog-control-center/ui/pages/system.slint +++ b/rog-control-center/ui/pages/system.slint @@ -4,12 +4,12 @@ import { Palette, HorizontalBox , VerticalBox, ScrollView, Slider, Button, Switc export struct AttrMinMax { min: int, max: int, - val: float, + current: float, } export struct AttrPossible { range: [int], - val: int, + current: int, } export global SystemPageData { @@ -54,7 +54,7 @@ export global SystemPageData { in-out property ppt_pl1_spl: { min: 0, max: 100, - val: 20, + current: 20, }; callback cb_ppt_pl1_spl(int); callback cb_default_ppt_pl1_spl(); @@ -62,7 +62,7 @@ export global SystemPageData { in-out property ppt_pl2_sppt: { min: 0, max: 100, - val: 20, + current: 20, }; callback cb_ppt_pl2_sppt(int); callback cb_default_ppt_pl2_sppt(); @@ -70,7 +70,7 @@ export global SystemPageData { in-out property ppt_pl3_fppt: { min: 0, max: 100, - val: 20, + current: 20, }; callback cb_ppt_pl3_fppt(int); callback cb_default_ppt_pl3_fppt(); @@ -78,7 +78,7 @@ export global SystemPageData { in-out property ppt_fppt: { min: 0, max: 100, - val: 20, + current: 20, }; callback cb_ppt_fppt(int); callback cb_default_ppt_fppt(); @@ -86,7 +86,7 @@ export global SystemPageData { in-out property ppt_apu_sppt: { min: 0, max: 100, - val: 20, + current: 20, }; callback cb_ppt_apu_sppt(int); callback cb_default_ppt_apu_sppt(); @@ -94,7 +94,7 @@ export global SystemPageData { in-out property ppt_platform_sppt: { min: 0, max: 100, - val: 20, + current: 20, }; callback cb_ppt_platform_sppt(int); callback cb_default_ppt_platform_sppt(); @@ -102,7 +102,7 @@ export global SystemPageData { in-out property nv_dynamic_boost: { min: 0, max: 30, - val: 5, + current: 5, }; callback cb_nv_dynamic_boost(int); callback cb_default_nv_dynamic_boost(); @@ -110,7 +110,7 @@ export global SystemPageData { in-out property nv_temp_target: { min: 0, max: 80, - val: 75, + current: 75, }; callback cb_nv_temp_target(int); callback cb_default_nv_temp_target(); @@ -237,7 +237,7 @@ export component PageSystem inherits Rectangle { } } - if SystemPageData.ppt_pl1_spl.val != -1 || SystemPageData.ppt_pl2_sppt.val != -1 || SystemPageData.nv_dynamic_boost.val != -1: HorizontalLayout { + if SystemPageData.ppt_pl1_spl.current != -1 || SystemPageData.ppt_pl2_sppt.current != -1 || SystemPageData.nv_dynamic_boost.current != -1: HorizontalLayout { padding-right: 10px; padding-left: 10px; alignment: LayoutAlignment.space-between; @@ -258,137 +258,137 @@ export component PageSystem inherits Rectangle { } } - if SystemPageData.ppt_pl1_spl.val != -1: SystemSlider { + if SystemPageData.ppt_pl1_spl.current != -1: SystemSlider { text: @tr("ppt_pl1_spl" => "CPU Sustained Power Limit"); title: @tr("ppt_pl1_spl" => "CPU Sustained Power Limit"); help_text: @tr("ppt_pl1_spl_help" => "Long-term CPU power limit that affects sustained workload performance. Higher values may increase heat and power consumption."); minimum: SystemPageData.ppt_pl1_spl.min; maximum: SystemPageData.ppt_pl1_spl.max; - value: SystemPageData.ppt_pl1_spl.val; + value: SystemPageData.ppt_pl1_spl.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_ppt_pl1_spl(); } released => { - SystemPageData.ppt_pl1_spl.val = self.value; + SystemPageData.ppt_pl1_spl.current = self.value; SystemPageData.cb_ppt_pl1_spl(Math.round(self.value)); } } - if SystemPageData.ppt_pl2_sppt.val != -1: SystemSlider { + if SystemPageData.ppt_pl2_sppt.current != -1: SystemSlider { text: @tr("ppt_pl2_sppt" => "CPU Turbo Power Limit"); title: @tr("ppt_pl2_sppt" => "CPU Turbo Power Limit"); help_text: @tr("ppt_pl2_sppt_help" => "Short-term CPU power limit for boost periods. Controls maximum power during brief high-performance bursts."); minimum: SystemPageData.ppt_pl2_sppt.min; maximum: SystemPageData.ppt_pl2_sppt.max; - value: SystemPageData.ppt_pl2_sppt.val; + value: SystemPageData.ppt_pl2_sppt.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_ppt_pl2_sppt(); } released => { - SystemPageData.ppt_pl2_sppt.val = self.value; + SystemPageData.ppt_pl2_sppt.current = self.value; SystemPageData.cb_ppt_pl2_sppt(Math.round(self.value)) } } - if SystemPageData.ppt_pl3_fppt.val != -1: SystemSlider { + if SystemPageData.ppt_pl3_fppt.current != -1: SystemSlider { text: @tr("ppt_pl3_fppt" => "CPU Fast Burst Power Limit"); title: @tr("ppt_pl3_fppt" => "CPU Fast Burst Power Limit"); help_text: @tr("ppt_pl3_fppt_help" => "Ultra-short duration power limit for instantaneous CPU bursts. Affects responsiveness during sudden workload spikes."); minimum: SystemPageData.ppt_pl3_fppt.min; maximum: SystemPageData.ppt_pl3_fppt.max; - value: SystemPageData.ppt_pl3_fppt.val; + value: SystemPageData.ppt_pl3_fppt.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_ppt_pl3_fppt(); } released => { - SystemPageData.ppt_pl3_fppt.val = self.value; + SystemPageData.ppt_pl3_fppt.current = self.value; SystemPageData.cb_ppt_pl3_fppt(Math.round(self.value)) } } - if SystemPageData.ppt_fppt.val != -1: SystemSlider { + if SystemPageData.ppt_fppt.current != -1: SystemSlider { text: @tr("ppt_fppt" => "Fast Package Power Limit"); title: @tr("ppt_fppt" => "Fast Package Power Limit"); help_text: @tr("ppt_fppt_help" => "Ultra-short duration power limit for system package. Controls maximum power during millisecond-scale load spikes."); minimum: SystemPageData.ppt_fppt.min; maximum: SystemPageData.ppt_fppt.max; - value: SystemPageData.ppt_fppt.val; + value: SystemPageData.ppt_fppt.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_ppt_fppt(); } released => { - SystemPageData.ppt_fppt.val = self.value; + SystemPageData.ppt_fppt.current = self.value; SystemPageData.cb_ppt_fppt(Math.round(self.value)) } } - if SystemPageData.ppt_apu_sppt.val != -1: SystemSlider { + if SystemPageData.ppt_apu_sppt.current != -1: SystemSlider { text: @tr("ppt_apu_sppt" => "APU Sustained Power Limit"); title: @tr("ppt_apu_sppt" => "APU Sustained Power Limit"); help_text: @tr("ppt_apu_sppt_help" => "Long-term power limit for integrated graphics and CPU combined. Affects sustained performance of APU-based workloads."); minimum: SystemPageData.ppt_apu_sppt.min; maximum: SystemPageData.ppt_apu_sppt.max; - value: SystemPageData.ppt_apu_sppt.val; + value: SystemPageData.ppt_apu_sppt.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_ppt_apu_sppt(); } released => { - SystemPageData.ppt_apu_sppt.val = self.value; + SystemPageData.ppt_apu_sppt.current = self.value; SystemPageData.cb_ppt_apu_sppt(Math.round(self.value)) } } - if SystemPageData.ppt_platform_sppt.val != -1: SystemSlider { + if SystemPageData.ppt_platform_sppt.current != -1: SystemSlider { text: @tr("ppt_platform_sppt" => "Platform Sustained Power Limit"); title: @tr("ppt_platform_sppt" => "Platform Sustained Power Limit"); help_text: @tr("ppt_platform_sppt_help" => "Overall system power limit for sustained operations. Controls total platform power consumption over extended periods."); minimum: SystemPageData.ppt_platform_sppt.min; maximum: SystemPageData.ppt_platform_sppt.max; - value: SystemPageData.ppt_platform_sppt.val; + value: SystemPageData.ppt_platform_sppt.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_ppt_platform_sppt(); } released => { - SystemPageData.ppt_platform_sppt.val = self.value; + SystemPageData.ppt_platform_sppt.current = self.value; SystemPageData.cb_ppt_platform_sppt(Math.round(self.value)) } } - if SystemPageData.nv_dynamic_boost.val != -1: SystemSlider { + if SystemPageData.nv_dynamic_boost.current != -1: SystemSlider { text: @tr("nv_dynamic_boost" => "GPU Power Boost"); title: @tr("nv_dynamic_boost" => "GPU Power Boost"); help_text: @tr("nv_dynamic_boost_help" => "Additional power allocation for GPU dynamic boost. Higher values increase GPU performance but generate more heat."); minimum: SystemPageData.nv_dynamic_boost.min; maximum: SystemPageData.nv_dynamic_boost.max; - value: SystemPageData.nv_dynamic_boost.val; + value: SystemPageData.nv_dynamic_boost.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_nv_dynamic_boost(); } released => { - SystemPageData.nv_dynamic_boost.val = self.value; + SystemPageData.nv_dynamic_boost.current = self.value; SystemPageData.cb_nv_dynamic_boost(Math.round(self.value)) } } - if SystemPageData.nv_temp_target.val != -1: SystemSlider { + if SystemPageData.nv_temp_target.current != -1: SystemSlider { text: @tr("nv_temp_target" => "GPU Temperature Limit"); title: @tr("nv_temp_target" => "GPU Temperature Limit"); help_text: @tr("nv_temp_target_help" => "Maximum GPU temperature threshold in Celsius. GPU will throttle to maintain temperature below this limit."); minimum: SystemPageData.nv_temp_target.min; maximum: SystemPageData.nv_temp_target.max; - value: SystemPageData.nv_temp_target.val; + value: SystemPageData.nv_temp_target.current; has_reset: true; cb_do_reset => { SystemPageData.cb_default_nv_temp_target(); } released => { - SystemPageData.nv_temp_target.val = self.value; + SystemPageData.nv_temp_target.current = self.value; SystemPageData.cb_nv_temp_target(Math.round(self.value)) } } diff --git a/rog-platform/src/asus_armoury.rs b/rog-platform/src/asus_armoury.rs index f55c732e..3e31a612 100644 --- a/rog-platform/src/asus_armoury.rs +++ b/rog-platform/src/asus_armoury.rs @@ -172,8 +172,8 @@ impl Attribute { ) } - pub fn get_watcher(&self) -> Result { - let path = self.base_path.join("current_value"); + pub fn get_watcher(&self, attr: &str) -> Result { + let path = self.base_path.join(attr); if let Some(path) = path.to_str() { let inotify = inotify::Inotify::init()?; inotify @@ -317,7 +317,13 @@ impl FirmwareAttribute { | FirmwareAttribute::PptFppt | FirmwareAttribute::PptApuSppt | FirmwareAttribute::PptPlatformSppt - | FirmwareAttribute::NvDynamicBoost + ) + } + + pub fn is_dgpu(&self) -> bool { + matches!( + self, + FirmwareAttribute::NvDynamicBoost | FirmwareAttribute::NvTempTarget | FirmwareAttribute::DgpuTgp ) @@ -338,7 +344,7 @@ impl From<&str> for FirmwareAttribute { "ppt_platform_sppt" => Self::PptPlatformSppt, "nv_dynamic_boost" => Self::NvDynamicBoost, "nv_temp_target" => Self::NvTempTarget, - "dgpu_base_tgp" => Self::DgpuBaseTgp, + "nv_base_tgp" => Self::DgpuBaseTgp, "dgpu_tgp" => Self::DgpuTgp, "charge_mode" => Self::ChargeMode, "boot_sound" => Self::BootSound,