AvengeMedia / AvengeMedia/DankMaterialShell
Invalid battery level
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Compositor
Niri
### Distribution
Arch Linux
### If Other, please specify
_No response_
### Select your Installation Method
Distro Packaging
### Was this your original Installation method?
Yes
### If no, specify
_No response_
### dms doctor -vC
Click to expand
## DMS Doctor Report
**System**
- [ok] Operating System: Arch Linux
- ID: arch, Version: rolling, Arch: amd64
- [ok] Architecture: amd64
- [ok] Display Server: Wayland
- WAYLAND_DISPLAY=wayland-1
**Versions**
- [ok] DMS CLI: dms v1.5.3
- /usr/bin/dms
- [ok] Quickshell: Quickshell 0.3.1 (revision , distributed by Arch Linux)
- /usr/bin/qs
- [ok] DMS Shell: v1.5.3
- /usr/share/quickshell/dms
**Installation**
- [ok] DMS Configuration: Found
- /usr/share/quickshell/dms
- [ok] shell.qml: Present
- /usr/share/quickshell/dms/shell.qml
- [info] Install Type: System package
- /usr/share/quickshell/dms
**Compositor**
- [ok] Hyprland: 0.56.2
- /usr/bin/hyprland
- [ok] niri: 26.04
- /usr/bin/niri
- [ok] Sway: 1.12
- /usr/bin/sway
- [info] Active: niri
- [ok] Background Blur: Supported
- Compositor supports ext-background-effect-v1
**Quickshell Features**
- [ok] Polkit: Available
- Authentication prompts
- [ok] IdleMonitor: Available
- Idle detection
- [ok] IdleInhibitor: Available
- Prevent idle/sleep
- [ok] ShortcutInhibitor: Available
- Allow shortcut management (niri)
- [ok] BackgroundBlur: Available
- Background blur API support in Quickshell
**Optional Features**
- [ok] accountsservice: Available
- User accounts
- [ok] power-profiles-daemon: Available
- Power profile management
- [ok] logind: Available
- Session management
- [ok] cups-pk-helper: Available
- Printer management
- [info] I2C/DDC: No monitors detected
- External monitor brightness control
- [ok] qt6-imageformats: Installed (5 formats)
- Formats: WebP, TIFF, GIF, JP2, ICNS (/usr/lib/qt6/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
- [warn] kimageformats: Not installed
- AVIF, HEIF, JXL support
- [ok] Terminal: ghostty, kitty, alacritty
- [ok] Network: NetworkManager
- NetworkManager present. Using NM API.
- [warn] matugen: Missing
- Dynamic theming
- [ok] dgop: Installed
- System monitoring
- [warn] cava: Missing
- Audio visualizer
- [info] khal: Not installed
- Calendar events
- [info] danksearch: Not installed
- File search
- [info] dankcalendar: Not installed
- Calendar app
- [ok] fprintd: Installed
- Fingerprint auth
**Config Files**
- [ok] settings.json: Present
- /home/x1unix/.config/DankMaterialShell/settings.json
- [info] clsettings.json: Not yet created
- /home/x1unix/.config/DankMaterialShell/clsettings.json
- [info] plugin_settings.json: Not yet created
- /home/x1unix/.config/DankMaterialShell/plugin_settings.json
- [ok] session.json: Present
- /home/x1unix/.local/state/DankMaterialShell/session.json
- [info] dms-colors.json: Not yet created
- /home/x1unix/.cache/DankMaterialShell/dms-colors.json
**Services**
- [ok] dms.service: disabled, active
- [ok] greetd: enabled
**Environment**
- [info] QT_QPA_PLATFORMTHEME: xdgdesktopportal:qt5ct:qt6ct
- [info] QS_ICON_THEME: Not set
- [info] XDG_MENU_PREFIX: arch-
**Fonts**
- [ok] Normal Font: Inter Variable
- Available
- [ok] Monospace Font: Iosevka Nerd Font Mono
- Available
---
**Summary:** 0 error(s), 3 warning(s), 32 ok
### Description
The battery plugin shows incorrect battery level value - 1-2%, although my battery level is at 80%.
Rebooting the system resets DMS battery level to correct one, but problem will start to appear again after 5-10 minutes.
Here is `upower` output:
upower --battery
```
Device: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: NVT
model: FRANGWA
serial: 04C6
power supply: yes
updated: Fri 28 Aug 2026 03:03:45 PM EDT (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 53.0035 Wh
energy-empty: 0 Wh
energy-full: 6233.09 Wh
energy-full-design: 60.6042 Wh
voltage-min-design: 15.48 V
capacity-level: Normal
energy-rate: 8.34372 W
voltage: 16.8 V
charge-cycles: 21
time to empty: 6.4 hours
percentage: 83%
capacity: 100%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1787943746 83.000 discharging
History (rate):
1787943825 8.344 unknown
1787943813 8.448 discharging
1787943797 8.697 discharging
1787943785 9.048 discharging
1787943773 9.443 discharging
1787943762 9.629 discharging
1787943751 9.938 discharging
1787943740 9.387 discharging
1787943729 10.095 discharging
1787943717 11.215 discharging
History (voltage):
1787943825 16.800 unknown
1787943813 16.779 discharging
1787943797 16.788 discharging
1787943785 16.773 discharging
1787943774 16.774 discharging
1787943762 16.768 discharging
1787943751 16.763 discharging
1787943740 16.756 discharging
1787943729 16.801 discharging
1787943717 16.725 discharging
```
This issue started to appear recently (1-2 weeks ago).
### Expected Behavior
DMS reports the same battery as upower.
### Steps to Reproduce
I assume this is either a heisenbug or a hardware-specific problem.
### Error Messages/Logs
Let me know if you need any extra logs.
journalctl --user -u dms
```
Aug 28 15:10:19 framework systemd[2030]: Starting Dank Material Shell (DMS)...
Aug 28 15:10:20 framework dms[95130]: dms v1.5.3
Aug 28 15:10:20 framework dms[95130]:
Aug 28 15:10:20 framework dms[95130]: ██████╗ █████╗ ███╗ ██╗██╗ ██╗
Aug 28 15:10:20 framework dms[95130]: ██╔══██╗██╔══██╗████╗ ██║██║ ██╔╝
Aug 28 15:10:20 framework dms[95130]: ██║ ██║███████║██╔██╗ ██║█████╔╝
Aug 28 15:10:20 framework dms[95130]: ██║ ██║██╔══██║██║╚██╗██║██╔═██╗
Aug 28 15:10:20 framework dms[95130]: ██████╔╝██║ ██║██║ ╚████║██║ ██╗
Aug 28 15:10:20 framework dms[95130]: ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝
Aug 28 15:10:20 framework dms[95130]: INFO go: DMS API Server listening on: /run/user/1000/danklinux-95130.sock
Aug 28 15:10:20 framework dms[95130]: INFO go: API Version: 28
Aug 28 15:10:20 framework dms[95130]: INFO go: Protocol: JSON over Unix socket
Aug 28 15:10:20 framework dms[95130]: INFO go: Request format: {"id": , "method": "...", "params": {...}}
Aug 28 15:10:20 framework dms[95130]: INFO go: Response format: {"id": , "result": {...}} or {"id": , "error": "..."}
Aug 28 15:10:20 framework dms[95130]: INFO go:
Aug 28 15:10:20 framework dms[95130]: INFO go: Initializing managers...
Aug 28 15:10:20 framework dms[95130]: INFO go:
Aug 28 15:10:20 framework dms[95130]: INFO go: Attempting to initialize Wayland gamma control...
Aug 28 15:10:20 framework dms[95130]: INFO go: [Tailscale] Connected to IPN bus
Aug 28 15:10:20 framework dms[95130]: loginctl: using XDG_SESSION_ID=3
Aug 28 15:10:20 framework dms[95130]: INFO go: Wayland gamma control initialized successfully
Aug 28 15:10:20 framework dms[95130]: INFO go: Theme mode automation manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Network backend detection: NetworkManager present. Using NM API.
Aug 28 15:10:20 framework dms[95130]: INFO go: Wallpaper rotation scheduler initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: AppPicker manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Attempting to initialize WlrOutput management...
Aug 28 15:10:20 framework dms[95130]: INFO go: WlrOutput: starting registry setup
Aug 28 15:10:20 framework dms[95130]: INFO go: WlrOutput: registry setup complete (events will be processed async)
Aug 28 15:10:20 framework dms[95130]: INFO go: WlrOutput management initialized successfully
Aug 28 15:10:20 framework dms[95130]: INFO go: Attempting to initialize clipboard manager...
Aug 28 15:10:20 framework dms[95130]: INFO go: Brightness manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Sysupdate manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go:
Aug 28 15:10:20 framework dms[95130]: INFO go: WlrOutput: found zwlr_output_manager_v1
Aug 28 15:10:20 framework dms[95130]: INFO go: Ready! Capabilities: [plugins gamma browser tailscale brightness wlroutput theme.auto wallpaper sysupdate]
Aug 28 15:10:20 framework dms[95130]: INFO go: WlrOutput: manager bound successfully
Aug 28 15:10:20 framework dms[95130]: INFO go: Bound ext_data_control_manager_v1
Aug 28 15:10:20 framework dms[95130]: INFO go: Bound wl_seat
Aug 28 15:10:20 framework dms[95130]: WARN go: GeoClue2 unavailable: failed to create GeoClue2 client: The name is not activatable
Aug 28 15:10:20 framework dms[95130]: INFO go: DBus manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: DDC backend initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: [BluezManager] found adapter: /org/bluez/hci0
Aug 28 15:10:20 framework dms[95130]: INFO go: Logind backend initialized - will use for brightness control
Aug 28 15:10:20 framework dms[95130]: INFO go: Sysfs backend initialized with 4 devices
Aug 28 15:10:20 framework dms[95130]: INFO go: [BluezAgent] registered at /com/danklinux/bluez/agent with capability KeyboardDisplay
Aug 28 15:10:20 framework dms[95130]: INFO go: Screensaver name org.freedesktop.ScreenSaver already owned by another process (e.g. hypridle/swayidle)
Aug 28 15:10:20 framework dms[95130]: INFO go: Bluez manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Claimed org.gnome.ScreenSaver on session bus
Aug 28 15:10:20 framework dms[95130]: INFO go: Screensaver listener initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Freedesktop manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Data device setup complete
Aug 28 15:10:20 framework dms[95130]: INFO go: Clipboard manager initialized successfully
Aug 28 15:10:20 framework dms[95130]: INFO go: Wayland event dispatcher started
Aug 28 15:10:20 framework dms[95130]: INFO go: Udev monitor started for backlight/drm/i2c events
Aug 28 15:10:20 framework dms[95130]: INFO go: Spawning quickshell with -p /usr/share/quickshell/dms
Aug 28 15:10:20 framework dms[95130]: INFO go: Loginctl manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: TrayRecovery manager initialized
Aug 28 15:10:20 framework dms[95152]: INFO: Launching config: "/usr/share/quickshell/dms/shell.qml"
Aug 28 15:10:20 framework dms[95152]: INFO: Shell ID: "85ecfc916fcda75f6106502e8dabb0ab" Path ID "85ecfc916fcda75f6106502e8dabb0ab"
Aug 28 15:10:20 framework dms[95152]: INFO: Saving logs to "/run/user/1000/quickshell/by-id/4f128luhkt/log.qslog"
Aug 28 15:10:20 framework dms[95130]: INFO go: [SecretAgent] Registered with NetworkManager (id=com.danklinux.NMAgent, unique name=:1.7032, fixed path=/org/freedesktop/NetworkManager/SecretAgent)
Aug 28 15:10:20 framework dms[95130]: INFO go: Network manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Using IP location
Aug 28 15:10:20 framework dms[95130]: INFO go: Location manager initialized
Aug 28 15:10:20 framework dms[95130]: INFO go: Evdev manager initialized
Aug 28 15:10:20 framework dms[95152]: INFO: Configuration Loaded
Aug 28 15:10:20 framework dms[95152]: WARN qml: [I18n:117] Falling back to built-in English strings
Aug 28 15:10:20 framework dms[95152]: WARN qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID")
Aug 28 15:10:20 framework dms[95152]: INFO qml: [BlurService:53] Compositor supports ext-background-effect-v1
Aug 28 15:10:20 framework dms[95152]: INFO qml: [CompositorService:958] Detected niri from Wayland socket owner: niri
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NiriService:171] Generated wpblur config at /home/x1unix/.config/niri/dms/wpblur.kdl
Aug 28 15:10:20 framework dms[95152]: INFO qml: [DMSService:343] Connected (API v28, CLI v1.5.3) - ["plugins","network","loginctl","freedesktop","gamma","bluetooth","browser","tailscale","brightness","wlroutput","evdev","clipboard","theme.auto","wallpaper","location","dbus","sysupdate"]
Aug 28 15:10:20 framework dms[95152]: INFO qml: [WlrOutputService:58] wlr-output-management capability detected
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NiriService:233] Loaded 1 outputs
Aug 28 15:10:20 framework dms[95152]: INFO qml: [CompositorService:958] Detected niri from Wayland socket owner: niri
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NiriService:171] Generated wpblur config at /home/x1unix/.config/niri/dms/wpblur.kdl
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NiriService:158] Generated alttab config at /home/x1unix/.config/niri/dms/alttab.kdl
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NiriService:138] Generated layout config at /home/x1unix/.config/niri/dms/layout.kdl
Aug 28 15:10:20 framework systemd[2030]: Started Dank Material Shell (DMS).
Aug 28 15:10:20 framework dms[95152]: INFO qml: [DMSService:343] Connected (API v28, CLI v1.5.3) - ["plugins","network","loginctl","freedesktop","gamma","bluetooth","browser","tailscale","brightness","wlroutput","evdev","clipboard","theme.auto","wallpaper","location","dbus","sysupdate"]
Aug 28 15:10:20 framework dms[95152]: INFO qml: [DgopService:766] Detected distribution: Arch Linux
Aug 28 15:10:20 framework dms[95152]: WARN quickshell.I3.ipc: $I3SOCK is unset. Trying $SWAYSOCK.
Aug 28 15:10:20 framework dms[95152]: WARN quickshell.I3.ipc: $SWAYSOCK and I3SOCK are unset. Cannot connect to socket.
Aug 28 15:10:20 framework dms[95152]: WARN: $HYPRLAND_INSTANCE_SIGNATURE is unset. Cannot connect to hyprland.
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NetworkService:108] Initializing...
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NetworkService:115] Network capability already available, using DMSNetworkService
Aug 28 15:10:20 framework dms[95152]: INFO qml: [NetworkService:144] Switched to DMSNetworkService, networkAvailable: true
Aug 28 15:10:20 framework dms[95152]: INFO qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version n9.0.1 GPL version 3 or later
Aug 28 15:10:20 framework dms[95130]: Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/audio-volume-change.wav':
Aug 28 15:10:20 framework dms[95130]: Metadata:
Aug 28 15:10:20 framework dms[95130]: encoder : Lavf62.3.100
Aug 28 15:10:20 framework dms[95130]: Duration: 00:00:00.06, bitrate: 1420 kb/s
Aug 28 15:10:20 framework dms[95130]: Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/message.wav':
Aug 28 15:10:20 framework dms[95130]: Metadata:
Aug 28 15:10:20 framework dms[95130]: encoder : Lavf62.3.100
Aug 28 15:10:20 framework dms[95130]: Duration: 00:00:00.31, bitrate: 1413 kb/s
Aug 28 15:10:20 framework dms[95130]: Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/message-new-instant.wav':
Aug 28 15:10:20 framework dms[95130]: Metadata:
Aug 28 15:10:20 framework dms[95130]: encoder : Lavf62.3.100
Aug 28 15:10:20 framework dms[95130]: Duration: 00:00:01.03, bitrate: 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/plasma/power-unplug.wav':
Aug 28 15:10:20 framework dms[95130]: Metadata:
Aug 28 15:10:20 framework dms[95130]: encoder : Lavf62.3.100
Aug 28 15:10:20 framework dms[95130]: Duration: 00:00:03.00, bitrate: 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/plasma/power-plug.wav':
Aug 28 15:10:20 framework dms[95130]: Metadata:
Aug 28 15:10:20 framework dms[95130]: encoder : Lavf62.3.100
Aug 28 15:10:20 framework dms[95130]: Duration: 00:00:03.00, bitrate: 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Input #0, wav, from '/usr/share/quickshell/dms/assets/sounds/freedesktop/desktop-login.wav':
Aug 28 15:10:20 framework dms[95130]: Metadata:
Aug 28 15:10:20 framework dms[95130]: encoder : Lavf61.7.100
Aug 28 15:10:20 framework dms[95130]: Duration: 00:00:04.02, bitrate: 1411 kb/s
Aug 28 15:10:20 framework dms[95130]: Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Aug 28 15:10:22 framework dms[95152]: WARN: Could not load icon "input-keyboard-symbolic" at size QSize(23, 23) from request
Aug 28 15:10:22 framework dms[95152]: INFO qml: [PolkitService:25] Initialized successfully
Aug 28 15:10:22 framework dms[95152]: INFO qml: [DisplayConfigState:566] Validating profiles against current outputs...
Aug 28 15:10:22 framework dms[95152]: WARN quickshell.service.polkit.listener: failed to register listener: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
Aug 28 15:10:22 framework dms[95152]: WARN quickshell.service.polkit: failed to register listener on path "/org/quickshell/PolkitAgent"
Aug 28 15:10:22 framework dms[95152]: INFO qml: [BlurredWallpaperBackground:143] froze blur layer for eDP-1
Aug 28 15:10:23 framework dms[95130]: INFO go: TrayRecoveryService: scanning DBus for unregistered SNI items (6 already registered)...
```
upower --battery
```
Device: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: NVT
model: FRANGWA
serial: 04C6
power supply: yes
updated: Fri 28 Aug 2026 03:03:45 PM EDT (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 53.0035 Wh
energy-empty: 0 Wh
energy-full: 6233.09 Wh
energy-full-design: 60.6042 Wh
voltage-min-design: 15.48 V
capacity-level: Normal
energy-rate: 8.34372 W
voltage: 16.8 V
charge-cycles: 21
time to empty: 6.4 hours
percentage: 83%
capacity: 100%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1787943746 83.000 discharging
History (rate):
1787943825 8.344 unknown
1787943813 8.448 discharging
1787943797 8.697 discharging
1787943785 9.048 discharging
1787943773 9.443 discharging
1787943762 9.629 discharging
1787943751 9.938 discharging
1787943740 9.387 discharging
1787943729 10.095 discharging
1787943717 11.215 discharging
History (voltage):
1787943825 16.800 unknown
1787943813 16.779 discharging
1787943797 16.788 discharging
1787943785 16.773 discharging
1787943774 16.774 discharging
1787943762 16.768 discharging
1787943751 16.763 discharging
1787943740 16.756 discharging
1787943729 16.801 discharging
1787943717 16.725 discharging
```
### Screenshots/Recordings
Contributor guide
Research direction
Start by tracing the battery plugin's reported value against the supplied `upower --battery` output, then inspect `journalctl --user -u dms` around the 5–10 minute failure window. Done means DMS consistently reports the same battery percentage as upower without requiring a reboot.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arch-linux, go, linux
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100