Battery and power management on Omarchy
How battery reporting, power profiles and the low-battery warning behave on Omarchy 4.0.4, which laptops break, and the fix order that actually works.
Battery and power management mostly works on Omarchy 4.0.4. Power profiles switch automatically between AC and battery and are remembered per source. The known gaps are all in reporting: dual-battery laptops show only one pack (#11990), the 10% low-battery warning is suppressed while docked (#10939), and charge limits are misreported (#10344). Real drain problems are almost always an idle NVIDIA dGPU.
On this page
Battery handling on Omarchy 4.x is split between three things: power-profiles-daemon, which Omarchy installs and enables; a small set of shell scripts under omarchy-battery-* and omarchy-powerprofiles-*; and the Quickshell power panel on Super + Ctrl + P. Version 4.0.0 replaced the old Waybar battery module and the udev-driven profile switching with that shell, and most of the open complaints on 4.0.4 are about what the new panel reports rather than about power management itself.
Status on 4.0.4
Power management itself is not what people report. Profiles switch on plug and unplug as the manual describes, the 10 percent warning fires on a plain battery discharge, and thermal daemons are installed for you on Intel laptops.
Reporting is where it breaks. Checked against the v4.0.4 source tree, three of the most reported problems are visible directly in the shipped code, and all three are open: only the first battery pack is read, the low-battery warning depends on a daemon-wide flag rather than on the battery’s own state, and the charge limit shown in the panel is not the limit the firmware is enforcing.
Sleep and resume are a separate subsystem with their own failure modes. See suspend, sleep and resume.
What Omarchy does automatically
On any install:
- Installs
power-profiles-daemonfrom the base package list and enables it at install time. - Runs
omarchy-powerprofiles-initfrom the Hyprland autostart, which sets the profile matching your current power source on every login. - Remembers explicit profile choices separately for AC and battery under
~/.local/state/omarchy/powerprofiles/. With no saved choice you getperformanceon AC andbalancedon battery. - Re-applies the profile whenever UPower reports a power source change, which is what replaced the 3.x udev rules.
- Ignores the physical power key at the logind level, so a stray press does not shut you down.
- Holds a 15 second inhibitor before sleep so the session can lock first.
- Keeps Wi-Fi power save off on purpose. The shipped NetworkManager drop-in notes that it trades latency spikes for a fraction of a watt, and that some Intel BE200 and BE211 firmware drops the link when the radio naps.
- Disables zswap in favour of swap on zram, and skips the
plocateindex update while on battery.
On Intel laptops with a battery present, the install also adds thermald for Sandy Bridge and newer, and intel-lpmd for the hybrid cores in Alder Lake through Panther Lake. Both are gated on omarchy-battery-present, so desktops do not get them.
Hibernation is opt-in. omarchy hibernation setup creates a /swap btrfs subvolume with a RAM-sized swapfile, adds the resume mkinitcpio hook and the matching Limine kernel parameters, and installs a sleep hook that turns the keyboard backlight off before S4 because some ASUS keyboard controllers block the power-off with the LEDs lit.
Known problems
The big one is drain, not reporting. When a laptop that used to get hours suddenly gets minutes, the usual cause is a discrete NVIDIA GPU that never enters a low power state. Issue #1776 is the long-running version of this and drew 29 reactions before it was closed with a pointer to the hybrid GPU toggle. Issue #8648, a GTX 1650 HP Pavilion that went from full to empty in ten minutes after the 4.0.0 update, is less clear-cut: the reporter later noted the pack has dead cells, and a second reporter with an HP Victus saw 20 percent gone in the same ten minutes. Omarchy 4.x ships omarchy toggle hybrid gpu, which drives supergfxd to park the dGPU in integrated mode, plus a sleep hook that re-parks it after a wake.
Known issues
| Issue | Models | Status | Fixed in |
|---|---|---|---|
| #11990 only the first battery pack is read | dual-battery ThinkPads, Surface Book 2 | open | not yet |
| #10939 low-battery warning suppressed while docked | any laptop drawing more than its dock supplies | open | not yet |
| #9670 low-battery warning repeats every few seconds | laptops whose USB-C PD line flaps at low charge | open | not yet |
| #12005 widget says Charging while discharging | MacBook Air M2 on Asahi | open | not yet |
| #10344, #7374 charge limit misreported | ASUS Zenbook, ThinkPads | open | not yet |
| #6895 power draw shows 0W | HP Pavilion Gaming 15-dk0xxx | open | not yet |
| #8536 power panel never opens without a battery | desktops and mini PCs with no battery | open, and the acceptance suite asserts the panel is hidden without battery hardware | not yet |
| #8648 very fast drain after updating to 4.0.0 | HP Pavilion and Victus gaming laptops, GTX 1650 | open | not yet |
| #12095 USB autosuspend drop-in is a no-op | Intel Bluetooth controllers | open | not yet |
| #12096 hibernation removal leaves resume parameters | Limine plus btrfs installs | open | not yet |
#12190 linux-omarchy hangs entering suspend |
Dell XPS 13 DX13260, Wildcat Lake | open | not yet |
A few of these are worth spelling out. The dual-battery bug is a single head -n 1 in omarchy-battery-status; the bar icon uses UPower’s aggregate device while the panel text uses the script, so the percentage above the progress bar and the bar itself can show different numbers at once. At least four unmerged pull requests propose the same fix, including PR #11750.
The warning bugs share one root. The low-battery check requires UPower’s daemon-wide on-battery flag, not the battery device’s own state, so a dock that supplies less power than the machine draws hides the warning entirely, and a flapping power line resets the already-warned latch on every event. One reporter logged roughly 260 critical popups over fourteen minutes before the machine died.
Fixes that work
Work down this list.
- Confirm what your hardware actually reports before blaming Omarchy.
upower -i $(upower -e | grep BAT | head -1)andcat /sys/class/power_supply/BAT*/power_now. If UPower has the right number and the panel does not, it is a reporting bug, not a power bug. - For fast drain on a hybrid laptop, park the discrete GPU with
omarchy toggle hybrid gpu. It installssupergfxctlif needed, switches the mode to Integrated and reboots. After the reboot, check withcat /sys/bus/pci/devices/*/power/runtime_statusthat the dGPU readssuspended. - Set the profile you want per power source explicitly:
omarchy powerprofiles set battery power-saver. It sticks for that source across reboots. - For a laptop that only drains hard while asleep, the problem is suspend, not the battery. Read suspend, sleep and resume and suspend will not resume.
- For a charge limit, write
charge_control_end_thresholdyourself or use your vendor tool. There is no Omarchy toggle on 4.0.4; PR #12177 proposes one and is unmerged. - If you want deeper tuning than three profiles offer, community discussion #3907 documents replacing
power-profiles-daemonwith TLP. Remove or mask the daemon first, because the two fight over the same knobs and Omarchy’s own profile commands stop working once it is gone. - If suspend started hanging on 4.0.4 specifically, boot the stock
linuxorlinux-ltskernel from the Limine menu. The bespokelinux-omarchykernel became the default boot entry in 4.0.4, and #12190 is a detailed open report of it hanging on suspend entry where stocklinux7.2.3 does not.
On 3.x the profile switching came from udev rules under /etc/udev/rules.d/. A 4.x migration removes the vulnerable versions of those rules, so do not expect to find them any more.
Report it
Run omarchy debug, which collects inxi -Farz, dmesg, this boot’s journal warnings and errors, and your package list, and offers to upload it. Add the output of upower -d, powerprofilesctl, omarchy-battery-status --shell, and ls /sys/class/power_supply/. For drain reports, add the runtime status of your GPU, or powertop output if you install it; Omarchy does not ship it. For anything involving a dock or charger, include the online state of every Mains and USB supply, because most of the warning bugs turn on exactly that.
Check the open issues first. Battery reporting has heavy duplication: the single dual-battery bug alone has more than ten separate reports.
Related
Most-discussed upstream issues
The most-discussed upstream issues for this subsystem (454 total, 287 open).
| Issue | State | Comments | Opened |
|---|---|---|---|
| #5478 Hard Crash with AMD GPU on 3.6 since upgrade. Triggered by Chromium use - | closed | 60 | 2026-04-28 |
| #1684 Slow launches on laptop | closed | 39 | 2025-09-15 |
| #1776 Laptop / Hybrid GPU Power Management Issue (NVIDIA, iGPU + dGPU) | closed | 15 | 2025-09-18 |
| #1840 Omarchy lid/sleep/suspend issue on MacBook (bug + solution to be tested) | closed | 14 | 2025-09-20 |
| #394 suspend on BeeLink SER9 (and new Framework 13 AMD Ryzen AI 9 HX 370) | closed | 29 | 2025-07-29 |
| #619 Add way to lock a config so Omarchy won't ever auto-update it | closed | 10 | 2025-08-10 |
| #6000 Camera (IPU7-PTL / OV08X40) on ThinkPad X1 Carbon Gen 14: ACPI status=0, sensor invisible to Linux | open | 24 | 2026-05-30 |
| #1619 Multiple Lenovo types not able to boot / get in to BIOS after installation · fixed by #1860 #2242 | closed | 24 | 2025-09-12 |
| #4184 Suspend not working in Omarchy 3.3 · fixed by #4940 | open | 17 | 2026-01-09 |
| #5953 Dell XPS 14 DA14260 periodic hard reset after unplugging; power-button diagnostic blink code | open | 19 | 2026-05-23 |
| #3066 Battery Low Warning · fixed by #3838 | closed | 12 | 2025-11-02 |
| #6956 Bluetooth widget disappears from shell when turned off | closed | 14 | 2026-08-15 |
Questions people ask
- Does Omarchy switch power profiles automatically when I unplug?
- Yes. Since 4.0.0 the shell reacts to the UPower on-battery change and runs omarchy-powerprofiles-set, which remembers your last explicit choice separately for AC and for battery. Out of the box that is performance on AC and balanced on battery.
- Why does my laptop show the wrong battery percentage?
- If it has two packs, omarchy-battery-status only reads the first one. That is issue #11990 and several duplicates, still open on 4.0.4. The bar icon uses the UPower aggregate device, so the icon and the panel text can disagree.
- Can I set an 80 percent charge limit from Omarchy?
- Not on 4.0.4. There is no built-in toggle. PR #12177 proposes one but is unmerged. Set charge_control_end_threshold yourself, or use your vendor tool such as asusctl.
- Should I install TLP?
- Only if power-profiles-daemon is not enough. Omarchy installs and enables power-profiles-daemon, and the two conflict. Discussion #3907 documents the swap.
Sources and credit
Fixes on this page were worked out by zorzysty (Traced the suppressed low-battery warning to the onBattery guard in BatteryModel.js), calumol (Traced the repeating low-battery warning to the latch resetting on every onBattery change), xbones84 (Showed that the power panel text and its progress bar read two different data sources), brightwalker25 (Showed that the sysfs charge-threshold fallback is unreachable), ujo4eva (Found the readable-but-unreadable power_now attribute that zeroes the power draw). Text here is our own paraphrase; follow the links for the original threads.
- manualOmarchy manual: System sleep
- issueIssue #11990: omarchy-battery-status reports only the first battery on multi-battery machines · xbones84 · 2026-09-15
- issueIssue #10939: Low-battery warning never fires while docked · zorzysty · 2026-09-09
- issueIssue #9670: Low-battery warning storm when AC online status flaps · calumol · 2026-09-01
- issueIssue #12005: Power widget shows Charging while battery is discharging · DerAlbertCom · 2026-09-15
- issueIssue #10344: Battery panel ignores charge_control_end_threshold and misreports the charge limit · brightwalker25 · 2026-09-05
- issueIssue #7374: Power panel shows UPower hwdb charge limit instead of the real asusctl-set limit · chickymonkeys · 2026-08-18
- issueIssue #6895: Power panel shows 0W discharging when power_now read returns ENODEV · ujo4eva · 2026-08-14
- issueIssue #8536: Power panel never opens on battery-less desktops · sgersz · 2026-08-27
- issueIssue #8648: Consumiing insane amount of battery · notTanveer · 2026-08-27
- issueIssue #12095: omarchy-usb-autosuspend.conf is a no-op · jordanglean · 2026-09-16
- issueIssue #12096: hibernation remove leaves resume kernel parameters in the UKI · maandrij · 2026-09-16
- issueIssue #12190: linux-omarchy 7.2.5-3 hangs during suspend entry on Wildcat Lake · t27duck · 2026-09-16
- issueIssue #1776: Laptop / Hybrid GPU Power Management Issue (NVIDIA, iGPU + dGPU) · itsmedardan · 2025-09-18
- prPR #12177: Add 80% battery charge cap toggle · Per0-1 · 2026-09-16
- prPR #11750: Support multi-battery laptops via UPower DisplayDevice in omarchy-battery-status · chartzngrafs · 2026-09-13
- discussionDiscussion #3907: Guide: Replacing Power Profiles with TLP to improve battery life · pomartel · 2025-12-16