Charge limit reset after reboot

hi!!!
im using an honor magicbook 14 from 2021, previously i was using mint with tlp to set charge limits, where it was working fine, and switched to fedora KDE partially because i’ve read KDE has a system setting for this

limits work, everything is fine up until the moment i reboot the laptop, and limits get reset to 0-100
i’ve also noticed that i dont have a BAT0 folder, only the BAT1, and previously tlp listed my battery as BAT0 on mint, however upower isn’t wrong about details of the battery it lists as BAT1 so idk

Operating System: Fedora Linux 44
KDE Plasma Version: 6.7.5
KDE Frameworks Version: 6.30.0
Qt Version: 6.11.2
Kernel Version: 7.2.7-200.fc44.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 8 × AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx
Memory: 16 GiB of RAM (14.6 GiB usable)
Graphics Processor: AMD Radeon Vega 10 Graphics
Manufacturer: HONOR
Product Name: BOHK-WAX9X
System Version: M1030

upower output:

Device: /org/freedesktop/UPower/devices/battery_BAT1 
  native-path:          BAT1 
  vendor:               Sunwoda-H 
  model:                HB4692J5ECW-31 
  serial:               1206 
  power supply:         yes 
  updated:              Wed Sep 30 12:14:05 2026 (6 seconds ago) 
  has history:          yes 
  has statistics:       yes 
  battery 
    present:             yes 
    rechargeable:        yes 
    state:               discharging 
    warning-level:       none 
    energy:              22.4043 Wh 
    energy-empty:        0 Wh 
    energy-full:         36.6147 Wh 
    energy-full-design:  41.4279 Wh 
    voltage-min-design:  11.46 V 
    capacity-level:      Normal 
    energy-rate:         13.2936 W 
    voltage:             11.408 V 
    charge-cycles:       643 
    time to empty:       1.7 hours 
    percentage:          61% 
    capacity:            88.3817% 
    technology:          lithium-ion 
    charge-start-threshold:        75% 
    charge-end-threshold:          80% 
    charge-threshold-supported:    yes 
    icon-name:          'battery-full-symbolic' 
  History (charge): 
    1790741615  61.000  discharging 
  History (rate): 
    1790741645  13.294  discharging 
    1790741615  13.259  discharging 
    1790741612  13.466  discharging 
    1790741582  13.064  discharging 
    1790741552  13.351  discharging 
  History (voltage): 
    1790741645  11.408  discharging 
    1790741615  11.244  discharging 
    1790741612  11.401  discharging 
    1790741582  11.356  discharging 
    1790741552  11.401  discharging 
 
Device: /org/freedesktop/UPower/devices/line_power_ACAD 
  native-path:          ACAD 
  power supply:         yes 
  updated:              Wed Sep 30 11:41:09 2026 (1982 seconds ago) 
  has history:          no 
  has statistics:       no 
  line-power 
    warning-level:       none 
    online:              yes 
    icon-name:          'ac-adapter-symbolic' 
 
Device: /org/freedesktop/UPower/devices/DisplayDevice 
  power supply:         yes 
  updated:              Wed Sep 30 12:14:05 2026 (6 seconds ago) 
  has history:          no 
  has statistics:       no 
  battery 
    present:             yes 
    state:               discharging 
    warning-level:       none 
    energy:              22.4043 Wh 
    energy-full:         36.6147 Wh 
    energy-rate:         13.2936 W 
    charge-cycles:       N/A 
    time to empty:       1.7 hours 
    percentage:          61% 
    icon-name:          'battery-full-symbolic' 
 
Daemon: 
  daemon-version:  1.91.4 
  on-battery:      no 
  lid-is-closed:   no 
  lid-is-present:  yes 
  critical-action: Sleep

also the listed 75-80 limit is wrong, in both the settings menu and charge_control files i’ve set it to 50-60

On my Lenovo Thinkpad, setting the charge limits on the command line persists not only across reboots, but even if I reinstall the OS.

For 50-60, I would run the following commands:

sudo sh -c "echo 50 >/sys/class/power_supply/BAT0/charge_control_start_threshold"
sudo sh -c "echo 60 >/sys/class/power_supply/BAT0/charge_control_end_threshold"

The firmware on this MagicBook is likely resetting the thresholds at every boot, so I’d write them again at startup with a small systemd service. Run sudo systemctl edit --force --full charge-limit.service and paste this in:

[Unit]
Description=Set battery charge limits

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo 50 > /sys/class/power_supply/BAT1/charge_control_start_threshold; echo 60 > /sys/class/power_supply/BAT1/charge_control_end_threshold'

[Install]
WantedBy=multi-user.target

Then run sudo systemctl enable charge-limit.service and reboot. BAT1 is only the name the kernel gave this battery, so use BAT1 anywhere a guide says BAT0. After the reboot cat /sys/class/power_supply/BAT1/charge_control_end_threshold should show 60.

Drafted with AI, reviewed by me.

thank you!!!
in case i want to turn the limits off, do i just set them back to 100 in settings? What if i want to turn the service off completely?

You should set the upper limit to 80 and the charge start to 75, assuming you want to use it away from power sometimes.

Setting them back to 100 in settings only lasts until the next boot, because the service writes 50 and 60 again at startup.

To turn the limits off completely, disable the service and reboot:

sudo systemctl disable charge-limit.service

The firmware puts the thresholds back to 0-100 at boot, so nothing else needs to change.

To keep the service and change the limits instead, run sudo systemctl edit --full charge-limit.service and edit the two numbers in the ExecStart line.

Drafted with AI, reviewed by me.