Describe the bug
Enabling one of my custom modules lets one CPU core compute at 100 %. Related to #846 and #2631. The problem is only due to custom/package-updates from my testing.
To reproduce
Steps to reproduce the behaviour, including a minimal config that triggers it:
modules/cusom.jsonc
statusleiste/paketaktualisierungen.sh
#!/usr/bin/env bash
# This script counts the outdated packages including AUR packages.
if [[ "$#" -ne "0" ]]; then
echo "Wrong amount of arguments!" >&2
exit 1
fi
declare packages_outdated
packages_outdated="$(checkupdates 2> /dev/null | wc -l || true)"
readonly packages_outdated
declare packages_outdated_aur
packages_outdated_aur="$(paru -Qmu --devel 2> /dev/null | wc -l || true)"
readonly packages_outdated_aur
echo "$((packages_outdated + packages_outdated_aur))"
Expected behaviour
Low CPU usage.
Screenshots
There are already documentations in #846 and #2631.
Environment
- Waybar version (
waybar --version): Waybar v0.15.0
- Installed from (distro package / source / other): Arch Linux
- Compositor and version (Sway, Hyprland, River, …): Hyprland
Debug output
Run waybar -l debug and paste any relevant output:
❯ waybar -l debug
[2026-09-05 09:11:18.142] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/config
[2026-09-05 09:11:18.142] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/config.jsonc
[2026-09-05 09:11:18.142] [debug] Found config file: /home/matheus/.config/waybar/config.jsonc
[2026-09-05 09:11:18.142] [info] Using configuration file /home/matheus/.config/waybar/config.jsonc
[2026-09-05 09:11:18.146] [info] Including resource file: ./modules/backlight.jsonc
[2026-09-05 09:11:18.147] [debug] Try expanding: ./modules/backlight.jsonc
[2026-09-05 09:11:18.147] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/backlight.jsonc
[2026-09-05 09:11:18.147] [debug] Found config file: /home/matheus/.config/waybar/./modules/backlight.jsonc
[2026-09-05 09:11:18.147] [info] Including resource file: ./modules/battery.jsonc
[2026-09-05 09:11:18.147] [debug] Try expanding: ./modules/battery.jsonc
[2026-09-05 09:11:18.147] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/battery.jsonc
[2026-09-05 09:11:18.148] [debug] Found config file: /home/matheus/.config/waybar/./modules/battery.jsonc
[2026-09-05 09:11:18.148] [info] Including resource file: ./modules/clock.jsonc
[2026-09-05 09:11:18.148] [debug] Try expanding: ./modules/clock.jsonc
[2026-09-05 09:11:18.148] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/clock.jsonc
[2026-09-05 09:11:18.148] [debug] Found config file: /home/matheus/.config/waybar/./modules/clock.jsonc
[2026-09-05 09:11:18.148] [info] Including resource file: ./modules/cpu.jsonc
[2026-09-05 09:11:18.149] [debug] Try expanding: ./modules/cpu.jsonc
[2026-09-05 09:11:18.149] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/cpu.jsonc
[2026-09-05 09:11:18.149] [debug] Found config file: /home/matheus/.config/waybar/./modules/cpu.jsonc
[2026-09-05 09:11:18.149] [info] Including resource file: ./modules/custom.jsonc
[2026-09-05 09:11:18.149] [debug] Try expanding: ./modules/custom.jsonc
[2026-09-05 09:11:18.149] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/custom.jsonc
[2026-09-05 09:11:18.149] [debug] Found config file: /home/matheus/.config/waybar/./modules/custom.jsonc
[2026-09-05 09:11:18.149] [info] Including resource file: ./modules/disk.jsonc
[2026-09-05 09:11:18.149] [debug] Try expanding: ./modules/disk.jsonc
[2026-09-05 09:11:18.149] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/disk.jsonc
[2026-09-05 09:11:18.149] [debug] Found config file: /home/matheus/.config/waybar/./modules/disk.jsonc
[2026-09-05 09:11:18.150] [info] Including resource file: ./modules/hyprland.jsonc
[2026-09-05 09:11:18.150] [debug] Try expanding: ./modules/hyprland.jsonc
[2026-09-05 09:11:18.150] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/hyprland.jsonc
[2026-09-05 09:11:18.150] [debug] Found config file: /home/matheus/.config/waybar/./modules/hyprland.jsonc
[2026-09-05 09:11:18.150] [info] Including resource file: ./modules/keyboard-state.jsonc
[2026-09-05 09:11:18.150] [debug] Try expanding: ./modules/keyboard-state.jsonc
[2026-09-05 09:11:18.150] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/keyboard-state.jsonc
[2026-09-05 09:11:18.150] [debug] Found config file: /home/matheus/.config/waybar/./modules/keyboard-state.jsonc
[2026-09-05 09:11:18.150] [info] Including resource file: ./modules/memory.jsonc
[2026-09-05 09:11:18.150] [debug] Try expanding: ./modules/memory.jsonc
[2026-09-05 09:11:18.150] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/memory.jsonc
[2026-09-05 09:11:18.150] [debug] Found config file: /home/matheus/.config/waybar/./modules/memory.jsonc
[2026-09-05 09:11:18.151] [info] Including resource file: ./modules/network.jsonc
[2026-09-05 09:11:18.151] [debug] Try expanding: ./modules/network.jsonc
[2026-09-05 09:11:18.151] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/network.jsonc
[2026-09-05 09:11:18.151] [debug] Found config file: /home/matheus/.config/waybar/./modules/network.jsonc
[2026-09-05 09:11:18.151] [info] Including resource file: ./modules/privacy.jsonc
[2026-09-05 09:11:18.151] [debug] Try expanding: ./modules/privacy.jsonc
[2026-09-05 09:11:18.151] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/privacy.jsonc
[2026-09-05 09:11:18.152] [debug] Found config file: /home/matheus/.config/waybar/./modules/privacy.jsonc
[2026-09-05 09:11:18.152] [info] Including resource file: ./modules/systemd-failed-units.jsonc
[2026-09-05 09:11:18.152] [debug] Try expanding: ./modules/systemd-failed-units.jsonc
[2026-09-05 09:11:18.152] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/systemd-failed-units.jsonc
[2026-09-05 09:11:18.152] [debug] Found config file: /home/matheus/.config/waybar/./modules/systemd-failed-units.jsonc
[2026-09-05 09:11:18.153] [info] Including resource file: ./modules/temperature.jsonc
[2026-09-05 09:11:18.153] [debug] Try expanding: ./modules/temperature.jsonc
[2026-09-05 09:11:18.153] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/temperature.jsonc
[2026-09-05 09:11:18.153] [debug] Found config file: /home/matheus/.config/waybar/./modules/temperature.jsonc
[2026-09-05 09:11:18.153] [info] Including resource file: ./modules/tray.jsonc
[2026-09-05 09:11:18.153] [debug] Try expanding: ./modules/tray.jsonc
[2026-09-05 09:11:18.153] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/tray.jsonc
[2026-09-05 09:11:18.153] [debug] Found config file: /home/matheus/.config/waybar/./modules/tray.jsonc
[2026-09-05 09:11:18.154] [info] Including resource file: ./modules/wireplumber.jsonc
[2026-09-05 09:11:18.154] [debug] Try expanding: ./modules/wireplumber.jsonc
[2026-09-05 09:11:18.154] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/./modules/wireplumber.jsonc
[2026-09-05 09:11:18.154] [debug] Found config file: /home/matheus/.config/waybar/./modules/wireplumber.jsonc
[2026-09-05 09:11:18.158] [info] Discovered appearance 'dark'
[2026-09-05 09:11:18.189] [debug] Try expanding: $XDG_CONFIG_HOME/waybar/style-dark.css
[2026-09-05 09:11:18.189] [debug] Found config file: /home/matheus/.config/waybar/style-dark.css
[2026-09-05 09:11:18.189] [info] Using CSS file /home/matheus/.config/waybar/style-dark.css
[2026-09-05 09:11:18.191] [debug] Parsing imports for file: /home/matheus/.config/waybar/style-dark.css
[2026-09-05 09:11:18.192] [debug] Adding file to watch list: /usr/share/waybar-mechabar-git/themes/catppuccin-frappe.css
[2026-09-05 09:11:18.192] [debug] Adding file to watch list: /home/matheus/.config/waybar/style-dark.css
[2026-09-05 09:11:18.197] [debug] Output detection done: eDP-1 (BOE 0x0687 )
[2026-09-05 09:11:18.199] [info] Hyprland IPC starting
[2026-09-05 09:11:18.200] [debug] Initializing workspaces
[2026-09-05 09:11:18.201] [debug] Initializing persistent workspaces
[2026-09-05 09:11:18.201] [info] Loading persistent workspaces from Hyprland workspace rules
[2026-09-05 09:11:18.214] [debug] Cmd exited with code 0
[2026-09-05 09:11:18.219] [debug] [wireplumber]: preparing object manager: 'Audio/Source'
[2026-09-05 09:11:18.219] [debug] [wireplumber]: connecting to pipewire: 'Audio/Source'...
[2026-09-05 09:11:18.219] [debug] [wireplumber]: Audio/Source connected!
[2026-09-05 09:11:18.219] [debug] [wireplumber]: loading default nodes api module
[2026-09-05 09:11:18.221] [debug] [wireplumber]: preparing object manager: 'Audio/Sink'
[2026-09-05 09:11:18.221] [debug] [wireplumber]: connecting to pipewire: 'Audio/Sink'...
[2026-09-05 09:11:18.221] [debug] [wireplumber]: Audio/Sink connected!
[2026-09-05 09:11:18.221] [debug] [wireplumber]: loading default nodes api module
[2026-09-05 09:11:18.226] [debug] network: new default route via 192.168.178.1 on if3 metric 600
[2026-09-05 09:11:18.226] [debug] battery: worker interval is 2000
[2026-09-05 09:11:18.226] [debug] network: wlo1, new addr /0
[2026-09-05 09:11:18.226] [debug] network: wlo1, new addr /0
[2026-09-05 09:11:18.226] [debug] network: wlo1, new addr /0
[2026-09-05 09:11:18.226] [debug] network: wlo1, new addr /0
[2026-09-05 09:11:18.390] [info] Found device Razer Razer DeathAdder Essential at '/dev/input/event6'
[2026-09-05 09:11:18.437] [debug] Cmd exited with code 0
[2026-09-05 09:11:18.459] [info] Found device AT Translated Set 2 keyboard at '/dev/input/event3'
[2026-09-05 09:11:18.503] [debug] GTK widget tree:
window#waybar.background.top.eDP-1.main.mode-dock.solo.Alacritty:dir(ltr)
decoration:dir(ltr)
box.horizontal:dir(ltr)
box.horizontal.modules-left:dir(ltr)
widget:dir(ltr)
box#workspaces.horizontal.module:dir(ltr)
widget:dir(ltr)
box#window.horizontal.module:dir(ltr)
image:dir(ltr)
label:dir(ltr)
box.horizontal.modules-center:dir(ltr)
widget:dir(ltr)
label#systemd-failed-units.module:dir(ltr)
widget:dir(ltr)
label#custom-new-e-mails.module:dir(ltr)
widget:dir(ltr)
box#privacy.horizontal:dir(ltr)
revealer:dir(ltr)
box#privacy-item.horizontal.audio-in:dir(ltr)
image:dir(ltr)
revealer:dir(ltr)
box#privacy-item.horizontal.audio-out:dir(ltr)
image:dir(ltr)
revealer:dir(ltr)
box#privacy-item.horizontal.screenshare:dir(ltr)
image:dir(ltr)
box.horizontal.modules-right:dir(ltr)
widget:dir(ltr)
label#wireplumber.module.source:dir(ltr)
widget:dir(ltr)
label#wireplumber.module.sink:dir(ltr)
widget:dir(ltr)
label#backlight.module:dir(ltr)
widget:dir(ltr)
label#disk.module:dir(ltr)
widget:dir(ltr)
label#cpu.module:dir(ltr)
widget:dir(ltr)
label#temperature.module:dir(ltr)
widget:dir(ltr)
label#memory.module:dir(ltr)
widget:dir(ltr)
label#network.module:dir(ltr)
widget:dir(ltr)
label#battery.module:dir(ltr)
widget:dir(ltr)
box#keyboard-state.horizontal.module:dir(ltr)
label.scrolllock:dir(ltr)
label.capslock:dir(ltr)
label.numlock:dir(ltr)
widget:dir(ltr)
label#clock.module:dir(ltr)
widget:dir(ltr)
box#tray.horizontal.module:dir(ltr)
[2026-09-05 09:11:18.504] [debug] Creating workspace 1
[2026-09-05 09:11:18.510] [debug] Creating workspace 10
[2026-09-05 09:11:18.512] [debug] Creating workspace 9
[2026-09-05 09:11:18.513] [debug] Creating workspace 2
[2026-09-05 09:11:18.514] [debug] Creating workspace 3
[2026-09-05 09:11:18.534] [debug] Received SIGCHLD in signalThread
[2026-09-05 09:11:18.534] [debug] Received SIGCHLD in signalThread
Full
** (waybar:131625): WARNING **: 09:11:18.651: Status Notifier Item with bus name ':1.14' and object path '/org/ayatana/NotificationItem/nm_applet' is already registered
[2026-09-05 09:11:18.705] [debug] Received SIGCHLD in signalThread
[2026-09-05 09:11:18.705] [debug] SNI tray id: nm-applet
[2026-09-05 09:11:18.705] [debug] hyprland IPC received openlayer>>main
[2026-09-05 09:11:18.735] [debug] [wireplumber]: callback loading default node api module
[2026-09-05 09:11:18.735] [debug] [wireplumber]: loaded default nodes api
[2026-09-05 09:11:18.735] [debug] [wireplumber]: loading mixer api module
[2026-09-05 09:11:18.735] [debug] [wireplumber]: callback loading default node api module
[2026-09-05 09:11:18.735] [debug] [wireplumber]: loaded default nodes api
[2026-09-05 09:11:18.735] [debug] [wireplumber]: loading mixer api module
[2026-09-05 09:11:18.738] [debug] [wireplumber]: loaded mixer API
[2026-09-05 09:11:18.738] [debug] [wireplumber]: activating plugins
[2026-09-05 09:11:18.738] [debug] [wireplumber]: onPluginActivated: mixer-api
[2026-09-05 09:11:18.738] [debug] [wireplumber]: loaded mixer API
[2026-09-05 09:11:18.738] [debug] [wireplumber]: activating plugins
[2026-09-05 09:11:18.738] [debug] [wireplumber]: onPluginActivated: mixer-api
[2026-09-05 09:11:18.741] [debug] [wireplumber]: onPluginActivated: default-nodes-api
[2026-09-05 09:11:18.741] [debug] [wireplumber]: onPluginActivated: default-nodes-api
[2026-09-05 09:11:18.742] [debug] [wireplumber]: onObjectManagerInstalled
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating volume
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating 'Audio/Source' node name with node.id 59
[2026-09-05 09:11:18.742] [debug] [wireplumber]: Updating 'Audio/Source' node name to: ALC236 Analog
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating source volume
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating source name with node.id 59
[2026-09-05 09:11:18.742] [debug] [wireplumber]: Updating source name to: ALC236 Analog
[2026-09-05 09:11:18.742] [debug] [wireplumber]: onObjectManagerInstalled
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating volume
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating 'Audio/Sink' node name with node.id 58
[2026-09-05 09:11:18.742] [debug] [wireplumber]: Updating 'Audio/Sink' node name to: ALC236 Analog
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating source volume
[2026-09-05 09:11:18.742] [debug] [wireplumber]: updating source name with node.id 59
[2026-09-05 09:11:18.742] [debug] [wireplumber]: Updating source name to: ALC236 Analog
Full
Additional context
/
Describe the bug
Enabling one of my custom modules lets one CPU core compute at 100 %. Related to #846 and #2631. The problem is only due to
custom/package-updatesfrom my testing.To reproduce
Steps to reproduce the behaviour, including a minimal config that triggers it:
{ "exclusive": true, "fixed-center": true, "height": 30, "id": "", "include": [ "./modules/backlight.jsonc", "./modules/battery.jsonc", "./modules/clock.jsonc", "./modules/cpu.jsonc", "./modules/custom.jsonc", "./modules/disk.jsonc", "./modules/hyprland.jsonc", "./modules/keyboard-state.jsonc", "./modules/memory.jsonc", "./modules/network.jsonc", "./modules/privacy.jsonc", "./modules/systemd-failed-units.jsonc", "./modules/temperature.jsonc", "./modules/tray.jsonc", "./modules/wireplumber.jsonc" ], "ipc": false, "layer": "top", "margin": "0", "margin-bottom": "0", "margin-left": "0", "margin-right": "0", "margin-top": "0", "mode": "dock", "modifier-reset": "press", "modules-center": [ "custom/package-updates", // TODO Disabling this solves the issue. "systemd-failed-units", "custom/new-e-mails", "privacy" ], "modules-left": [ "hyprland/workspaces", "hyprland/window" ], "modules-right": [ "wireplumber#source", "wireplumber#sink", "backlight", "disk", "cpu", //"cpu_graph", "temperature", "memory", "network", "battery", "keyboard-state", "clock", "tray" ], "name": "main", "on-sigusr1": "toggle", "on-sigusr2": "reload", "output": ["eDP-1"], "passthrough": false, "position": "top", "reload_style_on_change": true, "spacing": 4, "start_hidden": false, "width": 1920 }modules/cusom.jsonc
{ "custom/package-updates": { "datapoints": 20, "escape": false, "exec": "${HOME}/skripte/statusleiste/paketaktualisierungen.sh", "exec-if": "exit 0", "exec-on-event": false, "expand": false, "format": "{text}", "graph_type": "line", "hide-empty-text": false, "interval": 60, //"menu": "", "menu-actions": [], "menu-file": "", "on-click": "", "on-click-middle": "", "on-click-right": "", "on-scroll-down": "", "on-scroll-up": "", "on-update": "", "smooth-scrolling-threshold": 0.0, //"restart-interval": 0, "return-type": "", //"signal": "", "tooltip": false, "tooltip-format": "" //"width": "", }, "custom/new-e-mails": { "datapoints": 20, "escape": false, "exec": "${HOME}/skripte/statusleiste/neue-e-post.sh", "exec-if": "exit 0", "exec-on-event": false, "expand": false, "format": "{text}", "graph_type": "line", "hide-empty-text": false, "interval": 30, //"menu": "", "menu-actions": [], "menu-file": "", "on-click": "", "on-click-middle": "", "on-click-right": "", "on-scroll-down": "", "on-scroll-up": "", "on-update": "", "smooth-scrolling-threshold": 0.0, //"restart-interval": 0, "return-type": "", //"signal": "", "tooltip": false, "tooltip-format": "" //"width": "", } }statusleiste/paketaktualisierungen.sh
Expected behaviour
Low CPU usage.
Screenshots
There are already documentations in #846 and #2631.
Environment
waybar --version): Waybar v0.15.0Debug output
Run
waybar -l debugand paste any relevant output:Additional context
/