Fix: charge control

This commit is contained in:
Luke Jones
2025-02-10 22:05:52 +13:00
parent 663f87d5e2
commit b2726f3a67
6 changed files with 95 additions and 62 deletions

View File

@@ -2,6 +2,11 @@
## [Unreleased] ## [Unreleased]
## [v6.1.2]
### Changed
- Try a slightly different tact to fix charge control slider
## [v6.1.1] ## [v6.1.1]
### Changed ### Changed

28
Cargo.lock generated
View File

@@ -158,7 +158,7 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
[[package]] [[package]]
name = "asusctl" name = "asusctl"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"dmi_id", "dmi_id",
"env_logger", "env_logger",
@@ -177,7 +177,7 @@ dependencies = [
[[package]] [[package]]
name = "asusd" name = "asusd"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"cargo-husky", "cargo-husky",
"concat-idents", "concat-idents",
@@ -204,7 +204,7 @@ dependencies = [
[[package]] [[package]]
name = "asusd-user" name = "asusd-user"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"config-traits", "config-traits",
"dirs", "dirs",
@@ -941,7 +941,7 @@ dependencies = [
[[package]] [[package]]
name = "config-traits" name = "config-traits"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"log", "log",
"ron", "ron",
@@ -1333,7 +1333,7 @@ dependencies = [
[[package]] [[package]]
name = "dmi_id" name = "dmi_id"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"log", "log",
"udev 0.8.0", "udev 0.8.0",
@@ -4571,7 +4571,7 @@ dependencies = [
[[package]] [[package]]
name = "rog-control-center" name = "rog-control-center"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"asusd", "asusd",
"concat-idents", "concat-idents",
@@ -4602,7 +4602,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_anime" name = "rog_anime"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"dmi_id", "dmi_id",
"gif 0.12.0", "gif 0.12.0",
@@ -4616,7 +4616,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_aura" name = "rog_aura"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"dmi_id", "dmi_id",
"log", "log",
@@ -4627,7 +4627,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_dbus" name = "rog_dbus"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"asusd", "asusd",
"rog_anime", "rog_anime",
@@ -4641,7 +4641,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_platform" name = "rog_platform"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"concat-idents", "concat-idents",
"inotify", "inotify",
@@ -4654,7 +4654,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_profiles" name = "rog_profiles"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"log", "log",
"rog_platform", "rog_platform",
@@ -4665,7 +4665,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_scsi" name = "rog_scsi"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"ron", "ron",
"serde", "serde",
@@ -4675,7 +4675,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_simulators" name = "rog_simulators"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"log", "log",
"rog_anime", "rog_anime",
@@ -4685,7 +4685,7 @@ dependencies = [
[[package]] [[package]]
name = "rog_slash" name = "rog_slash"
version = "6.1.1" version = "6.1.2"
dependencies = [ dependencies = [
"dmi_id", "dmi_id",
"serde", "serde",

View File

@@ -1,5 +1,5 @@
[workspace.package] [workspace.package]
version = "6.1.1" version = "6.1.2"
rust-version = "1.82" rust-version = "1.82"
license = "MPL-2.0" license = "MPL-2.0"
readme = "README.md" readme = "README.md"

View File

@@ -28,6 +28,8 @@ pub fn setup_system_page(ui: &MainWindow, _config: Arc<Mutex<Config>>) {
// Null everything before the setup step // Null everything before the setup step
ui.global::<SystemPageData>() ui.global::<SystemPageData>()
.set_charge_control_end_threshold(-1.0); .set_charge_control_end_threshold(-1.0);
ui.global::<SystemPageData>()
.set_charge_control_enabled(false);
ui.global::<SystemPageData>().set_platform_profile(-1); ui.global::<SystemPageData>().set_platform_profile(-1);
ui.global::<SystemPageData>().set_panel_overdrive(-1); ui.global::<SystemPageData>().set_panel_overdrive(-1);
ui.global::<SystemPageData>().set_boot_sound(-1); ui.global::<SystemPageData>().set_boot_sound(-1);
@@ -45,10 +47,12 @@ pub fn setup_system_page(ui: &MainWindow, _config: Arc<Mutex<Config>>) {
.set_ppt_enabled_available(false); .set_ppt_enabled_available(false);
let sys_props = platform.supported_properties().unwrap(); 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) { if sys_props.contains(&Properties::ChargeControlEndThreshold) {
ui.global::<SystemPageData>() ui.global::<SystemPageData>()
.set_charge_control_end_threshold(60.0); .set_charge_control_end_threshold(60.0);
ui.global::<SystemPageData>()
.set_charge_control_enabled(true);
} }
} }
@@ -406,10 +410,32 @@ pub fn setup_system_page_callbacks(ui: &MainWindow, _states: Arc<Mutex<Config>>)
FirmwareAttribute::PptEnabled => { FirmwareAttribute::PptEnabled => {
init_property!(ppt_enabled, handle, value, bool); init_property!(ppt_enabled, handle, value, bool);
setup_callback!(ppt_enabled, handle, attr, 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::<SystemPageData>()
.set_enable_ppt_group(out == 1);
handle
.global::<SystemPageData>()
.set_ppt_enabled(out == 1);
})
.ok();
}
}
});
handle handle
.global::<SystemPageData>() .global::<SystemPageData>()
.set_ppt_enabled_available(true); .set_ppt_enabled_available(true);
handle
.global::<SystemPageData>()
.set_enable_ppt_group(value == 1);
} }
FirmwareAttribute::PptPl1Spl => { FirmwareAttribute::PptPl1Spl => {
init_minmax_property!(ppt_pl1_spl, handle, attr); init_minmax_property!(ppt_pl1_spl, handle, attr);

View File

@@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -12,238 +12,238 @@ msgstr ""
"Language: \n" "Language: \n"
"Plural-Forms: nplurals=1; plural=0;\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" msgctxt "SystemPageData"
msgid "Balanced" msgid "Balanced"
msgstr "" 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" msgctxt "SystemPageData"
msgid "Performance" msgid "Performance"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:19 #: rog-control-center/ui/pages/system.slint:20
msgctxt "SystemPageData" msgctxt "SystemPageData"
msgid "Quiet" msgid "Quiet"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:22 #: rog-control-center/ui/pages/system.slint:23
msgctxt "SystemPageData" msgctxt "SystemPageData"
msgid "Default" msgid "Default"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:24 #: rog-control-center/ui/pages/system.slint:25
msgctxt "SystemPageData" msgctxt "SystemPageData"
msgid "BalancePerformance" msgid "BalancePerformance"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:25 #: rog-control-center/ui/pages/system.slint:26
msgctxt "SystemPageData" msgctxt "SystemPageData"
msgid "BalancePower" msgid "BalancePower"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:26 #: rog-control-center/ui/pages/system.slint:27
msgctxt "SystemPageData" msgctxt "SystemPageData"
msgid "Power" msgid "Power"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:146 #: rog-control-center/ui/pages/system.slint:147
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Power settings" msgid "Power settings"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:151 #: rog-control-center/ui/pages/system.slint:152
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Charge limit" msgid "Charge limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:165 #: rog-control-center/ui/pages/system.slint:167
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Platform Profile" msgid "Platform Profile"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:175 #: rog-control-center/ui/pages/system.slint:177
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Advanced" msgid "Advanced"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:193 #: rog-control-center/ui/pages/system.slint:195
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Armoury settings" msgid "Armoury settings"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:203 #: rog-control-center/ui/pages/system.slint:205
msgctxt "no_asus_armoury_driver_1" msgctxt "no_asus_armoury_driver_1"
msgid "The asus-armoury driver is not loaded" msgid "The asus-armoury driver is not loaded"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:209 #: rog-control-center/ui/pages/system.slint:211
msgctxt "no_asus_armoury_driver_2" msgctxt "no_asus_armoury_driver_2"
msgid "For advanced features you will require a kernel with this driver added." msgid "For advanced features you will require a kernel with this driver added."
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:220 #: rog-control-center/ui/pages/system.slint:222
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Panel Overdrive" msgid "Panel Overdrive"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:228 #: rog-control-center/ui/pages/system.slint:230
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "MiniLED Mode" msgid "MiniLED Mode"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:236 #: rog-control-center/ui/pages/system.slint:238
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "POST boot sound" msgid "POST boot sound"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:252 #: rog-control-center/ui/pages/system.slint:254
msgctxt "ppt_warning" msgctxt "ppt_warning"
msgid "The following settings are not applied until the toggle is enabled." msgid "The following settings are not applied until the toggle is enabled."
msgstr "" 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" msgctxt "ppt_group_enabled"
msgid "Enable Tuning" msgid "Enable Tuning"
msgstr "" 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" msgctxt "ppt_pl1_spl"
msgid "CPU Sustained Power Limit" msgid "CPU Sustained Power Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:277 #: rog-control-center/ui/pages/system.slint:279
msgctxt "ppt_pl1_spl_help" msgctxt "ppt_pl1_spl_help"
msgid "" msgid ""
"Long-term CPU power limit that affects sustained workload performance. " "Long-term CPU power limit that affects sustained workload performance. "
"Higher values may increase heat and power consumption." "Higher values may increase heat and power consumption."
msgstr "" 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" msgctxt "ppt_pl2_sppt"
msgid "CPU Turbo Power Limit" msgid "CPU Turbo Power Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:295 #: rog-control-center/ui/pages/system.slint:297
msgctxt "ppt_pl2_sppt_help" msgctxt "ppt_pl2_sppt_help"
msgid "" msgid ""
"Short-term CPU power limit for boost periods. Controls maximum power during " "Short-term CPU power limit for boost periods. Controls maximum power during "
"brief high-performance bursts." "brief high-performance bursts."
msgstr "" 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" msgctxt "ppt_pl3_fppt"
msgid "CPU Fast Burst Power Limit" msgid "CPU Fast Burst Power Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:313 #: rog-control-center/ui/pages/system.slint:315
msgctxt "ppt_pl3_fppt_help" msgctxt "ppt_pl3_fppt_help"
msgid "" msgid ""
"Ultra-short duration power limit for instantaneous CPU bursts. Affects " "Ultra-short duration power limit for instantaneous CPU bursts. Affects "
"responsiveness during sudden workload spikes." "responsiveness during sudden workload spikes."
msgstr "" 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" msgctxt "ppt_fppt"
msgid "Fast Package Power Limit" msgid "Fast Package Power Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:330 #: rog-control-center/ui/pages/system.slint:332
msgctxt "ppt_fppt_help" msgctxt "ppt_fppt_help"
msgid "" msgid ""
"Ultra-short duration power limit for system package. Controls maximum power " "Ultra-short duration power limit for system package. Controls maximum power "
"during millisecond-scale load spikes." "during millisecond-scale load spikes."
msgstr "" 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" msgctxt "ppt_apu_sppt"
msgid "APU Sustained Power Limit" msgid "APU Sustained Power Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:348 #: rog-control-center/ui/pages/system.slint:350
msgctxt "ppt_apu_sppt_help" msgctxt "ppt_apu_sppt_help"
msgid "" msgid ""
"Long-term power limit for integrated graphics and CPU combined. Affects " "Long-term power limit for integrated graphics and CPU combined. Affects "
"sustained performance of APU-based workloads." "sustained performance of APU-based workloads."
msgstr "" 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" msgctxt "ppt_platform_sppt"
msgid "Platform Sustained Power Limit" msgid "Platform Sustained Power Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:366 #: rog-control-center/ui/pages/system.slint:368
msgctxt "ppt_platform_sppt_help" msgctxt "ppt_platform_sppt_help"
msgid "" msgid ""
"Overall system power limit for sustained operations. Controls total platform " "Overall system power limit for sustained operations. Controls total platform "
"power consumption over extended periods." "power consumption over extended periods."
msgstr "" 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" msgctxt "nv_dynamic_boost"
msgid "GPU Power Boost" msgid "GPU Power Boost"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:384 #: rog-control-center/ui/pages/system.slint:386
msgctxt "nv_dynamic_boost_help" msgctxt "nv_dynamic_boost_help"
msgid "" msgid ""
"Additional power allocation for GPU dynamic boost. Higher values increase " "Additional power allocation for GPU dynamic boost. Higher values increase "
"GPU performance but generate more heat." "GPU performance but generate more heat."
msgstr "" 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" msgctxt "nv_temp_target"
msgid "GPU Temperature Limit" msgid "GPU Temperature Limit"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:402 #: rog-control-center/ui/pages/system.slint:404
msgctxt "nv_temp_target_help" msgctxt "nv_temp_target_help"
msgid "" msgid ""
"Maximum GPU temperature threshold in Celsius. GPU will throttle to maintain " "Maximum GPU temperature threshold in Celsius. GPU will throttle to maintain "
"temperature below this limit." "temperature below this limit."
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:454 #: rog-control-center/ui/pages/system.slint:456
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Energy Performance Preference linked to Throttle Policy" msgid "Energy Performance Preference linked to Throttle Policy"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:458 #: rog-control-center/ui/pages/system.slint:460
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Change EPP based on Throttle Policy" msgid "Change EPP based on Throttle Policy"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:466 #: rog-control-center/ui/pages/system.slint:468
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "EPP for Balanced Policy" msgid "EPP for Balanced Policy"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:476 #: rog-control-center/ui/pages/system.slint:478
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "EPP for Performance Policy" msgid "EPP for Performance Policy"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:486 #: rog-control-center/ui/pages/system.slint:488
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "EPP for Quiet Policy" msgid "EPP for Quiet Policy"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:504 #: rog-control-center/ui/pages/system.slint:506
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Throttle Policy for power state" msgid "Throttle Policy for power state"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:510 #: rog-control-center/ui/pages/system.slint:512
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Throttle Policy on Battery" msgid "Throttle Policy on Battery"
msgstr "" 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" msgctxt "PageSystem"
msgid "Enabled" msgid "Enabled"
msgstr "" msgstr ""
#: rog-control-center/ui/pages/system.slint:531 #: rog-control-center/ui/pages/system.slint:533
msgctxt "PageSystem" msgctxt "PageSystem"
msgid "Throttle Policy on AC" msgid "Throttle Policy on AC"
msgstr "" msgstr ""

View File

@@ -13,6 +13,7 @@ export struct AttrPossible {
} }
export global SystemPageData { export global SystemPageData {
in-out property <bool> charge_control_enabled: true;
in-out property <float> charge_control_end_threshold: 30; in-out property <float> charge_control_end_threshold: 30;
callback cb_charge_control_end_threshold(/* charge limit */ int); callback cb_charge_control_end_threshold(/* charge limit */ int);
in-out property <int> platform_profile: 0; in-out property <int> platform_profile: 0;
@@ -152,6 +153,7 @@ export component PageSystem inherits Rectangle {
minimum: 20; minimum: 20;
maximum: 100; maximum: 100;
has_reset: false; has_reset: false;
enabled <=> SystemPageData.charge_control_enabled;
value: SystemPageData.charge_control_end_threshold; value: SystemPageData.charge_control_end_threshold;
released => { released => {
SystemPageData.charge_control_end_threshold = self.value; SystemPageData.charge_control_end_threshold = self.value;