From b2726f3a6783a293eca85013037a002f0b49806b Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Mon, 10 Feb 2025 22:05:52 +1300 Subject: [PATCH] Fix: charge control --- CHANGELOG.md | 5 ++ Cargo.lock | 28 +++--- Cargo.toml | 2 +- rog-control-center/src/ui/setup_system.rs | 30 ++++++- .../translations/en/rog-control-center.po | 90 +++++++++---------- rog-control-center/ui/pages/system.slint | 2 + 6 files changed, 95 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60b02934..42eec21c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] +## [v6.1.2] + +### Changed +- Try a slightly different tact to fix charge control slider + ## [v6.1.1] ### Changed diff --git a/Cargo.lock b/Cargo.lock index 0e45f89a..f9979fa4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,7 +158,7 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "asusctl" -version = "6.1.1" +version = "6.1.2" dependencies = [ "dmi_id", "env_logger", @@ -177,7 +177,7 @@ dependencies = [ [[package]] name = "asusd" -version = "6.1.1" +version = "6.1.2" dependencies = [ "cargo-husky", "concat-idents", @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "asusd-user" -version = "6.1.1" +version = "6.1.2" dependencies = [ "config-traits", "dirs", @@ -941,7 +941,7 @@ dependencies = [ [[package]] name = "config-traits" -version = "6.1.1" +version = "6.1.2" dependencies = [ "log", "ron", @@ -1333,7 +1333,7 @@ dependencies = [ [[package]] name = "dmi_id" -version = "6.1.1" +version = "6.1.2" dependencies = [ "log", "udev 0.8.0", @@ -4571,7 +4571,7 @@ dependencies = [ [[package]] name = "rog-control-center" -version = "6.1.1" +version = "6.1.2" dependencies = [ "asusd", "concat-idents", @@ -4602,7 +4602,7 @@ dependencies = [ [[package]] name = "rog_anime" -version = "6.1.1" +version = "6.1.2" dependencies = [ "dmi_id", "gif 0.12.0", @@ -4616,7 +4616,7 @@ dependencies = [ [[package]] name = "rog_aura" -version = "6.1.1" +version = "6.1.2" dependencies = [ "dmi_id", "log", @@ -4627,7 +4627,7 @@ dependencies = [ [[package]] name = "rog_dbus" -version = "6.1.1" +version = "6.1.2" dependencies = [ "asusd", "rog_anime", @@ -4641,7 +4641,7 @@ dependencies = [ [[package]] name = "rog_platform" -version = "6.1.1" +version = "6.1.2" dependencies = [ "concat-idents", "inotify", @@ -4654,7 +4654,7 @@ dependencies = [ [[package]] name = "rog_profiles" -version = "6.1.1" +version = "6.1.2" dependencies = [ "log", "rog_platform", @@ -4665,7 +4665,7 @@ dependencies = [ [[package]] name = "rog_scsi" -version = "6.1.1" +version = "6.1.2" dependencies = [ "ron", "serde", @@ -4675,7 +4675,7 @@ dependencies = [ [[package]] name = "rog_simulators" -version = "6.1.1" +version = "6.1.2" dependencies = [ "log", "rog_anime", @@ -4685,7 +4685,7 @@ dependencies = [ [[package]] name = "rog_slash" -version = "6.1.1" +version = "6.1.2" dependencies = [ "dmi_id", "serde", diff --git a/Cargo.toml b/Cargo.toml index bfb508a2..c6bdf2cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "6.1.1" +version = "6.1.2" rust-version = "1.82" license = "MPL-2.0" readme = "README.md" diff --git a/rog-control-center/src/ui/setup_system.rs b/rog-control-center/src/ui/setup_system.rs index bd8cc424..43260f5b 100644 --- a/rog-control-center/src/ui/setup_system.rs +++ b/rog-control-center/src/ui/setup_system.rs @@ -28,6 +28,8 @@ pub fn setup_system_page(ui: &MainWindow, _config: Arc>) { // Null everything before the setup step ui.global::() .set_charge_control_end_threshold(-1.0); + ui.global::() + .set_charge_control_enabled(false); ui.global::().set_platform_profile(-1); ui.global::().set_panel_overdrive(-1); ui.global::().set_boot_sound(-1); @@ -45,10 +47,12 @@ pub fn setup_system_page(ui: &MainWindow, _config: Arc>) { .set_ppt_enabled_available(false); let sys_props = platform.supported_properties().unwrap(); - log::debug!("Available system properties: {sys_props:?}"); + log::debug!("Available system properties: {:?}", &sys_props); if sys_props.contains(&Properties::ChargeControlEndThreshold) { ui.global::() .set_charge_control_end_threshold(60.0); + ui.global::() + .set_charge_control_enabled(true); } } @@ -406,10 +410,32 @@ pub fn setup_system_page_callbacks(ui: &MainWindow, _states: Arc>) FirmwareAttribute::PptEnabled => { init_property!(ppt_enabled, handle, value, bool); setup_callback!(ppt_enabled, handle, attr, bool); - setup_external!(ppt_enabled, bool, handle, attr, value); + let handle_copy = handle.as_weak(); + let proxy_copy = attr.clone(); + tokio::spawn(async move { + let mut x = proxy_copy.receive_current_value_changed().await; + use futures_util::StreamExt; + while let Some(e) = x.next().await { + if let Ok(out) = e.get().await { + handle_copy + .upgrade_in_event_loop(move |handle| { + handle + .global::() + .set_enable_ppt_group(out == 1); + handle + .global::() + .set_ppt_enabled(out == 1); + }) + .ok(); + } + } + }); handle .global::() .set_ppt_enabled_available(true); + handle + .global::() + .set_enable_ppt_group(value == 1); } FirmwareAttribute::PptPl1Spl => { init_minmax_property!(ppt_pl1_spl, handle, attr); diff --git a/rog-control-center/translations/en/rog-control-center.po b/rog-control-center/translations/en/rog-control-center.po index 2c5ffbe4..1dd3560e 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-02-08 10:05+0000\n" +"POT-Creation-Date: 2025-02-10 09:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -12,238 +12,238 @@ msgstr "" "Language: \n" "Plural-Forms: nplurals=1; plural=0;\n" -#: rog-control-center/ui/pages/system.slint:19 +#: rog-control-center/ui/pages/system.slint:20 msgctxt "SystemPageData" msgid "Balanced" msgstr "" -#: rog-control-center/ui/pages/system.slint:19 rog-control-center/ui/pages/system.slint:23 +#: rog-control-center/ui/pages/system.slint:20 rog-control-center/ui/pages/system.slint:24 msgctxt "SystemPageData" msgid "Performance" msgstr "" -#: rog-control-center/ui/pages/system.slint:19 +#: rog-control-center/ui/pages/system.slint:20 msgctxt "SystemPageData" msgid "Quiet" msgstr "" -#: rog-control-center/ui/pages/system.slint:22 +#: rog-control-center/ui/pages/system.slint:23 msgctxt "SystemPageData" msgid "Default" msgstr "" -#: rog-control-center/ui/pages/system.slint:24 +#: rog-control-center/ui/pages/system.slint:25 msgctxt "SystemPageData" msgid "BalancePerformance" msgstr "" -#: rog-control-center/ui/pages/system.slint:25 +#: rog-control-center/ui/pages/system.slint:26 msgctxt "SystemPageData" msgid "BalancePower" msgstr "" -#: rog-control-center/ui/pages/system.slint:26 +#: rog-control-center/ui/pages/system.slint:27 msgctxt "SystemPageData" msgid "Power" msgstr "" -#: rog-control-center/ui/pages/system.slint:146 +#: rog-control-center/ui/pages/system.slint:147 msgctxt "PageSystem" msgid "Power settings" msgstr "" -#: rog-control-center/ui/pages/system.slint:151 +#: rog-control-center/ui/pages/system.slint:152 msgctxt "PageSystem" msgid "Charge limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:165 +#: rog-control-center/ui/pages/system.slint:167 msgctxt "PageSystem" msgid "Platform Profile" msgstr "" -#: rog-control-center/ui/pages/system.slint:175 +#: rog-control-center/ui/pages/system.slint:177 msgctxt "PageSystem" msgid "Advanced" msgstr "" -#: rog-control-center/ui/pages/system.slint:193 +#: rog-control-center/ui/pages/system.slint:195 msgctxt "PageSystem" msgid "Armoury settings" msgstr "" -#: rog-control-center/ui/pages/system.slint:203 +#: rog-control-center/ui/pages/system.slint:205 msgctxt "no_asus_armoury_driver_1" msgid "The asus-armoury driver is not loaded" msgstr "" -#: rog-control-center/ui/pages/system.slint:209 +#: rog-control-center/ui/pages/system.slint:211 msgctxt "no_asus_armoury_driver_2" msgid "For advanced features you will require a kernel with this driver added." msgstr "" -#: rog-control-center/ui/pages/system.slint:220 +#: rog-control-center/ui/pages/system.slint:222 msgctxt "PageSystem" msgid "Panel Overdrive" msgstr "" -#: rog-control-center/ui/pages/system.slint:228 +#: rog-control-center/ui/pages/system.slint:230 msgctxt "PageSystem" msgid "MiniLED Mode" msgstr "" -#: rog-control-center/ui/pages/system.slint:236 +#: rog-control-center/ui/pages/system.slint:238 msgctxt "PageSystem" msgid "POST boot sound" msgstr "" -#: rog-control-center/ui/pages/system.slint:252 +#: rog-control-center/ui/pages/system.slint:254 msgctxt "ppt_warning" msgid "The following settings are not applied until the toggle is enabled." msgstr "" -#: rog-control-center/ui/pages/system.slint:257 rog-control-center/ui/pages/system.slint:264 +#: rog-control-center/ui/pages/system.slint:259 rog-control-center/ui/pages/system.slint:266 msgctxt "ppt_group_enabled" msgid "Enable Tuning" msgstr "" -#: rog-control-center/ui/pages/system.slint:275 rog-control-center/ui/pages/system.slint:276 +#: rog-control-center/ui/pages/system.slint:277 rog-control-center/ui/pages/system.slint:278 msgctxt "ppt_pl1_spl" msgid "CPU Sustained Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:277 +#: rog-control-center/ui/pages/system.slint:279 msgctxt "ppt_pl1_spl_help" msgid "" "Long-term CPU power limit that affects sustained workload performance. " "Higher values may increase heat and power consumption." msgstr "" -#: rog-control-center/ui/pages/system.slint:293 rog-control-center/ui/pages/system.slint:294 +#: rog-control-center/ui/pages/system.slint:295 rog-control-center/ui/pages/system.slint:296 msgctxt "ppt_pl2_sppt" msgid "CPU Turbo Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:295 +#: rog-control-center/ui/pages/system.slint:297 msgctxt "ppt_pl2_sppt_help" msgid "" "Short-term CPU power limit for boost periods. Controls maximum power during " "brief high-performance bursts." msgstr "" -#: rog-control-center/ui/pages/system.slint:311 rog-control-center/ui/pages/system.slint:312 +#: rog-control-center/ui/pages/system.slint:313 rog-control-center/ui/pages/system.slint:314 msgctxt "ppt_pl3_fppt" msgid "CPU Fast Burst Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:313 +#: rog-control-center/ui/pages/system.slint:315 msgctxt "ppt_pl3_fppt_help" msgid "" "Ultra-short duration power limit for instantaneous CPU bursts. Affects " "responsiveness during sudden workload spikes." msgstr "" -#: rog-control-center/ui/pages/system.slint:328 rog-control-center/ui/pages/system.slint:329 +#: rog-control-center/ui/pages/system.slint:330 rog-control-center/ui/pages/system.slint:331 msgctxt "ppt_fppt" msgid "Fast Package Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:330 +#: rog-control-center/ui/pages/system.slint:332 msgctxt "ppt_fppt_help" msgid "" "Ultra-short duration power limit for system package. Controls maximum power " "during millisecond-scale load spikes." msgstr "" -#: rog-control-center/ui/pages/system.slint:346 rog-control-center/ui/pages/system.slint:347 +#: rog-control-center/ui/pages/system.slint:348 rog-control-center/ui/pages/system.slint:349 msgctxt "ppt_apu_sppt" msgid "APU Sustained Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:348 +#: rog-control-center/ui/pages/system.slint:350 msgctxt "ppt_apu_sppt_help" msgid "" "Long-term power limit for integrated graphics and CPU combined. Affects " "sustained performance of APU-based workloads." msgstr "" -#: rog-control-center/ui/pages/system.slint:364 rog-control-center/ui/pages/system.slint:365 +#: rog-control-center/ui/pages/system.slint:366 rog-control-center/ui/pages/system.slint:367 msgctxt "ppt_platform_sppt" msgid "Platform Sustained Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:366 +#: rog-control-center/ui/pages/system.slint:368 msgctxt "ppt_platform_sppt_help" msgid "" "Overall system power limit for sustained operations. Controls total platform " "power consumption over extended periods." msgstr "" -#: rog-control-center/ui/pages/system.slint:382 rog-control-center/ui/pages/system.slint:383 +#: rog-control-center/ui/pages/system.slint:384 rog-control-center/ui/pages/system.slint:385 msgctxt "nv_dynamic_boost" msgid "GPU Power Boost" msgstr "" -#: rog-control-center/ui/pages/system.slint:384 +#: rog-control-center/ui/pages/system.slint:386 msgctxt "nv_dynamic_boost_help" msgid "" "Additional power allocation for GPU dynamic boost. Higher values increase " "GPU performance but generate more heat." msgstr "" -#: rog-control-center/ui/pages/system.slint:400 rog-control-center/ui/pages/system.slint:401 +#: rog-control-center/ui/pages/system.slint:402 rog-control-center/ui/pages/system.slint:403 msgctxt "nv_temp_target" msgid "GPU Temperature Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:402 +#: rog-control-center/ui/pages/system.slint:404 msgctxt "nv_temp_target_help" msgid "" "Maximum GPU temperature threshold in Celsius. GPU will throttle to maintain " "temperature below this limit." msgstr "" -#: rog-control-center/ui/pages/system.slint:454 +#: rog-control-center/ui/pages/system.slint:456 msgctxt "PageSystem" msgid "Energy Performance Preference linked to Throttle Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:458 +#: rog-control-center/ui/pages/system.slint:460 msgctxt "PageSystem" msgid "Change EPP based on Throttle Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:466 +#: rog-control-center/ui/pages/system.slint:468 msgctxt "PageSystem" msgid "EPP for Balanced Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:476 +#: rog-control-center/ui/pages/system.slint:478 msgctxt "PageSystem" msgid "EPP for Performance Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:486 +#: rog-control-center/ui/pages/system.slint:488 msgctxt "PageSystem" msgid "EPP for Quiet Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:504 +#: rog-control-center/ui/pages/system.slint:506 msgctxt "PageSystem" msgid "Throttle Policy for power state" msgstr "" -#: rog-control-center/ui/pages/system.slint:510 +#: rog-control-center/ui/pages/system.slint:512 msgctxt "PageSystem" msgid "Throttle Policy on Battery" msgstr "" -#: rog-control-center/ui/pages/system.slint:520 rog-control-center/ui/pages/system.slint:541 +#: rog-control-center/ui/pages/system.slint:522 rog-control-center/ui/pages/system.slint:543 msgctxt "PageSystem" msgid "Enabled" msgstr "" -#: rog-control-center/ui/pages/system.slint:531 +#: rog-control-center/ui/pages/system.slint:533 msgctxt "PageSystem" msgid "Throttle Policy on AC" msgstr "" diff --git a/rog-control-center/ui/pages/system.slint b/rog-control-center/ui/pages/system.slint index 3f4fab27..7fc31d81 100644 --- a/rog-control-center/ui/pages/system.slint +++ b/rog-control-center/ui/pages/system.slint @@ -13,6 +13,7 @@ export struct AttrPossible { } export global SystemPageData { + in-out property charge_control_enabled: true; in-out property charge_control_end_threshold: 30; callback cb_charge_control_end_threshold(/* charge limit */ int); in-out property platform_profile: 0; @@ -152,6 +153,7 @@ export component PageSystem inherits Rectangle { minimum: 20; maximum: 100; has_reset: false; + enabled <=> SystemPageData.charge_control_enabled; value: SystemPageData.charge_control_end_threshold; released => { SystemPageData.charge_control_end_threshold = self.value;